当前位置: > Linux服务器 > Lighttpd >

linux下安装lighttpd

时间:2015-12-17 01:27来源:linux.it.net.cn 作者:IT
 一,为什么要使用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 ,在附件里。

  • # cp lighttpd-1.4.19.tar.bz2 /usr/mylib \

  • # tar jxvf lighttpd-1.4.19.tar.bz2

  • # cd lighttpd-1.4.19

  • # ./configure --prefix=/usr/local/lighttpd

  • # make

  • # make install

  • 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

(责任编辑:IT)
------分隔线----------------------------