![Nginx,反向代理:如何将 https 重定向到 http?](https://linux22.com/image/1062558/Nginx%EF%BC%8C%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B0%86%20https%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20http%EF%BC%9F.png)
作为 nginx 新手,我必须了解如何配置反向代理以将 https 请求重定向到 http:实际上,我的 nginx 配置为将 https 请求重定向到不同的服务器(在我的配置文件中,我使用位置来区分 url),并且效果很好。现在我必须添加另一个仅支持 http 请求的内部服务器。我尝试使用这种块:
位置 /OPR {
proxy_pass http://$internalfqdn; proxy_redirect http://$internalfqdn https://$RP_Public_fqdn;
}
但我有两个问题:即使我可以使用 https://“FQDN_public”/OPR 从外部访问登录页面,我也可以在浏览器控制台中看到它尝试使用 http 和服务器的内部 ip 地址连接一些对象(图像、脚本......)
通过输入凭证,我到达页面:https://"FQDN public":80/OPR/PasswordSettings.aspx,这导致超时错误(因为 nginx 只监听 443,所以这看起来很正常)
有人能帮帮我吗?我实际上正在寻找 proxy_set 选项,试图找到解决方案(内部服务器无法配置为使用 https ;) )
编辑:我做了一些配置,并通过添加一些 proxy_set_header 解决了内部 IP 地址的使用问题。现在我的块看起来像:
location /OPR { proxy_pass http://$internalfqdn; proxy_redirect http://$internalfqdn https://$RP_Public_fqdn; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }