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

October 14th, 2008 Michael Posted in Apa / Lighty / Nginx 6 Comments » 86 views

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

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

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

AddThis Social Bookmark Button

Nginx和Lighttpd的Rewrite差别

July 11th, 2008 Michael Posted in Apa / Lighty / Nginx 4 Comments » 922 views

简单的说,其实没啥差别,关键的一点,记住下面几个Nginx的Flags:
last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301

另外,有个东西很关键,曾经折腾我好几个小时才搞定,就是Nginx里面配置 {m,n} 这样的正则规则的时候,条件必须加上双引号,否则总是报错无法通过,官方文档里面真是很难找到这些东西,很晕。

AddThis Social Bookmark Button

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

March 18th, 2007 Michael Posted in Apa / Lighty / Nginx 13 Comments » 3,813 views

  今天晚饭后抽了点闲功夫,把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了。

AddThis Social Bookmark Button

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

January 31st, 2007 Michael Posted in Apa / Lighty / Nginx 5 Comments » 4,055 views

  用过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

AddThis Social Bookmark Button

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

January 8th, 2007 Michael Posted in Apa / Lighty / Nginx 7 Comments » 2,347 views

默认在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地址

AddThis Social Bookmark Button

在FreeBSD上使用mod_dosevasive对抗DDos攻击

September 24th, 2006 Michael Posted in Apa / Lighty / Nginx, Linux / BSD, 技术交流 8 Comments » 8,814 views

  mod_dosevasive是一个Apache上的可选模块,它能应对一些基于HTTP的拒绝服务攻击,就是常说的Dos或者DDos攻击,这种攻击是让很多大小网站都头疼的攻击方式,mod_dosevasive从Apache1.3开始出现,虽然不能完全彻底的防止大规模的DDos攻击,但是对于普通的攻击来说,还是非常不错的选择。

  我的服务器(http://www.toplee.com/blog/)就曾经收到过类似的测试攻击(就是估计别人是为了练手,并非真的要针对我),搞得很头疼,我一些朋友的应用也遇到过类似的烦恼,基本上都通过安装mod_dosevasive得到了较好的解决。下面我就来以我在FreeBSD上安装基于Apache2.2.2的mod_dosevasive经过给大家分享一下经验,顺便进一步讲述一下mod_dosevasive的特性。
Read the rest of this entry »

AddThis Social Bookmark Button

Apache2安装后出现403 Forbidden 的原因

June 1st, 2006 Michael Posted in Apa / Lighty / Nginx, 技术交流 17 Comments » 9,548 views

最新的apache2.2提供和不少新模块的支持,也在性能和安全上有改进,也就造成一些新的机制和概念需要我们不断去摸索和熟悉,前一阵就遇到了安装好apache2并配置好httpd.conf后,无论访问什么路径都出现 403 forbidden的提示,折腾了半天才从官方的maillist文档里面找到答案。
Read the rest of this entry »

AddThis Social Bookmark Button