Lighttpd学习笔记
2010-08-10
早上一来,就说要吧apache换成lighttpd 我记得我去年,就提过。竞争对手那时跑的还是apache + squid。 结果,和上级协商不同,就放弃。可能我个人沟通能力有问题。 今天,看到竞争对手换上了lighttpd,领导们说也要换上。汗! 总结些今天对lighhtpd的学习吧, lighttpd 是一个 轻量级 快速的web server 响应速度比apache快,适合跑静态页面,和图片。 使用了 linux-syspoll的 调度当时。比apache 的 select 要快很多吧。 接下来时安装:(演示下,没什么好说,linux 安装三部曲)
./configure \
--prefix=/opt/app/lighttpd/ \
--enable-lfs \
--with-pcre \
--with-zlib \
--without-bzip2 \
--without-openssl \
--with-fam
make && make install
按装就这样吧,解读下 配置文件,呵呵:
server.port = 80
server.pid-file = "/var/run/lighttpd.pid"
server.username = "nobody"
server.groupname = "nobody"
server.modules = (
"mod_rewrite",
"mod_redirect",
"mod_access",
"mod_compress",
"mod_ssi",
"mod_expire")
server.document-root = "/opt/case/"
server.errorlog = "/dev/null"
index-file.names = ( "index.html","index.htm")
#性能优化
server.max-worker = 8
server.max-keep-alive-requests = 150
server.max-keep-alive-idle = 10
server.max-read-idle = 30
server.max-write-idle = 30
server.max-fds = 8192
server.max-connections = 4096
server.network-backend = "linux-sendfile"
server.stat-cache-engine = "fam" # either fam, simple or disabled
server.event-handler = "linux-sysepoll"
mimetype.assign = (
".pdf" => "application/pdf",
".sig" => "application/pgp-signature",
".spl" => "application/futuresplash",
".class" => "application/octet-stream",
".ps" => "application/postscript",
".torrent" => "application/x-bittorrent",
".dvi" => "application/x-dvi",
".gz" => "application/x-gzip",
".pac" => "application/x-ns-proxy-autoconfig",
".swf" => "application/x-shockwave-flash",
".tar.gz" => "application/x-tgz",
".tgz" => "application/x-tgz",
".tar" => "application/x-tar",
".zip" => "application/zip",
".mp3" => "audio/mpeg",
".m3u" => "audio/x-mpegurl",
".wma" => "audio/x-ms-wma",
".wax" => "audio/x-ms-wax",
".ogg" => "application/ogg",
".wav" => "audio/x-wav",
".gif" => "image/gif",
".jar" => "application/x-java-archive",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".png" => "image/png",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".xwd" => "image/x-xwindowdump",
".css" => "text/css",
".html" => "text/html",
".htm" => "text/html",
".js" => "text/javascript",
".asc" => "text/plain",
".c" => "text/plain",
".cpp" => "text/plain",
".log" => "text/plain",
".conf" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".avi" => "video/x-msvideo",
".asf" => "video/x-ms-asf",
".asx" => "video/x-ms-asf",
".wmv" => "video/x-ms-wmv",
".bz2" => "application/x-bzip",
".tbz" => "application/x-bzip-compressed-tar",
".tar.bz2" => "application/x-bzip-compressed-tar",
# default mime type
"" => "application/octet-stream",
)
server.tag = "Microsoft-IIS/6.0"
ssi.extension = ( ".shtml" )
url.access-deny = ( "~", ".inc" )
$HTTP["url"] =~ "\.pdf$" {
server.range-requests = "disable"
}
#配置静态页面压缩
compress.cache-dir = "/tmp/lighttpd/compress/"
compress.filetype = ("text/plain", "text/html", "text/javascript","text/css")
#配置 expire
$HTTP["url"] =~ "\.(jp[e]?g|bmp|png|gif|css)$" {
expire.url = ( "" => "access 12 months" )
}
$HTTP["url"] =~ "(htm[l]?|js|css)?$" {
expire.url = ( "" => "access 10 days" )
}
################ vhost config ############################
$HTTP["host"] =~ "linux.org" {
server.document-root = "/opt/case/www.linux.org/"
server.name = www.linux.org
server.follow-symlink = "enable"
}
#url 重定向
$HTTP["host"] =~ "(?:www[\.]?)?linux\.com" {
url.redirect = ( "^/(.*)" => http://www.linux.org/ )
}