AWS ALB + Django + Gunicorn +- Nginx?
AWS ALB + Django + Gunicorn +- Nginx?
我正在 AWS 中构建一个环境来托管一个 Django 应用程序。我想弄清楚我是否应该使用 nginx 作为构建的一部分。
出于 example/comparison 目的,我在下面列出了几个不同的环境。所有环境都使用 AWS ALB。
环境 1
ALB -> dockercontainer 运行 django
- +使用内置的 django 网络服务器,静态文件工作
- -内置的 django 网络服务器不适合生产使用
环境 2
ALB -> dockercontainer 运行 django/gunicorn
- +使用 gunicorn(不是 django 网络服务器)
- -静态文件不工作
环境 3
ALB -> dockercontainer 运行 django/gunicorn + nginx
注意:我还没有测试过这个配置。
- +使用 gunicorn(不是 django 网络服务器)
- +使用 nginx
- 静态文件应该可以工作
我阅读了 this Whosebug post 并了解 gunicorn 与 nginx 的不同作用。
一位同事告诉我,我只需要 ENV 2,我应该能够用它提供静态文件,ALB 提供与 NGINX 类似的功能。这个对吗?
澄清一下 - "ALB" 代表 Application Load Balancer,它与旧版 Elastic Load Balancer 的区别在于可以根据 URI 路由流量。
但是,无论您指的是哪个负载均衡器,我相信您都需要混合使用 nginx,因为 AWS 负载均衡器不提供任何文件服务功能。如果您的静态文件具有一致的 URI 模式,您或许可以使用 ALB 从 S3 或 CloudFront 提供静态文件。
我正在 AWS 中构建一个环境来托管一个 Django 应用程序。我想弄清楚我是否应该使用 nginx 作为构建的一部分。
出于 example/comparison 目的,我在下面列出了几个不同的环境。所有环境都使用 AWS ALB。
环境 1
ALB -> dockercontainer 运行 django
- +使用内置的 django 网络服务器,静态文件工作
- -内置的 django 网络服务器不适合生产使用
环境 2
ALB -> dockercontainer 运行 django/gunicorn
- +使用 gunicorn(不是 django 网络服务器)
- -静态文件不工作
环境 3
ALB -> dockercontainer 运行 django/gunicorn + nginx
注意:我还没有测试过这个配置。
- +使用 gunicorn(不是 django 网络服务器)
- +使用 nginx
- 静态文件应该可以工作
我阅读了 this Whosebug post 并了解 gunicorn 与 nginx 的不同作用。
一位同事告诉我,我只需要 ENV 2,我应该能够用它提供静态文件,ALB 提供与 NGINX 类似的功能。这个对吗?
澄清一下 - "ALB" 代表 Application Load Balancer,它与旧版 Elastic Load Balancer 的区别在于可以根据 URI 路由流量。
但是,无论您指的是哪个负载均衡器,我相信您都需要混合使用 nginx,因为 AWS 负载均衡器不提供任何文件服务功能。如果您的静态文件具有一致的 URI 模式,您或许可以使用 ALB 从 S3 或 CloudFront 提供静态文件。