你好,我已将 nginx 设置成将所有 80 端口请求重定向为使用 https:
server {
listen 80;
...
return 301 https://$host$request_uri;
}
然后我将所有 https 请求路由到我的应用程序服务器
server {
listen 443 ssl;
...
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
...
}
}
Location
除了那些带有标头的 302 响应(例如),其他一切都按预期运行Location: http://localhost/somepage
,我期望它们被重定向到使用 https(因为它们是通过端口 80 访问页面的),但是,我得到了一个错误(net::ERR_FAILED)。奇怪的是,直接在浏览器中输入这些 URL(例如http://localhost/somepage) 按预期工作(即重定向使用 https 并返回页面),因此只有 URLLocation
没有被 nginx 重定向,请帮忙。
答案1
尝试在代理末尾添加一个斜杠,即proxy_pass http://localhost:8080/;
我过去遇到过问题,即位置直接附加到 URL,例如https://localhostSomepage
而不是https://localhost/Somepage
。希望这会有所帮助。