Deployment with HTTPS

将 SQLAdmin 或 FastAPI/Starlette 应用部署在反向代理(如 Nginx)后面,并在反向代理上启用 HTTPS 是一种常见且有用的做法。

在本地运行应用时,您不会遇到任何问题,但如果在启用了 HTTPS 的反向代理后,您可能会在浏览器开发者控制台看到类似以下的错误:

混合内容:页面 '<URL>' 通过 HTTPS 加载,但请求了不安全的脚本 '<URL>'。此请求已被阻止;内容必须通过 HTTPS 提供。

这意味着管理员的 CSS 和 Javascript 文件未能正确加载。这与 SQLAdmin 本身无关,更与您如何部署项目有关。

例如,如果您使用 Uvicorn 作为 ASGI 服务器,可以添加以下选项来解决此问题:

--forwarded-allow-ips='*'
--proxy-headers

因此,您的命令应该是:

uvicorn <module>:<app> --forwarded-allow-ips='*' --proxy-headers

有关更多信息和完整的文档,您可以访问 Uvicorn 网站,查看有关在 Nginx 后面运行的相关文档。

最后更新于