2017-07-31 1 views
1

J'ai un pare-feu qui est le terminateur SSL et définit l'en-tête remote_user. Cet en-tête devrait être passé sur une application, cependant nous avons un proxy nginx assis au milieu.Proxy pass remote_user avec nginx

navigateur via SSL -> proxy Firewall -> proxy Nginx -> App

Je ne peux pas pour la vie de me comprendre comment passer l'en-tête de remote_user à l'application à partir du pare-feu. Nginx semble l'avaler. $ remote_user ne l'a pas (ce qui est logique). $ http_remote_user ne l'a pas (ce qui n'a pas de sens). J'ai essayé de le trouver dans $ proxy_add_ * mais je n'ai pas pu le trouver.

Comment puis-je passer l'en-tête remote_user lorsque le terminateur SSL n'est pas nginx?

EDIT1: Autres choses que j'ai essayé:

proxy_pass_request_headers on; 
proxy_pass_header remote_user; 
proxy_set_header other_user $http_remote_user; 

proxy_pass http://scooterlabs.com/echo; 
+0

proxy_set_header bob remote_user; fonctionne très bien si ... pour bob. – Thomas

+0

Etes-vous sûr que votre proxy de pare-feu définit correctement l'en-tête 'remote_user'? Est-ce que nginx le reçoit même? – sharif9876

+0

Il a été défini, underscores_in_headers on; comme gargsms indiqué ci-dessous était le chaînon manquant. – Thomas

Répondre

2

Vous devez utiliser une combinaison de proxy_pass_request_headers on et underscores_in_headers on depuis votre tête contient un trait de soulignement.

underscores_in_headers doit être placé dans votre bloc http.

Voir: http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers

RÉPONSE VIEUX

Vous cherchez proxy_pass_header

Voir: Module ngx_http_proxy_module

+0

Aucun effet (Exemple en post) – Thomas

+0

@Thomas J'ai mis à jour la réponse ci-dessus. – gargsms

+0

Je pourrais vous embrasser. – Thomas