Странные местоположения NGINX ... Не соответствует каталогу

У меня есть установка Wordpress, и в ее корневой папке есть специально созданная внешняя служба. Эту внешнюю службу я хотел бы запустить в отдельном пуле. Итак, я создал 2 пула php FPM , для которых один будет работать в 127.0.0.1:9000, а второй - в: 127.0.0.1:9001

Я проверил, что могу подключиться к этому порту через Telnet и что он открыт и работает.

Мой NGINX не будет отправлять данные. Вот моя конфигурация nginx:

server {
    listen 80;

    root /var/www/website;
    index index.php index.html index.htm;

    location / {
            # try_files $uri $uri/ =404;
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/html;
    }

    location /service {
    #       include cors;
            try_files $uri =404;
            fastcgi_param REMOTE_ADDR $http_x_real_ip;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9001;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            fastcgi_param REMOTE_ADDR $http_cf_connecting_ip;

    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_param REMOTE_ADDR $http_x_real_ip;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            fastcgi_param REMOTE_ADDR $http_cf_connecting_ip;

    }
}

Теперь, когда я перехожу на

http: // localhost / service

, я получаю 404 из wordpress, но когда я перехожу на

http: //localhost/service/index.php

, я получаю услугу.

Если я удалю

location / service

из Nginx конфигурация Я получаю index.php в служебной папке, когда перехожу по адресу http: // localhost / service

Как мне настроить так, чтобы служба вызывалась по URL-адресу / service?

0
задан 4 February 2017 в 00:04
1 ответ

Конфигурация Nginx выполняется последовательно, поэтому для остановки после первого совпадения вам необходимо добавить директиву прерывания следующим образом:

location /service {
#       include cors;
        try_files $uri =404;
        fastcgi_param REMOTE_ADDR $http_x_real_ip;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9001;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        fastcgi_param REMOTE_ADDR $http_cf_connecting_ip;
        break;

}
0
ответ дан 5 December 2019 в 08:41

Теги

Похожие вопросы