用于尾部斜杠的FastAPI重定向返回非SSL链接

问题描述

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

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

example of redirect

解决方法

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

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

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

  • 如果您正在运行gunicorn,则还可以设置标志--forwarded-allow-ips="*"

重要*仅应用作测试,因为它会使您的应用程序信任来自任何来源的X-Forwarded-*标头。建议您阅读uvicorn's docsgunicorn's docs,以更深入地了解在此标志中设置的内容以及原因。