Gibt es eine Möglichkeit zum entfernen von Apache-Reverse-Proxy-Request-Header?
Beim handeln als ein reverse-proxy, apache, fügt der " x-forwarded-Header, wie hier beschrieben.
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#x-headers
In meiner Konfiguration habe ich konfiguriert server als forward-proxy. Gibt es eine Regel wie diese:
RewriteRule proxy:(.*example.com)/(.*) $1.mysecondserver.com/$2 [P]
Diese Regel erlaubt der server-Anfrage, die Ressource von einem meiner anderen Server.
Auf dem zweiten server (origin) ich habe einen virtual-host-container für die Ressource und andere rewrite-Regel wie diese:
RewriteRule some-regex some-url [P]
Kann es nicht sinnvoll erscheinen, aber es gibt viele andere Dinge, die ich ausgelassen habe, da es nicht Teil des Problems.
Jedoch, dass die Letzte Anforderung hat diese Header:
[X-Forwarded-For] => ip of 1st server
[X-Forwarded-Host] => example.myseconserver.com
[X-Forwarded-Server] => example.com
Möchte ich diese Header Weg.
Scheine ich unfähig zu sein, zu unset Sie mit Sie mod_headers.. Ich kann hinzufügen, mehr Einträge, aber ich kann nicht entfernen Sie Sie.
Irgendwelche Ideen?
- Die einzige Möglichkeit die mir bekannt ist RequestHeader aus Sie mod_headers.: verwenden Sie zum löschen der Header, z.B.
RequestHeader unset X-Forwarded-For
. Diese Richtlinie hat eine geringere Priorität und läuft von nach mod_rewrite kurz vor der Anfrage wird von seinem Hundeführer in der fixup-phase. Ich bin mir nicht sicher überX-Forwarded-*
Header, aber es funktioniert gut für Benutzer-Agenten und ähnliche Header -- keine Probleme, Sie zu entfernen - das ist genau das, was ich versucht, aber diejenigen, die Header scheinen nicht auf diese Weise bearbeitet werden
Du musst angemeldet sein, um einen Kommentar abzugeben.
korrigierte Antwort: es gibt keine Möglichkeit, das zu tun, dass seit seiner hardcoded
dieses Problem zu beheben, die in den Quell-code von mod_proxy_http.c suchen Sie nach dem folgenden Artikel:
und sofort danach fügen Sie diesen code:
dann kompilieren durch läuft
apxs2 -cia mod_proxy_http.c
Seit Apache 2, da diese ziemlich Antwort sagt, die
theoretisch ist es deaktiviert. In meine Erfahrungen, es hatte keine Wirkung. Allerdings, kombiniert mit
und mit
irgendwo begann es zu arbeiten.
Ich hatte das gleiche problem auf httpd 2.2 unter CentOS 5. Installation httpd 2.4 nicht möglich war. Aber aus irgendwelchen Gründen konnte ich nicht wechseln nginx komplett. So ich habe es durch einfügen der nginx-proxy zwischen httpd und die Ziel-Adresse. Also ich hatte: httpd(
localhost:80/path
) -> nginx(localhost:81/path
) ->http://your.destination/path
. Installation Schritte sind die folgenden:Fügen Sie eine Lage in der nginx wird, entfernen Sie die httpd-reverse-proxy-request-Header. Es kann wie folgt Aussehen: