Lighttpd簡介:
Lighttpd是一個輕量級的Web 服務器,支持FastCGI, CGI, Auth, 輸出壓縮(output compress), URL重寫, Alias等重要功能。它具有非常低的內存開銷,cpu佔用率低,效能好,以及豐富的模塊等特點。其靜態文件(如圖片、文件)的響應能力遠高於Apache,可謂Web服務器的後期之秀
功能:接收、響應用戶請求,網元間消息通信,資源傳遞等
安裝: yum 安裝或源碼安裝
啓動lighttpd服務: systemctl status lighttpd
源碼安裝啓動: lighttpd -D -f lighttpd.conf ,Ctrl+c 結束lighttpd服務
查看lighttpd命令幫助: lighttpd --help
檢查配置文件是否正確:lighttpd -t -f lighttpd.conf
配置文件/etc/lighttpd/lighttpd.conf :
配置文件中幾個常用的性能參數:
dir-listing.activate
如果沒有找到index文件就列出目錄。建議disable。
server.max-worker
lighttpd默認只啓動一個進程工作,但也支持apache那樣啓動多個進程,我的實驗顯示啓動多個進程同時工作時並不能提高性能。
server.max-keep-alive-requests
這一條比較關鍵,對性能的影響比較大。在一個keep-alive會話終止連接前能接受處理的最大請求數。Default: 128,對一個高負載的應用來說是不夠的。
server.max-keep-alive-idle
一個空閒keep-alive連接被丟棄前,存在的的最大秒數。Default: 30。
server.error-handler-404
頁面找不到時候的處理,對性能沒什麼影響
server.max-fds
因爲lighttpd是一個單線程(single-threaded)服務器,它的主要資源限制是文件描述符數目,默認值是1024。如果在一個高負載的站點上,可能你需要通過下面的設定增加這個限定值
server.max-fds = 2048 但這個限定只有在lighttpd做爲root身份運行時才能生效。
connection.kbytes-per-second,server.kbytes-per-second
還有值得一提的時lighttpd可以限制每個連接或則特定虛擬機的流量。
compress.cache-dir,compress.filetype
如果文本稍微大點可以考慮使用壓縮算法,減少帶寬同時也能提高效率。例如:
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ("text/plain", "text/html","text/javascript","text/css")
server.stat-cache-engine = "fam"
這 一條能明顯提升性能,stat() cache。一個stat調用代價可能是昂貴的。爲它設一個cache能省時間又避免上下文切換。替代每次都stat()來確定文件的存在,它只stat ()一次,然後會監視目錄,如果目錄不變,他裏面的文件也就沒有變化。我們的內存文件系統中有沒必要保留,依情況而定。
server.stat-cache-engine = "fam" 或simple 或 disabled
配置使用lighttpd :
1、創建一個在lighttpd.conf文件中默認的webroot文件夾:
mkdir /src/www/htdocs -p
2、將默認歡迎頁面從/var/www/lighttpd複製到新建的目錄中:
cp -r /var/www/lighttpd/* /srv/www/htdocs
3、在/src/www/htdocs目錄下創建一個index.html文件,訪問:
http://localhost/index.html
在/etc/lighttpd/conf.d/ 目錄下有很多模塊支持及配置:
在lighttpd啓用對應模塊:如添加fast.cgi的支持
include “conf.d/fastcgi.conf”
編輯/etc/lighttpd/conf.d/fastcgi.conf
模塊順序十分重要, 正確地模塊加載順序位於 /usr/share/doc/lighttpd/config/modules.conf. 任何錯誤配置都可能導致 lighttpd 崩潰。
配置完模塊後需要重啓lighttpd服務:systemctl restart lighttpd
配置PHP支持(讓lighttpd與php協同工作):
編輯/etc/lighttpd/modules.conf文件,將以下行的註釋刪除(需要什麼模塊就去掉註釋):
include "conf.d/fastcgi.conf"
編輯/etc/lighttpd/conf.d/fastcgi.conf文件,添加以下行(有示例):
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi"
)
)
)
在/srv/www/htdocs/目錄下創建一個test.php文件,如下:
<?
phpinfo();
?>
源碼安裝時需要創建lighttpd用戶,且將對應文件夾的權限改爲lighttpd用戶的