一,为什么要使用lighttpd?
    apache不可以吗?
    在支持纯静态的对象时,比如图片,文件等 ,
    lighttpd速度更快,更理想 (lighttp 图片处理好,nginx负载均衡好)
    至于它和apache的比较,很多文档,大家可以google一下

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

三,如何安装?
    1,编译安装
      ./configure --prefix=/usr/local/lighttpd
      make
      make install

configure完毕以后,会给出一个激活的模块和没有激活模块的清单,可以检查一下,是否自己需要的模块都已经激活,在enable的模块中一定要有“mod_rewrite”这一项,否则重新检查pcre是否安装。

2,编译后配置
      cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
      mkdir /etc/lighttpd
      cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
 
      如果你的Linux是RedHat/CentOS,那么:
      cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd
      如果你的Linux是SuSE,那么:
      cp doc/rc.lighttpd /etc/init.d/lighttpd
      其他Linux发行版本可以自行参考该文件内容进行修改。
      然后修改/etc/init.d/lighttpd,把
      LIGHTTPD_BIN=/usr/sbin/lighttpd
      改为
      LIGHTTPD_BIN=/usr/local/lighttpd/sbin/lighttpd
 
      此脚本用来控制lighttpd的启动关闭和重起:
      /etc/init.d/lighttpd start 
      /etc/init.d/lighttpd stop 
      /etc/init.d/lighttpd restart
    3,配置
      修改/etc/lighttpd/lighttpd.conf
      1)server.modules
      取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi,      mod_compress,mod_accesslog是一般需要用到的。
      我们放开                               "mod_rewrite"
                                             "mod_compress",
 
      2)server.document-root, server.error-log,accesslog.filename需要指定相应的目录
         server.document-root        = "/www/phc/html/"
         mkdir /usr/local/lighttpd/logs
         chmod 777 /usr/local/lighttpd/logs/
          touch /usr/local/lighttpd/logs/error.log
          chmod 777 /usr/local/lighttpd/logs/error.log

server.errorlog             = "/usr/local/lighttpd/logs/error.log"
accesslog.filename             = "|/usr/sbin/cronolog /usr/local/lighttpd/logs/%Y/%m/%d/accesslog.log"

3)用什么权限来运行lighttpd
         server.username            = "nobody"
         server.groupname           = "nobody"
         从安全角度来说,不建议用root权限运行web server,可以自行指定普通用户权限。
 
       4)静态文件压缩
          mkdir /usr/local/lighttpd/compress
          chmod 777 /usr/local/lighttpd/compress/
compress.cache-dir         = "/usr/local/lighttpd/compress/"
compress.filetype          = ("text/plain", "text/html","text/javascript","text/css")

可以指定某些静态资源类型使用压缩方式传输,节省带宽,
          对于大量AJAX应用来说,可以极大提高页面加载速度。

5)server.port                = 81

6)#$HTTP["url"] =~ "/.pdf$" {
    131 #  server.range-requests = "disable"
    132 #}

4,优化

1 最大连接数

默认是1024
            修改 server.max-fds,大流量网站推荐2048.

因为lighttpd基于线程,而apache(MPM-prefork)基于子进程,
            所以apache需要设置startservers,maxclients等,这里不需要

2 stat() 缓存

stat() 这样的系统调用,开销也是相当明显的.
              缓存能够节约时间和环境切换次数(context switches)

一句话,lighttpd.conf加上
              server.stat-cache-engine = “fam”

lighttpd还另外提供simple(缓存1秒内的stat()),disabled选项.
              相信没人会选disabled吧.

3 常连接(HTTP Keep-Alive)

一般来说,一个系统能够打开的文件个数是有限制的(文件描述符限制)
            常连接占用文件描述符,对非并发的访问没有什么意义.

(文件描述符的数量和许多原因有关,比如日志文件数量,并发数目等)

这是lighttpd在keep-alive方面的默认值.
server.max-keep-alive-requests = 128
server.max-keep-alive-idle = 30

换言之,lighttpd最多可以同时承受30秒长的常连接,每个连接最多请求128个文件.
但这个默认值确实不适合非并发这种多数情况.

lighttpd.conf 中减小
server.max-keep-alive-requests
server.max-keep-alive-idle
两个值,可以减缓这种现象.

甚至可以关闭lighttpd keep-alive.
server.max-keep-alive-requests = 0

4 事件处理

对于linux kernel 2.6来说,没有别的可说
lighttpd.conf中加上这一句足矣
server.event-handler = “linux-sysepoll”

另外,
linux 2.4 使用 linux-rtsig
freebsd 使用 freebsd-kqueue
unix 使用 poll

5 网络处理

lighttpd 大量使用了 sendfile() 这样一个高效的系统调用.
减少了从应用程序到网卡间的距离.
(同时也减少了lighttpd对cpu的占用,这部分占用转嫁到内核身上了)

根据平台,可以设置不同的参数.
server.network-backend = “linux-sendfile”
(linux)
freebsd: freebsd-sendfile
unix: writev

