Python 使用服务器名称时使用烧瓶404

Python 使用服务器名称时使用烧瓶404,python,apache,flask,Python,Apache,Flask,在我的Flask配置中,我将服务器名称设置为类似“app.example.com”的域。我这样做是因为我需要将url\u用于\u外部url。如果未设置服务器名称,Flask认为服务器是127.0.0.1:5000(它实际上在反向代理后面运行),并返回一个外部URL,如http://127.0.0.1:5000/location 到目前为止还不错。但我的问题是:设置了服务器名称后,每个URL都返回404。我看到每个请求都指向服务器,指向正确的URL,但是Flask用404响应。如果禁用服务器名称,

在我的Flask配置中,我将服务器名称设置为类似“app.example.com”的域。我这样做是因为我需要将
url\u用于
\u外部
url。如果未设置服务器名称,Flask认为服务器是127.0.0.1:5000(它实际上在反向代理后面运行),并返回一个外部URL,如
http://127.0.0.1:5000/location

到目前为止还不错。但我的问题是:设置了服务器名称后,每个URL都返回404。我看到每个请求都指向服务器,指向正确的URL,但是Flask用404响应。如果禁用服务器名称,则返回正确的页面

我将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"

有什么想法吗?

刚刚找到答案。Apache有一个名为
ProxyPreserveHost
的选项。一旦设置为On,一切正常


更多信息请点击此处:

好消息!这是nginx的补丁:
proxy\u set\u header Host$Host
您可能还需要关闭
proxy\u重定向用于nginx@PieterEnnes你一定要回答这个问题这正是我需要的谢谢如果海报编辑了他的答案,将@PieterEnnes answer加入到nginx中会很好,因为它确实有效。如果你的地址中有一个端口并使用
nginx
,你可能想使用
proxy\u set\u header Host$http\u Host作为
$http\u主机
包括端口。