首页 > 解决方案 > 尾部斜杠的 FastAPI 重定向返回非 ssl 链接

问题描述

当我们调用端点并且由于缺少尾部斜杠而发生重定向时遇到问题。如下图所示,当向https ://.../notifications 发出请求时,FastAPI 服务器响应重定向到http ://...notifications/

我怀疑这是应用程序配置问题,而不是服务器配置问题。有谁知道如何解决这个问题?

重定向示例

标签: python-3.xfastapiuvicorn

解决方案


这是因为您的应用程序不信任覆盖方案的反向代理标头(X-Forwarded-Proto处理 TLS 请求时传递的标头)。

有几种方法可以解决这个问题:

  • 如果您直接从uvicorn服务器运行应用程序,请尝试使用 flag --forwarded-allow-ips '*'

  • 如果你正在跑步gunicorn,你也可以设置 flag --forwarded-allow-ips="*"

  • 在任一应用程序中,您都可以额外使用FORWARDED_ALLOW_IPS环境变量。

重要提示:*应该仅用作测试,因为它会引导您的应用程序信任来自任何来源的标X-Forwarded-*头。我建议您阅读uvicorn 的文档gunicorn 的文档,以更深入地了解在此标志中设置的内容以及原因。


推荐阅读