投稿 评论 顶部

Lighttpd服务器URL重写与伪静态配置

佚名 网络安全
最近搞了一个轻量级的Lighttpd+PHP+MySQL测试环境,就在那台修复后的路由器上......
中兴H618B就砖刷Tomato?DualWAN
除了跑Lighttpd、Nginx了,apache2.2也能跑,这里我选择了Lighttpd,因为在这个硬件条件下它最稳定,也最快。

测试环境嘛,URL重写是少不了的。
URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程。其 优点在于:
1、缩短url,隐藏实际路径提高安全性;
2、易于用户记忆和键入;
3、易于被搜索引擎收录。 ?

Lighttpd是一款轻量级的web server,和Apache一样是开源的,与Apache相比,虽然功能不及Apache完善,稳定性也不如Apache,但是不管是静态页面还是动态内容都比Apache快,用于搞个小型WEB服务器是最恰当不过了,就比如我用路由器改造的这个。

虽然采用Lighttpd的网站不少,但其配置多是前Nginx后Lighttpd(Nginx处理静态和并发,Lighttpd处理动态和图片)。网上的相关资料也非常非常少,这里就慢慢整理资料吧,这个轻量级服务器如同当年的Nginx,将来也会应用更加广泛的。

这里也说说自己对Lighttpd和Nginx的看法,因为Nginx之前也在这个硬件环境下使用了1个月,Lighttpd也在这个硬件环境下使用了3个月,使用中Nginx各种502,Lighttpd居然稳健的跑了3个月,没出问题。其组件设置都是Lighttpd或Nginx+php5.2.17(spawn-fcgi )+mysql4.1,并发都是200。虽然php5.3以后 Nginx可以更好的运用php-fpm控制php-cgi,但是之前的版本还是用 spawn-fcgi最稳定 。(那就用php5.3呗~抱歉,这个路由有限制,不能随意编译)。 所以个人觉得,低配环境还是Lighttpd比较稳定。

对于Nginx的大火,其实个人觉得,其官方有Windows版本很有关, Lighttpd除了其爱好者网站,官方版本是不直接支持Win的,Win上安装Lighttpd需要安装 unix模拟环境 Cygwin平时也在服务器群里聊天,小站几乎清一色各种Windows,用Linux了了,可能是Linux展现形式和枯燥的命令让人一时摸不清路子。其实也与现代的教育模式有关,大部分低中高等学校都以Windows为教学工具,除了以后相关专业几乎接触不到Linux,甚至相关专业一开始也很少用Linux。有多少人不是用够了Win,看到Win想吐才开始学习使用Linux,甚至到了中后期还是以图形的Linux为主要使用对象,Win的模式已经深深的印入人们的脑海里。

Lighttpd处理并发的能力并不差,其实它还有个很大的优点,cpu和内存释放很快,硬盘压力也不大,我挂载的移动硬盘度写速度只有22MB/S,是很老的地转速IDE笔记本硬盘。在这个硬件环境中感觉 Lighttpd更严谨,不像Nginx跑起来那么粗犷。

好,侃了那么多,也是纯个人想法,欢迎拍砖!言归正传,说一下Lighttpd的伪静态规则吧!
Lighttpd比Apache要轻一些,但rewrite是不支持Apache的.htaccess,你可以写一个脚本把htaccess转成Lighttpd的规则。 只能把规则写到lighttpd配置里了。 所以Lighttpd是不适合现在国内大部分虚拟主机供应商的。IDC还是Apache比较妥当。 像我这样的测试环境,还是比较适合的。

大部分东西在Lighttpd的mod_rewrite文档里有写。要做的就是技巧。
比如Apache的rewrite里可以用 -f 和 -d 来表示一个真实的文件或目录(当然在Linux下万物皆文件)。
Lighttpd则是用url.rewrite-if-not-file来保证,但这条配置是在1.4.24版本之后才被支持。
于是要用神奇的一招:
url.rewrite-once = (
“/(.*).(.*)” => “$0″, ? ?//关键
“^/(.*)/?$” => “/index.php/$1″
)

?以上大体介绍后,我们说说 在lighttpd重写url的具体步骤:
1、打开lighttpd.conf文件,(该文件一般在/usr/local/etc/目录下或者/opt/etc/目录下,如果不是自己安装的,可以用find命令找到)。
2、 打开lighttpd.conf文件后, 搜索:server.modules (建议用EditPlus或Notepad++打开,这里强烈推荐 EditPlus
找到?"mod_rewrite",
去掉前面的#
3、 我们以常见的论坛程序PHPWind8.7及其以前版本为例:
PW在Apache下的伪静态规则为:
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
在lighttpd上应该写为:

剩余文章请看:http://www.ys166.com/read-3377.html