python-3.x - 尾部斜杠的 FastAPI 重定向返回非 ssl 链接
问题描述
当我们调用端点并且由于缺少尾部斜杠而发生重定向时遇到问题。如下图所示,当向https ://.../notifications 发出请求时,FastAPI 服务器响应重定向到http ://...notifications/
我怀疑这是应用程序配置问题,而不是服务器配置问题。有谁知道如何解决这个问题?
解决方案
这是因为您的应用程序不信任覆盖方案的反向代理标头(X-Forwarded-Proto
处理 TLS 请求时传递的标头)。
有几种方法可以解决这个问题:
如果您直接从
uvicorn
服务器运行应用程序,请尝试使用 flag--forwarded-allow-ips '*'
。如果你正在跑步
gunicorn
,你也可以设置 flag--forwarded-allow-ips="*"
。在任一应用程序中,您都可以额外使用
FORWARDED_ALLOW_IPS
环境变量。
重要提示:*
应该仅用作测试,因为它会引导您的应用程序信任来自任何来源的标X-Forwarded-*
头。我建议您阅读uvicorn 的文档和gunicorn 的文档,以更深入地了解在此标志中设置的内容以及原因。
推荐阅读
- python - 向空 NumPy 数组添加新列
- aws-lambda - 为什么 Headless Chrome,在 Lambda 上运行的 Puppeteer 在每个 page.click() 上都会出错,但在本地却很好?
- ruby - 用于声明左值/右值 = 运算符的 Ruby 语法
- codeigniter - 使用 codeigniter 在 localhost 上的通配符子域
- php - 如何在 laravel 控制器中运行 phpunit 测试?
- cxf - Apache CXF-org.apache.cxf.binding.soap.SoapFault:未定义安全操作
- javascript - 如何将 PHP 正则表达式转换为 jQuery 正则表达式
- pandas - Python:如何从具有多列的数据框中循环遍历每两列组合以进行聚类?
- python - 在数据框中插入缺失的数字
- php - 获取 YOUTUBE API 的 PHP foreach 循环 json 的第一个结果