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