AWS ALB + Django + Gunicorn + - Nginx?

时间:2018-05-23 13:55:47

标签: django amazon-web-services nginx gunicorn aws-load-balancer

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

我列出了以下几个不同的环境,例如/比较目的。所有环境都使用AWS ALB。

ENV 1

ALB - > dockercontainer运行django

  • +使用内置的django webserver,静态文件工作
  • -inbuilt django webserver not for production use

ENV 2

ALB - > dockercontainer运行django / gunicorn

  • +使用gunicorn(不是django webserver)
  • -static files not working

ENV 3

ALB - > dockercontainer运行django / gunicorn + nginx

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

  • +使用gunicorn(不是django webserver)
  • +使用nginx
  • 静态文件应该正常工作

我阅读了this stackoverflow帖子,了解gunicorn与nginx的不同角色。

我的同事告诉我,ENV 2是我所需要的,我应该能够用它提供静态文件,ALB提供与NGINX类似的功能。它是否正确?

1 个答案:

答案 0 :(得分:0)

只是为了澄清 - " ALB"代表Application Load Balancer,它与旧的Elastic Load Balancer不同,可以根据URI路由流量。

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