[英]Cherrypy application redirecting to http instead of https behind nginx
我有一个Cherrypy 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。
您是否启用反向代理工具?
您可以通过添加到配置文件中来做到这一点:
tool.proxy.on = True
或通过装饰。
@cherrypy.tools.proxy
该工具的部分功能是通过将协议从http
调整为https
来调整应用程序基础。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.