2017-06-14 5 views
2

Le serveur Upstream est wowza, qui n'accepte pas les en-têtes personnalisés si je ne les active pas au niveau de l'application. Depuis le navigateur, Nginx fonctionne comme un serveur proxy. Je veux envoyer quelques en-têtes personnalisés qui devraient être reçus et enregistrés par Nginx Proxy mais avant de transférer la requête au serveur en amont, ces en-têtes devraient être supprimés de la requête.Comment faire pour supprimer les en-têtes client dans Nginx avant de transmettre la requête au serveur en amont?

Ainsi serveur en amont ne jamais savoir qu'il y avait des en-têtes personnalisés.

J'ai essayé proxy_hide_header ainsi que proxy_set_header "<header>" "", mais il semble qu'ils s'appliquent aux en-têtes de réponse et non aux en-têtes de demande.

Et même si je l'accepte pour activer les en-têtes sur Wowza, puis de nouveau, je ne suis pas en mesure de trouver un moyen de permettre aux en-têtes au niveau du serveur pour toutes les applications. Currenlty Je dois ajouter des en-têtes à chaque nouvelle application, ce qui n'est pas faisable pour moi.

Toute aide serait appréciée.

+0

Copie possible de [Masquer une en-tête de demande client avec un serveur proxy inverse Nginx] (https://stackoverflow.com/questions/29644744/hide-a-client-request-header-with-a-nginx-reverse- proxy-server) –

Répondre

3

Le proxy_set_header HEADER "" fait exactement ce que vous attendez. Voir https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header.

Si la valeur d'un champ d'en-tête est une chaîne vide, ce champ ne sera pas transmis à un serveur mandaté:

proxy_set_header Accept-Encoding "";

Je viens de confirmer que cela fonctionne comme documenté, J'ai utilisé Nginx v1.12.

+1

Merci, je le mettais à l'intérieur du module http au lieu du serveur/module de localisation. – maddygoround