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.

Другие вопросы по тегам