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用户的