Tag-Archive for » lighttpd «

现在的web server,你都用什么?

LAMP叫了多年了,其实对于Apache来说,很多人都已经没有在使用了,很多人都在开始用Lighttpd和Nginx,其间的争论也很多,各种评测也不少,但是还是萝卜白菜各有所爱罢了。

在面对选择的时候,我也很困扰,实际上Apache固然是很久没用了,并非性能问题,而是感觉配置方法没有那么让我喜欢,有些臃肿,一直以来Lighttpd是我比较喜欢的,不管在配置、性能和架构方面都显得很简单,但是Lighttpd开发团队变迁问题以及1.5版的反反复复迟迟未推出,让我对Lighttpd的担忧多了一些,1.5计划要推出的对Comet的支持是我一直期待的,但是目前看来还是遥遥无期,于是就只剩下Nginx了,好在目前Nginx的开发更新还是比较快的,加上应用也越来越多,效果也不错,但是Nginx的技术架构总让我感觉有些别扭,如果说用Nginx来做Proxy或者负载均衡的辅助架构,我认为还是非常不错的。

朋友们,你们现在的网站选择的web server都什么情况呢?

把mrtg、awstats和bugzilla都移到了lighttpd下

  今天晚饭后抽了点闲功夫,把mrtg、awstats和bugzilla都移到的lighttpd下,于是把之前单独为这几个东西跑的apache停了,全部使用lighttpd提供web服务,系统开销又能小一些。

  mrtg很容易移植,几乎不用配置甚么就可以了,awstats和bugzilla都是perl的,需要配置lighttpd的cgi支持,简单的使用下面一行即可搞定awstats的移植

$HTTP["url"] =~ "^/awstats/" {
        cgi.assign = (
            ".pl" => "/usr/bin/perl",
            ".cgi" => "/usr/bin/perl"
            )
}

  不过照着上面的代码设置bugzilla的时候却遇到了问题,bugzilla的每个文件里面第一行的perl命令后加入了 -wT参数,在lighhtpd下以cgi模式运行会报 500 错误,尝试修改了index.cgi,去掉 -wT参数后可以正常运行,于是使用了下面的一句命令,把全部的cgi文件中-wT参数都给去掉了,这句命令估计对很多人都能有帮助:)

sed -in-place -e "s/ -wT/ /g" `grep " -wT" -l ./*.cgi`

  搞定!

  逐渐的,我开始抛弃Apache了。

Lighttpd 图片和视频等文件的防盗链处理

  用过Apache的朋友都知道mod_rewrite可以用来进行处理防盗链,Lighttpd也有同样的功能,而且总的来说,lighttpd.conf配置文件比httpd.conf更简单明了。 原来一直使用Apache来处理防盗链,今天修改了服务器上Lighttpd的配置,直接实现了防盗链,下面是防盗链部分的代码。

$HTTP["referer"] !~ "^($|http://.*\.(toplee\.com|8zone\.cn))" {       
  $HTTP["url"] =~ "\.(jpg|jpeg|png|gif|rar|zip|mp3)$" {
    url.redirect = (".*"    => "http://www.toplee.com/blog/")
  }
}

  懂点编程的朋友一定惊叹lighttpd的配置如此简洁明了,我非常喜欢这种风格的东西!
Lighttpd

squid后面的lighttpd日志记录用户ip的方法

默认在lighttpd的accesslog里面无法记录透过squid或者apache的mod_proxy过来的用户ip地址,全都会记录到squid或者apache机器的ip地址,但是httpd头里面的用户ip其实是发送到lighttpd的,可以通过修改accesslog.format来达到目的,下面是我的格式,跟combined兼容:

accesslog.format  = "%{X-Forwarded-For}i %v %u %t \"%r\" %s %b  \"%{User-Agent}i\" \"%{Referer}i\""

其中”%{X-Forwarded-For}i 就是记录了用户来源的ip地址