如果有兴趣的话,也可以看看lighttpd在async io(aio)上的实现,仅限 lighttpd 1.5
(linux-aio-sendfile, posix-aio, gthread-aio)

此外,网络方面,核心的参数也需要适当进行修改,
这里就不需要详细说明了.

5,启动
    6,配置日志
    logrotate & cronolog
logrotate很粗暴,直接把进程砍了然后移动日志
cronolog就是比较不错的方式.
lighttpd用法:
accesslog.filename = " |/usr/sbin/cronolog /var/log/lighttpd/%Y/%m/%d/access_XXXX.log"

7,安装pcre
      从何处下载?
      http://www.pcre.org/
       wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.bz2
     安装过程:
       
  ./configure
  make clean
  make
  make install

8,支持fam
   gamin默认已安装了此包
   yum install gamin-devel
 
   另外配置时需添加:
   ./configure --prefix=/usr/local/lighttpd --with-fam

9,测试lighttpd的启动:
/usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/etc/lighttpd.conf

10,防止盗链
  #$HTTP["referer"] !~ "^($|http://.*/.(chinafotopress/.com|chinafotopress/.cn))" {       
#    $HTTP["url"] =~ "/.(jpg|jpeg|png|gif|rar|zip|mp3)$" {
#       #url.redirect = (".*"    => "http://www.baidu.com/")
#        url.access-deny = (".jpg")
#    }
#}

#$HTTP["referer"] == "" {
#    $HTTP["url"] =~ "/.(jpg|jpeg|png|gif|rar|zip|mp3)$" {
#       #url.redirect = (".*"    => "http://www.baidu.com/")
#        url.access-deny = (".jpg")
#    }
#}

lighttpd 介绍及安装的更多相关文章

  1. 从零自学Hadoop(19):HBase介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...

  2. 从零自学Hadoop(14):Hive介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...

  3. Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)

    本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...

  4. Bash on Windows 抢鲜测试 -- 介绍及安装

    前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...

  5. Tyk API网关介绍及安装说明

    Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...

  6. Python介绍、安装、使用

    Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...

  7. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  8. 自动化运维工具之 Ansible 介绍及安装使用

    一.初识Ansible 介绍: Absible 使用 模块(Modules)来定义配置任务.模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等.A ...

  9. 【兄弟连ThinkPHP】1、介绍和安装

    琢磨了好几天的ThinkPHP了,兄弟连的视频真心不错,下面是记得一些要点,只做备忘,有兴趣的朋友请去百度兄弟连. ## ThinkPHP 3 介绍及安装#讲师:赵桐正微博:http://weibo. ...

随机推荐

  1. Paxos算法

    Paxos算法是分布式系统中常用的一个保持系统一致性的算法,由美国计算机科学家Leslie B. Lamport提出.原文链接. 今天特意学习了一下Paxos的原理,为防忘记,记录下来.(看了的东西没 ...

  2. laravel 框架 开源的cms推荐

    laravel 框架写的开源的cms系统 TypiCMS系统 多语言和模块化的CMS Laravel 5.2框架 下载地址:https://github.com/TypiCMS/Base Bootst ...

  3. 简单风格 在线音乐播放器(支持wav,MP3等)

    找了两天终于找到了,支持wav,MP3,其他格式没有测试. 1.修复了jQuery判断ie的bug, 2.修复播放循环 下载地址: http://pan.baidu.com/s/1o6upwHs

  4. Meta标签中的format-detection属性及含义

    format-detection翻译成中文的意思是“格式检测”,顾名思义,它是用来检测html里的一些格式的,那关于meta的format-detection属性主要是有以下几个设置: meta na ...

  5. php安装libevent

    libevent扩展安装 libevent-2.0.16-stable.tar http://libevent.org/ [plain] view plaincopy cd libevent-2.0. ...

  6. Iso8601 日期格式

    unit Iso8601Unit; interface type TIso8601 = class(TObject) public class function DateTimeFromIso8601 ...

  7. 解决WPF图片模糊最佳方法(绑定PixelWidth与PixelHeight)

    从事WPF开发一年有余,对于图片显示模糊相信很多人都遇到过.网络上查找能得到一堆解决方法,但都是会带来其他负面影响得不到最佳效果.其实,有些图片会因为垂直分辨率/水平分辨率不同而造成在WPF界面上显示 ...

  8. 2016 Multi-University Training Contest 1 GCD RMQ+二分(预处理)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726 题意:有N(N <= 100,000),之后有Q(Q <= 100,000)个区间查询[ ...

  9. Cent os关机与重启命令详解

    Cent OS关机与重启命令详解 分类: Linux2012-10-02 14:06 5553人阅读 评论(0) 收藏 举报 centoslinuxsignallogin工作windows Linux ...

  10. sqlplus连接数据库的4种方式

    本文对sqlplus连接数据库的几种方式进行大概介绍 下面是我的tnsnames.ora相关信息: /opt/oracle/product/10.1.0/db_1/network/admin/tnsn ...