AWS ALB + Django + Gunicorn +- Nginx?

AWS ALB + Django + Gunicorn +- Nginx?

我正在 AWS 中构建一个环境来托管一个 Django 应用程序。我想弄清楚我是否应该使用 nginx 作为构建的一部分。

出于 example/comparison 目的,我在下面列出了几个不同的环境。所有环境都使用 AWS ALB。

环境 1

ALB -> dockercontainer 运行 django

环境 2

ALB -> dockercontainer 运行 django/gunicorn

环境 3

ALB -> dockercontainer 运行 django/gunicorn + nginx

注意:我还没有测试过这个配置。

我阅读了 this Whosebug post 并了解 gunicorn 与 nginx 的不同作用。

一位同事告诉我,我只需要 ENV 2,我应该能够用它提供静态文件,ALB 提供与 NGINX 类似的功能。这个对吗?

澄清一下 - "ALB" 代表 Application Load Balancer,它与旧版 Elastic Load Balancer 的区别在于可以根据 URI 路由流量。

但是,无论您指的是哪个负载均衡器,我相信您都需要混合使用 nginx,因为 AWS 负载均衡器不提供任何文件服务功能。如果您的静态文件具有一致的 URI 模式,您或许可以使用 ALB 从 S3 或 CloudFront 提供静态文件。