当前位置:首页 > Server > 正文内容

lighttpd服务器url重写与伪静态配置

admin2017-01-05Server3756

最近搞了一个轻量级的Lighttpd+PHP+MySQL测试环境,就在那台修复后的路由器上......

(链接1:中兴H618B就砖刷Tomato DualWAN 链接2:网易博客

除了跑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。Lighttpd官方也没有简体中文站!平时也在服务器群里聊天,小站几乎清一色各种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 = (

"/(.*).(.*)” => "$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上应该写为:

^(.*)-htm-(.*)$" => "$1.php?$2


还是在lighttpd.conf文件里,往下找到#url.rewrite

去掉前面#

原来是:

#url.rewrite                = ( "^/$"             => "/server-status" )

现在是:

url.rewrite                = ( "^(.*)-htm-(.*)$" => "$1.php?$2" )

(注释:有的lighttpd版本里是:url.rewrite-once = )

如果想添加更多的规则,则可以写成这样:

url.rewrite               = (

"^(.*)-htm-(.*)$" => "$1.php?$2", 

"^(.*)/simple/([a-z0-9\_]+\.html)$" => "$1/simple/index.php?$2"

)

怎么样,很简单吧!

我们再用一条WordPress规则做下演示:

Apache:

RewriteRule /(.*)?$ /index.php/$1 

Lighttpd:

"^/(.*)/?$" => "/index.php/$1" 

因为目前不再用WordPress,如果其规则有错,欢迎拍砖!

打赏

扫描二维码推送至手机访问。

版权声明:本文由友声网博客发布,如需转载请注明出处。

本文链接:https://hi.ys166.com/t/563

标签: lighttpdlinux
分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。