告诉Werkzeug它在委托书后面

当使用反向代理或许多Python托管平台时,代理将拦截所有外部请求并将其转发到本地WSGI服务器。

从WSGI服务器和应用程序的角度来看,请求现在从HTTP服务器发送到本地地址,而不是从远程地址发送到外部服务器地址。

应设置HTTP服务器 X-Forwarded- 将实际值传递给应用程序的标头。然后,可以通过使用 X-转发-用于代理修复 中间件由Werkzeug提供。

只有当应用程序实际上位于代理之后时,才应该使用此中间件,并且应该使用链接在其前面的代理的数量进行配置。并不是所有的代理都设置了所有的头。由于传入的报头可能是伪造的,因此您必须设置设置每个报头的代理数量,以便中间件知道应该信任什么。

from werkzeug.middleware.proxy_fix import ProxyFix

app.wsgi_app = ProxyFix(
    app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1
)

请记住,只有在使用代理的情况下才应用此中间件,并设置设置每个标头的正确代理数量。如果您的配置有误,可能会出现安全问题。