100 votes

Comment conserver l'URL de la requête avec nginx proxy_pass

J'ai essayé d'utiliser Minces application serveur et qui ont un problème.

Lors de nginx procurations de la demande à la Fin (ou Licorne) à l'aide d' proxy_pass l'application reçoit l'URL modifiée envoyé par nginx (http://my).

Ce que je veux, c'est passer de l'URL d'origine et de la demande initiale du client ne disposant pas de modification que l'application s'appuie fortement sur elle.

La nginx' doc dit:

S'il est nécessaire de transmettre des URI dans la forme initiale puis de la directive proxy_pass doit être utilisé sans URI partie.

Mais je ne comprends pas exactement comment configurer ce que l'échantillon est en fait l'utilisation d'URI:

_app_upstream;

Donc, pourriez-vous s'il vous plaît m'aider à trouver comment conserver l'original de l'URL de la requête du client?

Merci,
Dima.

163voto

yibe Points 1541

Je pense que la directive proxy_set_header pourrait aider:

 location / {
    proxy_pass http://my_app_upstream;
    proxy_set_header Host $host;
    # ...
}
 

12voto

GKislin Points 254

Juste proxy_set_header hôte $ hôte manque port pour mon cas. Résolu par:

 

    location / {
     proxy_pass http://BACKENDIP/;
     include /etc/nginx/proxy.conf;
    }

 

puis dans le proxy.conf

 

    proxy_redirect off;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X