Je souhaite configurer Nginx en tant que proxy inverse pour un service https, car nous avons un cas d'utilisation spécial où nous devons "annuler le https" une connexion:
http://nginx_server:8080/myserver ==> https://mysecureservice
Mais ce qui se passe, c'est que le service https réel n'est pas mandaté. Nginx me redirige vers le service réel, donc l'URL dans le navigateur change. Je veux interagir avec Nginx car c'était le service réel, juste sans https.
Voici ce que j'ai:
server {
listen 0.0.0.0:8080 default_server;
location /myserver {
proxy_pass https://myserver/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $Host;
}
}
Vous devez utiliser le proxy_redirect
pour gérer la redirection.
Sets the text that should be changed in the “Location” and “Refresh” header fields of a
proxied server response. Suppose a proxied server returned the header field
“Location:https://myserver/uri/”. The directive
will rewrite this string to “Location: http://nginx_server:8080/uri/”.
Exemple:
proxy_redirect https://myserver/ http://nginx_server:8080/;
Source: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect
Vous pouvez configurer nginx comme ceci si vous ne voulez pas que le serveur fasse des redirections:
server
{
listen 80;
server_name YOUR.OWN.DOMAIN.URL;
location / {
proxy_pass http://THE.SITE.URL.YOU.WANT.TO.DELEGAGE/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}