繁体   English   中英

Cherrypy应用程序重定向到http而不是nginx后面的https

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM