У меня есть то, что я считаю стандартным 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 ПЛОХОГО ШЛЮЗА при этих попытках перезаписи, и журналы каждый раз показывают почти одно и то же:
[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 - это имя, здесь: nginx rewrite для wikkawiki но не увенчались успехом)
Я пробовал разные @locations или добавлял перезапись в разные места с помощью last;
или break;
в конце часто заканчиваются циклами перенаправления.
Я всегда загружаю новую конфигурацию и SIGHUP
(или перезапустите через init.d
) nginx, а перед тестом с nginx -t
чтобы убедиться, что она по крайней мере действительна, если вам нужна эта информация.
Попробуйте скопировать все содержимое блока Location ~ .php в блок Location @wikka.