Flask 护身符不工作并重定向到 https://localhost:8000

Flask talisman not working and redirects to https://localhost:8000

我已经 运行在我的开发服务器上使用了 flask-talisman,一切正常。然而,在我用于生产的专用服务器 (Almalinux) 上安装了相同的代码和要求,只需在 app = Flask(__name__) 之后添加 Talisman(app) 就会导致网页无法加载并重定向到 https://localhost:8000。输入域后,我在浏览器上准确得到的错误消息是:

This site can't be reached - localhost refused to connect

我 运行宁 Nginx 1.14.1 与 gunicorn 20.1.0 和主管。服务器已连接到互联网,并且在不使用 Talisman 的情况下,目前 运行 顺利。

我尝试过但没有任何效果的列表

这是一个精简的教程代码,在我的服务器上应该 运行 但不 运行:

from flask import Flask
from flask_talisman import Talisman

app = Flask(__name__)
Talisman(app)
app.secret_key = 'kungfoo'

@app.route('/', methods=['GET', 'POST'])
def index():
    return "Hello Whosebug!"

if __name__ == "__main__":
    app.run(debug=True)

嗯,

proxy_set_header X-Forwarded-Proto $scheme; 

在服务器位置/{} 块中的 nginx.conf 中发挥作用。这在 gunicorn 文档中有说明,很容易被忽略...

It is recommended to pass protocol information to Gunicorn. Many web frameworks use this information to generate URLs. Without this information, the application may mistakenly generate ‘http’ URLs in ‘https’ responses, leading to mixed content warnings or broken applications.