【发布时间】:2014-04-14 11:37:12
【问题描述】:
在我的 Flask 配置中,我将 SERVER_NAME 设置为像“app.example.com”这样的域。我这样做是因为我需要将url_for 与_external URL 一起使用。如果 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"
有什么想法吗?
【问题讨论】: