linux下安装lighttpd

一,为什么要使用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
  4. # ./configure --prefix=/usr/local/lighttpd
  5. # make
  6. # make install
  7. OK!

但是,一般会在第四步遇到问题,我也遇到了: configure: error: pcre-config not found, install the pcre-devel package and build with --without-pcre

此时需要安装一个软件包pcre(Perl兼容的规则表达式库) ,下载地址如下〔附件里也有〕:http://sourceforge.net/project/showfiles.php?group_id=10194&package_id=9960&release_id=597811

安装之后再编译lighttpd ,流程是上面的6步。

三、 编译后配置:

cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf

如果你的Linux是RedHat,那么:
cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd

然后修改/etc/init.d/lighttpd,把
lighttpd="/usr/sbin/lighttpd"
改为
lighttpd="/usr/local/lighttpd/sbin/lighttpd"

此脚本用来控制lighttpd的启动关闭和重起:
# /etc/init.d/lighttpd start

启动报错如下:
启动 lighttpd:2008-08-06 12:40:28: (configfile.c.1136) base-docroot doesn't exist: /srv/www/htdocs/

需要修改/etc/lighttpd/lighttpd.conf这个配置文件中的配置
/srv/www/htdocs/ 这个路径是不存在的。
server.document-root        = "/srv/www/htdocs/"
改为
server.document-root         = "/var/www/htdocs/"
再重新启动试试
# /etc/init.d/lighttpd restart
停止 lighttpd:                                            [失败]
启动 lighttpd:2008-08-06 12:42:27: (configfile.c.1136) base-docroot doesn't exist: /var/www/htdocs/
2008-08-06 12:42:27: (server.c.591) setting default values failed
                                                           [失败]

原来是文件夹不在  # makedir /var/www/htdocs 搞定。
# /etc/init.d/lighttpd restart
停止 lighttpd:                                            [失败]
启动 lighttpd:                                            [ 确定 ]

如果你希望服务器启动的时候就启动lighttpd,那么:
chkconfig lighttpd on

这样lighttpd就安装好了,接下来需要配置lighttpd。
参见
lighttpd.conf配置大全

server.chroot
使用chroot提高安全性时,web服务器的root目录。建议使用。

server.username = "..." server.groupname = "..."
放弃root权限。

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" # either fam, simple or disabled




日志:

在lighttpd中可以通过下面的配置来实现每天一个访问日志文件

accesslog.filename = "| /usr/local/lighttpd/bin/rotatelogs /usr/local/lighttpd/logs/access_%Y%m%d.log 86400"

启动:

# /usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
『-f是启动参数』

或:

# /etc/init.d/lighttpd start
〖用法: /etc/init.d/lighttpd [start|stop|restart|condrestart|reload|status]

或:

service lighttpd restart

 

http://hi.baidu.com/619195553dream/blog/item/21e24e344ea99c97a8018e1e.html

原文地址:https://www.cnblogs.com/lmule/p/1822325.html