nginx - redirects des "Proxied"-Server abfangen
Markus**
- webserver
0 Markus**0 Langheinrich0 Markus**
Hallo Forum,
ich nutze nginx als Reverse Proxy um u.A. Traffic zu verteilen und Redirects zu verwalten. Passt auch super und gut dokumentiert ist auch alles. Trotzdem kann ich im Betreff genanntes Problem nicht lösen.
Einer der Webserver dessen Datenverkehr über den nginx geht, "redirected" ab und an. Das möchte ich gerne für bestimmte Ziele unterbinden. (Hier redirects auf Fehlerseiten), damit im Fehlerfall die URI in der Adressleiste des Browsers stehen bleibt.
location / {
#proxy_intercept_errors off;
#error_page 404 @errorpage;
proxy_pass $scheme://$serverip;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if ($sent_http_location) {
return 404;
}
}
Die beiden auskommentierten Zeilen des location-Abschnitts helfen nicht, da sie erst dann greifen, wenn bereits zur Fehlerseite umgeleitet ist.
Sämtliche Redirects mit "proxy_redirect off;" zu unterbinden, hatte keine Auswirkungen. Es wird nach wie vor weiter redirected.
Die Variable "$sent_http_location", sollte lt. Doku den "Location:"-Teil des response headers enthalten. Leider ist die Variable offenbar aber in dem Kontext leer. (Für's logging -> custom log, kann ich sie problemlos nutzen)
Hat irgendwer eine Idee, wie sich das Ziel umsetzen lässt?
VG Markus**
Hallo Forum,
Hi Again:
die variable $sent_http_location ist nicht in allen Bereichen gesetzt. Im Grunde nur beim "Logging", wie ich aus einem Google-Books Dokument entnehmen konnte.
Interessanter Weise kann ich das Durchreichen des Redirects Komplett verhindern, aber in keiner Weise nur bei bestimmten Anforderungen :-/
Doof das!
Gruß Markus**
Hallo Forum,
Hi Again:die variable $sent_http_location ist nicht in allen Bereichen gesetzt. Im Grunde nur beim "Logging", wie ich aus einem Google-Books Dokument entnehmen konnte.
Hallo Markus,
wo findet sich das von dir beschriebene Buch? Ist es ein openbook? Nur aus Interesse!
Der Langheinrich
Hallo Langheinrich,
die variable $sent_http_location ist nicht in allen Bereichen gesetzt. Im Grunde nur beim "Logging", wie ich aus einem Google-Books Dokument entnehmen konnte.
Hallo Markus,
wo findet sich das von dir beschriebene Buch? Ist es ein openbook? Nur aus Interesse!
Der Langheinrich
hier der Google-Books Link. :-)
Gruß Markus