Nginx - Как мне прокси все 404 запроса на другой сервер - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь прокси-сервер для всех моих 404 запросов на резервный сервер, также в течение 404 секунд, возвращаемых сценарием php хост-сервера.

recursive_error_pages off;
error_page 404 = @missing;

location @missing {
    proxy_pass http://anotherserver;
    proxy_read_timeout 60s;
}

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ /index.php$is_args$args;
}

Таким образом, всякий раз, когда php-приложение возвращает 404, оно грациозно возвращается к другому серверу, но проблема в том, что он не может передавать URI, поскольку он находится внутри именованного блока.

Как настроить nginx для прокси на другой сервер только когда приложение сервера хоста вернет 404?

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете передать другой сервер в блоке местоположения, используя nginx upstream :

recursive_error_pages off;
error_page 404 = @missing;

upstream anotherserver404 {
    server anotherserver.only404.com:80;
}

location @missing {
    proxy_pass http://anotherserver404;
    proxy_read_timeout 60s;
}

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ /index.php$is_args$args;
}
...