nat*_*ill 9 python apache flask
在我的Flask配置中,我将SERVER_NAME设置为"app.example.com"之类的域.我这样做,因为我需要使用url_for与 _external网址.如果未设置SERVER_NAME,Flask认为服务器是127.0.0.1:5000(它实际上是在反向代理后面运行),并返回一个外部URL,如http://127.0.0.1:5000/location.
到现在为止还挺好.但是这是我的问题:设置SERVER_NAME后,每个URL都返回404.我看到每个请求都到达服务器,到达正确的URL,但Flask以404响应.如果我禁用SERVER_NAME,则返回正确的页面.
我正在使用Apache与ProxyPass和ProxyPassReverse(我知道,我宁愿使用Nginx,但这是一个要求).这是我正在添加的标题:
Header add Host "app.example.com"
RequestHeader set Host "app.example.com"
Header add X-Forwarded-Host "app.example.com"
RequestHeader set X-Forwarded-Host "app.example.com"
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
nat*_*ill 14
刚刚找到答案.Apache有一个名为的选项ProxyPreserveHost.一旦设置为On,一切都按预期工作.
更多信息请访问:http://flask.pocoo.org/mailinglist/archive/2011/3/14/problem-with-apache-proxy-and-canonical-urls/
| 归档时间: |
|
| 查看次数: |
2801 次 |
| 最近记录: |