使反向代理后的 Flask 的 url_for() 使用 https

这个问题困扰我多时,曾尝试多个方案未果,今天终于搜到了正确的解决方法,记录下来。

我的网络拓扑: 外部 → docker的nginx → docker的gunicorn → flask

问题

Flask 代码中的 redirect(url_for('login')) 会跳回 http 的登录页面。

我也不想给每个 url_for() 添加强制 https 的参数。

解决

from werkzeug.middleware.proxy_fix import ProxyFix
from flask import Flask

app = Flask(__name__)
app.wsgi_app = ProxyFix(app.wsgi_app)

相关参考


发表评论