mit*_*man 21 ssl https proxy reverse-proxy nginx
我想将Nginx设置为https服务的反向代理,因为我们有一个特殊的用例,我们需要"取消https"连接:
http://nginx_server:8080/myserver ==> https://mysecureservice
但是会发生的是实际的https服务没有被代理.Nginx会将我重定向到实际服务,因此浏览器中的URL会发生变化.我想与Nginx进行交互,因为它是实际的服务,只是没有https.
这就是我所拥有的:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
Tan*_*Tat 17
您必须使用它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/”.
Run Code Online (Sandbox Code Playgroud)
例:
proxy_redirect https://myserver/ http://nginx_server:8080/;
Run Code Online (Sandbox Code Playgroud)
资料来源: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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32438 次 |
| 最近记录: |