友声网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
开启左侧

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

[复制链接]
admin 发表于 2017-9-22 14:25 | 显示全部楼层 |阅读模式
最近搞了一个轻量级的Lighttpd+PHP+MySQL测试环境,就在那台修复后的路由器上......
(链接1:中兴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。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上应该写为:
游客,如果您要查看本帖隐藏内容请回复

还是在lighttpd.conf文件里,往下找到#url.rewrite
去掉前面#
原来是:
#url.rewrite                = ( "^/$"             => "/server-status" )
现在是:
游客,如果您要查看本帖隐藏内容请回复

如果想添加更多的规则,则可以写成这样:
游客,如果您要查看本帖隐藏内容请回复

怎么样,很简单吧!
我们再用一条WordPress规则做下演示:
Apache:
RewriteRule /(.*)?$ /index.php/$1
Lighttpd:
[hide]
"^/(.*)/?$" => "/index.php/$1"
[hide]
因为目前不再用WordPress,如果其规则有错,欢迎拍砖!
yy528 发表于 2018-8-15 11:24 | 显示全部楼层
楼主发贴辛苦了,谢谢楼主分享!
wayang 发表于 2018-8-17 13:24 | 显示全部楼层
讲的很透彻
qq302864546 发表于 2018-9-2 00:50 | 显示全部楼层
给力,学习学习
527830784 发表于 2018-10-16 09:45 | 显示全部楼层
多谢分享啊
iyounge 发表于 2018-10-18 16:41 | 显示全部楼层
我的trial那啊啊啊啊啊啊啊啊啊啊啊
my12005 发表于 2018-12-19 00:53 | 显示全部楼层
ighttpd服务器url重写与伪静态配置
xin_cxz 发表于 2019-1-8 11:40 | 显示全部楼层
学习一下,有点厉害
pitai 发表于 2019-1-11 15:26 | 显示全部楼层
多谢分享HOHO~
jht987 发表于 2019-8-1 11:38 | 显示全部楼层
楼主辛苦了

RSS|无图版|手机版|友声网 ( 鲁ICP备15020090号-1 )|网站地图 | 点击这里给我发消息 |

GMT+8, 2024-4-20 00:25 , Processed in 0.031292 second(s), 5 queries , MemCache On.

Powered by Discuz! X

© ys166.com

快速回复 返回顶部 返回列表