zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Echarts动态加载柱状图和折线图混合展示的实例
    Webdynpro ABAP 简单剖析
    SAP NetWeaver Business Client (NWBC) 简介
    nginx and node.js配合使用 helloworld
    Nodejs连接mysql的增、删、改、查操作
    SAPUI5使用了哪些开源技术
    Javascript 严格模式详解
    SAPUI5实例一:来创建Web应用UI
    OPEN(SAP) UI5 学习入门系列之四:更好的入门系列-官方Walkthrough
    OPEN(SAP) UI5 学习入门系列之三:MVC (下)
  • 原文地址:https://www.cnblogs.com/lmule/p/1822325.html
Copyright © 2011-2022 走看看