LINUX.ORG.RU

Замена error_page nginx

 , ,


1

4

Доброго времени суток. Народ, помогите решить проблему.

Имеется: nginx с кучей кофигов в sites-enabled, в каждом конфиге свои настройки.

Хочу добиться того, чтобы, добавив return 503; в блок server {...} в конфиге сайта, выдавалась страничка с заранее подготовленной страничкой, причем страничка та находится вообще на другом сервере (proxy_pass).

Если error_page 403 /maintenance; еще можно вынести в блок http {...} то location не получается. Но если я не опишу location, тогда nginx выдаст свою build-in белую страницу с ошибкой.

В идеале еще, чтобы, при всей этой канители, выдавался код ошибки в заголовке 503й, чтобы при мониторинге или еще хуже при вложенных средствах в SEO не проиндексировалось не пойми чего.



Последнее исправление: ilmenshik (всего исправлений: 2)

Как вариант можно создать файл в /etc/nginx/fallback503.conf:

error_page 503 = @fallback503;

location @fallback503 {
        ...
}
И инклудить этот файл в каждый хост
include fallback503.conf;

Deleted
()
Ответ на: комментарий от Deleted

«location» directive is not allowed here in /etc/nginx/fallback503.conf:3

# cat /etc/nginx/fallback503.conf
error_page 503 =503 @maintenance;

location @maintenance {
        proxy_pass ...
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header Host ...;
        proxy_read_timeout 2400;
        proxy_send_timeout 2400;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_intercept_errors on;
}

include до server {..}, а внутри блока «return 503;», в том то и загвоздка

ilmenshik
() автор топика
Ответ на: комментарий от ilmenshik

Других вариантов просто быть не может, либо в server{} либо никак.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.