0

Nous avons une application en aval qui définit certains en-têtes personnalisés aux demandes du navigateur avant de toucher nginx. nginx ne sert qu'à des contenus statiques. ie navigateur >> application A >> nginxRenvoie l'en-tête entrant tel quel | Nginx

L'exigence est que le nginx devrait être capable de renvoyer tous les en-têtes qu'il reçoit comme c'est au serveur en aval qui le rendrait au navigateur. par défaut, il ne renvoie que les en-têtes génériques (cookies etc, expiration, etc.) et ne renvoie pas les en-têtes personnalisés envoyés par le serveur en aval.

Par exemple, il existe un en-tête avec le nom appnumber que nginx reçoit avec la valeur app01. J'ai essayé de le définir explicitement avec la règle suivante pour le définir manuellement s'il existe, mais n'a pas aidé car il jette l'erreur que les variables ne sont pas autorisées.

if ($appnumber) { 
    add_header appnumber $appnumber; 
} 

Quelqu'un peut-il me guider ici?

Répondre

0

Les en-têtes de la requête sont stockés sous la variable $ http_. Vous pouvez essayer quelque chose comme

if ($appnumber) { 
    add_header appnumber $http_appnumber; 
} 

Reportez-vous http://nginx.org/en/docs/http/ngx_http_core_module.html et nginx - read custom header from upstream server

+0

Merci pour la suggestion David, mais le add_header 'n'accepte pas une variable dynamique selon son format - config nginx échouerait. – Anooj

+0

Faites un essai avec - https://github.com/openresty/lua-nginx-module. – David