nginx blockiert beim Versetzen der Site in den Wartungsmodus entweder die Wartungsdatei oder lässt weiterhin alle Dateien zu

nginx blockiert beim Versetzen der Site in den Wartungsmodus entweder die Wartungsdatei oder lässt weiterhin alle Dateien zu

Ich betreibe einen einfachen Nginx-Server mit PHP-FPM, der meine Seiten für mich bereitstellt.

Ich habe versucht, es in den Wartungsmodus zu versetzen, indem ich alle Anfragen an 503 umgeleitet und dann eine benutzerdefinierte Fehlerseite verwendet habe, um die 503 anzuzeigen.

Mein Problem ist, dass das, was mit meiner Konfiguration nicht stimmt, dazu führt, dass nginx jede Seite umleiteteinschließlichdie benutzerdefinierte 503 in einen integrierten Standard ohne Informationen dazu oder durch eine leichte Änderung der Konfiguration (siehe unten) werden alle meine PHP-Seiten weiterhin bereitgestellt. Ich versuche, eine Möglichkeit zu finden, jede Anfrage auf die Wartungsseite umzuleiten, anstatt den Standard von Nginx zu verwenden.

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;
    }
}

Ich habe mehrere Kombinationen ausprobiert und es macht mich wirklich verrückt. Was mache ich falsch?

verwandte Informationen