Я запускаю простой сервер nginx с php-fpm, чтобы обслуживать мои страницы для меня.
Я пытался перевести его в режим обслуживания, перенаправляя все запросы на 503, а затем используя настраиваемую страницу ошибок для отображения 503.
Моя проблема в том, что все, что не так с моей конфигурацией, заставляет nginx перенаправлять каждую страницу включая настраиваемый 503 на встроенный по умолчанию без информации о нем, или путем небольшого изменения конфигурации (см. ниже) все мои страницы php продолжают обслуживаться. Я пытаюсь найти способ перенаправить каждый запрос на страницу обслуживания вместо использования по умолчанию nginx.
server {
listen 80 default_server;
# configuration for SSL and other things not pertaining to the question
# ...
root /srv/http;
index index.php index.html index.htm index.nginx-debian.html;
error_page 400 /400.php;
error_page 401 /401.php;
error_page 403 /403.php;
error_page 404 /404.php;
error_page 410 /410.php;
error_page 500 /500.php;
error_page 503 /503.php;
# the method I'm using to enable maintenance involves looking for a file
# putting this right here causes the entire site to be blocked
if (-f $document_root/maintenance.on) {
return 503;
}
location / {
# putting the 503 checker here instead does not stop requests to index.php
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
}
Я пробовал несколько комбинаций, и это действительно меня заводит. Что я делаю не так?