我最近安装nginx 1.0.5与PHP FCP,PHP APC和Postgres。 我只是想玩弄nginx,学习如何configuration基本的东西。 对于扩展testing,我决定安装PHPBB3(很好),看看PHP + Postgres的访问工作。
现在我想知道重写URL是如何工作的,并且已经发现重写的东西应该写在nginxconfiguration中的位置部分。
但不幸的是nginx似乎忽略了我在configuration中的每一个重写规则。 所以我想知道如果我不得不先打开重写function?
nginx -V |grep rewrite
什么都不显示,而且安装nginx-extras也没有帮助。 我只是希望nginx-extras包含了像重写模块的东西,但不幸的是情况并非如此。
searchserverfault.com和谷歌没有帮助。 所以 – 我该怎么办? :\高度赞赏任何帮助。
PS:所有软件包都安装在Debian 6中的apt-get安装。
编辑:下面我的nginx vhostconfiguration的摘录:
server { listen 80; server_name domain.org www.domain.org; access_log /var/log/nginx/domain.access_log; error_log /var/log/nginx/domain.error_log; rewrite_log on; events { debug_connection <my ip>; } [...]
rewrite
模块是内置编译的。 我build议你打开rewrite_log
看看会发生什么。
我按照这里的指示,如何configuration重写规则,他们的工作,但起初有点混淆:
http://wiki.nginx.org/HttpRewriteModule#rewrite
我强烈build议的一件事是确保你的nginx构build有debug_connection:
http://wiki.nginx.org/EventsModule#debug_connection
打开这个testingIP,然后发出请求将整个nginx决策过程转储到错误日志中。 这绝对是我在任何Web服务器上使用过的最有用的诊断工具。 它会告诉你到底你的重写规则发生了什么,如果不匹配,或者规则无效,或者完全跳过。 如果apt-get不支持debug_connection,那么使用它重build(非常小的)是值得的。