我正在 AWS 中构建一个环境来托管 django 应用程序。我试图弄清楚是否应该使用 nginx 作为构建的一部分。
我在下面列出了一些不同的环境,以供示例/比较之用。所有环境都使用 AWS ALB。
ENV 1
ALB -> dockercontainer 运行 django
- +使用内置的django网络服务器,静态文件工作
- -内置 django 网络服务器不适用于生产用途
ENV 2
ALB -> dockercontainer 运行 django/gunicorn
- +使用gunicorn(不是django网络服务器)
- - 静态文件不起作用
ENV 3
ALB -> dockercontainer 运行 django/gunicorn + nginx
注意:我还没有测试过这个配置。
- +使用gunicorn(不是django网络服务器)
- +使用nginx
- 静态文件应该可以工作
I read this https://serverfault.com/questions/331256/why-do-i-need-nginx-and-something-like-gunicornstackoverflow 发帖并了解 Gunicorn 与 nginx 的不同角色。
一位同事告诉我,ENV 2 就是我所需要的,我应该能够用它提供静态文件,ALB 提供与 NGINX 类似的功能。它是否正确?
需要澄清的是,“ALB”代表应用程序负载均衡器,它与旧的弹性负载均衡器的区别在于流量可以基于 URI 进行路由。
但是,无论您指的是哪个负载均衡器,我相信您都需要混合使用 nginx,因为 AWS 负载均衡器不提供任何文件服务功能。如果您的静态文件具有一致的 URI 模式,您也许能够使用 ALB 来提供来自 S3 或 CloudFront 的静态文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)