我认为fastcgi/php5-fpm
使用 Unix socks 的设置是相当标准的,我的网站的配置文件(请原谅查找和替换)如下:
server {
listen 80;
server_name example.com www.example.com;
access_log /srv/vhost/sites/example/logs/access.log;
error_log /srv/vhost/sites/example/logs/error.log;
root /srv/vhost/sites/example/public_html;
index index.php index.html index.htm;
location / {
index index.php;
try_files $uri $uri/ @wikka;
}
location @wikka {
rewrite ^(.*/[^\./]*[^/])$ $1/ last;
rewrite ^(.*)$ /wikka.php?wakka=$1 last;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /srv/vhost/sites/example/public_html$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass unix:/etc/nginx/sockets/example.sock;
}
}
我似乎永远无法将其重写/xxx
为wikka.php?wakka=xxx
。
我通常在这些重写尝试中总是会得到 502 BAD GATEWAY,并且日志每次都显示几乎相同的内容:
[error] 19289#0: *6 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 174.1.235.8, server: example.com, request: "GET /Home HTTP/1.1", upstream: "fastcgi://unix:/etc/nginx/sockets/example.sock:", host: "example.com"
你知道会发生什么吗?你知道如何在 nginx 中重写上述简单示例吗?似乎有人要求提供类似的信息(WikkaWiki 是名称,此处:为 wikkawiki 重写 nginx但没有成功)
我尝试过各种@locations,或者将重写添加到各个位置,last;
最后break;
经常陷入重定向循环。
我总是上传新的配置和SIGHUP
(或通过重新启动init.d
)nginx,并在nginx -t
您需要该信息之前进行测试以确保它至少是有效的。
答案1
尝试将 Location ~.php 块内的所有内容重新复制到 Location @wikka 块中。