Назад | Перейти на главную страницу

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 ПЛОХОГО ШЛЮЗА при этих попытках перезаписи, и журналы каждый раз показывают почти одно и то же:

[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.