wake-up-neo.net

Wie entferne ich Client-Header in Nginx, bevor ich eine Anfrage an den Upstream-Server weitergebe?

Der Upstream-Server ist wowza, der die benutzerdefinierten Header nicht akzeptiert, wenn ich sie nicht auf Anwendungsebene aktiviere.

Nginx arbeitet als Proxyserver. Vom Browser aus möchte ich einige benutzerdefinierte Header senden, die von Nginx Proxy empfangen und protokolliert werden sollen. Bevor Sie jedoch eine Anfrage an den Upstream-Server weiterleiten, sollten diese Header aus der Anfrage entfernt werden.

Der Upstream-Server erfährt also nie, dass dort benutzerdefinierte Header vorhanden sind.

Ich habe es versucht proxy_hide_header ebenso gut wie proxy_set_header "<header>" "", aber sie scheinen auf Antwortheader und nicht auf Anforderungsheader zuzutreffen.

Und selbst wenn ich akzeptiere, die Header in wowza zu aktivieren, kann ich auch hier keine Möglichkeit finden, Header auf Serverebene für alle Anwendungen zu aktivieren. Aktuell muss ich jeder neu erstellten Anwendung Header hinzufügen, was für mich nicht machbar ist.

Jede Hilfe wäre dankbar.

11
maddygoround

Das proxy_set_header HEADER "" macht genau das, was Sie erwarten. Siehe https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header .

Wenn der Wert eines Header-Felds eine leere Zeichenfolge ist, wird dieses Feld nicht an einen Proxy-Server übergeben:

proxy_set_header Accept-Encoding "";

Ich habe gerade bestätigt, dass dies wie dokumentiert funktioniert. Ich habe Nginx v1.12 verwendet.

16
roryrjb