我有一个讨厌的webapp,我在ssl的nginx反向代理后面托管。
nginx位置设置如下:
location /webapp {
proxy_pass http://127.0.0.1:8642;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
加载https://myaddress.com/webapp时,一切正常。页面加载正常。
但是当我点击任何链接时,它会打开http://myaddress.com/webapp/page,当使用ssl在nginx后面加载时不会加载。
链接很简单
<a href='/webapp/page'>Page</a>
然后我可以手动打开https://myaddress.com/webapp/page加载正常。
我无法弄清楚为什么浏览器将其踢到http://而不是停留在https://
编辑:
前一段时间我想到了这种情况,并忘记了这篇文章。
将主方法名称从index()更改为default()修复此问题。我无法弄清楚原因,而且我无法在CherryPy文档中找到任何内容。
因此,当访问mysite.com/news时,Cherrypy现在返回News.default()而不是News.index(),这并不会更改URI。
答案 0 :(得分:3)
您是否启用了反向代理工具?
您可以通过添加到配置文件中来执行此操作:
tool.proxy.on = True
或通过装饰。
@cherrypy.tools.proxy
该工具的部分功能是通过将协议从http
调整为https
来调整应用程序库。