linux安装lighttpd及配置lighttpd

来源:互联网 发布:mac翻墙全局代理 编辑:程序博客网 时间:2024/05/16 10:13

http://lighttpdphp.com/

 

0 写在前面

1 分析准备

1.1 lighttpd源码准备及相关网站

lighttpd官方网站:http://www.lighttpd.net/,最新的稳定版本为1.4.20,开发版本为1.5.0,1.5的同以前的版本相比变大很大(相关信息可以查询该站点以及相关链接),而我这里分析的是1.4.20。

相关连接:

http://www.lighttpd.net/download/lighttpd-1.4.20.t ar.gz

http://www.lighttpd.net/download/lighttpd-1.4.20.t ar.bz2

http://www.lighttpd.net/download

http://www.lighttpd.net/

http://blog.lighttpd.net/

http://redmine.lighttpd.net/wiki/lighttpd/Devel

1.2 lighttpd源码分析工具

我个人用的是windows系统,使用的分析…

 

一,为什么要使用lighttpd?
apache不可以吗?
在支持纯静态的对象时,比如图片,文件等 ,
lighttpd速度更快,更理想

[下面四段话来自:http://www.javayou.com/diary/3264\]

Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。

lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用 户是非常重要的,因为迁移到lighttpd就必须面对这些问题。

实用起来lighttpd确实非常不错,上文提到的apache overload的问题,用lighttpd就完全解决了。apache主要的问题是密集并发下,不断的fork()和切换,以及较高(相对于 lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低, 而且反应速度相当快。

利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!

二,从何处下载lighttpd?
http://www.lighttpd.net
这个是它的官方站

我下载的是 lighttpd-1.4.19.tar.bz2 ,在附件里。

  1. # cp lighttpd-1.4.19.tar.bz2 /usr/mylib \
  2. # tar jxvf lighttpd-1.4.19.tar.bz2
  3. # cd lighttpd-1.4.19

 

Lighttpd的优化是多方面的,最重要的就是优化其性能。操作系统有2大因素,可以帮助Lighttpd达到它的最佳性能。

HTTP Keep-Alive

禁用Keep-Alive可以帮助你的服务器减轻因大量打开着的文件描述符而产生的负载。
服务器默认的设置是:

server.max-keep-alive-requests = 128server.max-keep-alive-idle = 30server.max-read-idle = 60server.max-write-idle = 360在单个连接处理一行128个Keep-Alive的请求,在一个未被使用的Keep-Alive连接被Lighttpd丢弃之前等待30秒。如果你在一个高负载环境下一次处理许多连接(假设在24小时内有500个平行连接),那你可能陷入了如下描述的out-of-fd问题。server.max-keep-alive-requests = 4server.max-keep-alive-idle = 4这样可以提前释放连接,并在不损失性能的情况下释放文件描述符。完全禁用Keep-Alive是解决文件描述符短缺的最后手段:server.max-keep-alive-requests = 0事件处理器首先是和通知服务器一个连接是否已经准备好发送或接收数据相关的事件处理器。正如你所看到的,每一个操作系统至少有select()调用,但它有所限制。
 

参考http://trac.lighttpd.net/trac/wiki/TutorialInstallation中Installing services部分结合我的上篇博文

为lighttpd增加server的启动

进入lighttpd的安装目录

我的/home/suantop/lighttpd-1.4.19# sed -e ‘s/FOO/lighttpd/g’ doc/rc.lighttpd.redhat > /etc/init.d/lighttpd

# chmod a+rx /etc/init.d/lighttpd

# cp -p doc/sysconfig.lighttpd /etc/sysconfig/lighttpd

结合自己的环境需要更改/etc/sysconfig/lighttpd

# cat doc/sysconfig.lighttpd 默认的LIGHTTPD_CONF_PATH=/etc/lighttpd/lighttpd.conf修改内容如下:# cd /etc/sysconfig# vi lighttpdLIGHTTPD_CONF_PATH=/usr/local/lighttpd/lighttpd.conf