Flask 在生产中与 Caddy 和 Waitress url_for 重定向到本地主机
Flask in production with Caddy and Waitress url_for redirect to localhost
我在 Windows EC2 实例上有一个 Flask 服务器 运行ning。
我需要使用 https 协议,所以我的设置是这样的:
- 我有一个 Caddy 服务器
- 我使用 Waitress 运行 我的烧瓶应用程序
这是我的 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。
我在 Windows EC2 实例上有一个 Flask 服务器 运行ning。
我需要使用 https 协议,所以我的设置是这样的:
- 我有一个 Caddy 服务器
- 我使用 Waitress 运行 我的烧瓶应用程序
这是我的 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。