我设置了一个 Nginx 反向代理,用作多个服务器(例如 confluence)的 SSL 卸载。我已经成功地获取了http://confluence和https://confluence,但是当我尝试重定向http://confluence:8090时,它尝试转到https://confluence:8090并失败。
如何从 URL 中删除端口?
下面的配置有点精简,但也许有帮助?标头中的 $server_port 位是否导致了问题?
server {
listen 8090;
server_name confluence;
return 301 https://confluence$request_uri;
}
server {
listen 443 ssl http2;
server_name confluence;
location / {
proxy_http_version 1.1;
proxy_pass http://confbackend:8091
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $server_name:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Upgrade $http_upgrade; #WebSocket Support
proxy_set_header Connection $connection_upgrade; #WebSocket Support
}
}
Run Code Online (Sandbox Code Playgroud)
似乎这里有很多答案都涉及http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect,但我在这种混乱的混乱中找不到任何安慰。
我还以为你有一个服务器,但我正在尝试https://serverfault.com/questions/815797/nginx-rewrite-to-new-protocol-and-port的建议
我尝试弄乱该port_in_redirect off;
选项,但也许我用错了?
编辑1:添加conf文件 …