接続を「https解除」する必要がある特別なユースケースがあるため、httpsサービスのリバースプロキシとしてNginxを設定します。
http://nginx_server:8080/myserver ==> https://mysecureservice
ただし、実際のhttpsサービスはプロキシされません。 Nginxは実際のサービスにリダイレクトするため、ブラウザーのURLが変更されます。実際のサービスであったため、httpsなしでNginxとやり取りしたいと思います。
これは私が持っているものです:
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;
}
}
proxy_redirect
を使用してリダイレクトを処理する必要があります。
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/”.
例:
proxy_redirect https://myserver/ http://nginx_server:8080/;
ソース: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect
サーバーにリダイレクトを行わせたくない場合は、nginxを次のように設定できます。
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;
}
}