用于尾随斜杠的 FastAPI 重定向返回非 ssl 链接

Nik*_*day 12 python-3.x fastapi uvicorn

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

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

重定向示例

Gus*_*oto 6

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

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

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

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

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

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