Nginx/Cloudflare: Kann ich einen Serverblock anstelle von DNS als Proxy verwenden?

Nginx/Cloudflare: Kann ich einen Serverblock anstelle von DNS als Proxy verwenden?

Ich habe beim Einrichten der benutzerdefinierten Fehlerseitenfunktion von Cloudflare leichte Probleme und würde daher gern herausfinden, wie ich nur dann einen Proxy-Pass an Cloudflare weiterleiten kann, wenn mein Server keinen Fehlercode zurückgibt, da ich diese wirklich nur verwenden möchte, um eine benutzerdefinierte Seite anzuzeigen, die ich erstelle, und nicht die Standardseiten von Cloudflare.

Hier ist die Sites-Available-Konfiguration von Nginx:

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream app {
    server 127.0.0.1:8000;
    # server CLOUDLFARE_ADDRESS_FOR_PROXY
}

server {
    listen 443 ssl;
    server_name example.com www.example.com;

        location / {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://app;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";

                proxy_redirect off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Host $server_name;
                proxy_headers_hash_max_size 512;
                proxy_headers_hash_bucket_size 128;
                # can this work somehow?
                # proxy_next_upstream [non-error] CLOUDLFARE_ADDRESS_FOR_PROXY
        }

        location ~*  \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
                expires 1d;
        }

        error_page 500 502 503 504 /custom_50x.html;
        location = /custom_50x.html {
                        root /usr/share/nginx/html;
                        internal;
        }
        ssl_certificate /etc/letsencrypt/live/exactestate.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/exactestate.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Ich möchte Cloudflare nur dann als Proxy verwenden, wenn mein Server keine Fehlercodes ausgibt. Wie kann ich dies erreichen?

DNS-Einstellungen über die Cloudlfare-Schnittstelle sind vermutlich leistungsfähiger als Serverblöcke, daher hätte ich gerne eine Möglichkeit, dies über den Serverblock von Nginx statt über einen vollständigen DNS-Proxy zu tun.

verwandte Informationen