我在 nginx 后面运行 CherryPy 并需要处理重定向。在我的在 127.0.0.1:8080 上运行的开发机器上,这会正确重定向到 127.0.0.1:8080/login。
然而,当通过 nginx 在cherrypy.mydomain.com(端口80)上运行时,重定向仍然会转到127.0.0.1:8080/login,而不是cherrypy.mydomain.com/login。 127.0.0.1:8080 是应用程序的正确本地地址,但是 nginx 中的应用程序服务器设置为侦听端口 80 并将请求通过管道传输到 127.0.0.1:8080 上的本地cherrypy 服务器,但不应直接公开此地址。
我的应用程序中的相关行是:
授权失败:
raise cherrypy.HTTPRedirect("/login")
在我的控制器中:
cherrypy.config.update({
'tools.encode.on': True, 'tools.encode.encoding': 'utf-8',
'tools.decode.on': True,
'tools.trailing_slash.on': True,
'server.socket_host' : '127.0.0.1',
'server.socket_port' : 8080,
})
我想知道除了套接字主机之外,服务器/主机名是否还有一个额外的cherrypy配置项,但我很难在文档中找到它。
本质上,我需要的只是cherrypy 重定向到cherrypy.mydomain.com 主机名而不是内部IP。
Thanks!
Try 工具代理 http://cherrypy.readthedocs.org/en/latest/pkg/cherrypy.lib.html#cherrypy.lib.cptools.proxy配置设置:
'tools.proxy.on': True,
此外,您可能需要
'tools.proxy.local': 'X-Forwarded-Host',
设置为适当的标题。使用时NGINX,标题将是
'tools.proxy.local': 'Host',
的情况下Lighttpd这个标题将是合适的:
'tools.proxy.local': 'X-Host'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)