Flask 在生产中与 Caddy 和 Waitress url_for 重定向到本地主机

Flask in production with Caddy and Waitress url_for redirect to localhost

我在 Windows EC2 实例上有一个 Flask 服务器 运行ning。

我需要使用 https 协议,所以我的设置是这样的:

这是我的 Caddy 配置:

example.com:443{
    proxy / 127.0.0.1:8080
    tls me@example.com
}

一切正常,除了在我的 application.py 文件中,当我这样做时:

return redirect(url_for('test', filename=filename))

我的网络浏览器重定向我:

_external=True

相同的结果

但是在模板页面上,例如 https://example.com/test2 使用 [=14= 渲染] 如果我有一个 link <a href="{{ url_for('index') }}" /> 生成的 HTML 很好: https://example.com/

现在我已经在 application.py 中硬编码了我的 url 但这不是我想要保留它的方式...

我已经将我的 Caddyfile 更新为这个,现在它工作得很好!

example.com:443 {
    proxy / 127.0.0.1:8080 { 
        header_upstream Host {host} 
        header_upstream X-Real-IP {remote} 
        header_upstream X-Forwarded-For {remote} 
        websocket 
    }
        tls me@example.com
}

This answer给了我一个提示。

This answer 帮助我构建了 Caddyfile。