运行 AWS EC2 上的 flask 服务器只有 gunicorn 但没有 nginx
Running flask server on AWS EC2 with only gunicorn but no nginx
我在 AWS EC2 实例上部署了一个简单的 flask
应用程序。 flask
应用程序接受传入的 HTTP 请求,然后对请求进行一些(可能繁重且冗长的)计算,然后 return 结果。
基于我有限的理解,建议始终使用 nginx
+ gunicorn
堆栈以获得真正的 flask
应用程序。由于我试图让事情保持简单,所以我只使用了 gunicorn
和 8 个工人。该应用程序工作正常,因为我可以查询 EC2 实例,并得到预期的结果。该应用程序没有(或很少)静态内容。
至于流量,我预计网站不会同时收到很多请求(可能同时发出约 10 个请求),因为它供内部使用。我的问题是,考虑到我的用例,这(不会 nginx
)会在不久的将来伤害我吗?
您是否使用 Elastic Beanstalk 或 EC2 进行部署?
如果是后者,我建议此应用使用 Elastic Beanstalk,因为它会为您处理大量配置。
来自 AWS:
Elastic Beanstalk 使用 nginx 作为反向代理将您的应用程序映射到端口 80 上的负载均衡器。如果您想提供自己的 nginx 配置,您可以通过包含 .[ =24=.conf 源包中的文件。如果此文件存在,Elastic Beanstalk 将使用它代替默认的 nginx 配置文件。
否则,在这个阶段没有 NGINX 不会影响您的应用程序性能,但是由于它不是最好的 practise/future 证明,所以包含它也没有坏处。那里有很多内容,描述了如何做到这一点。
干杯!
我在 AWS EC2 实例上部署了一个简单的 flask
应用程序。 flask
应用程序接受传入的 HTTP 请求,然后对请求进行一些(可能繁重且冗长的)计算,然后 return 结果。
基于我有限的理解,建议始终使用 nginx
+ gunicorn
堆栈以获得真正的 flask
应用程序。由于我试图让事情保持简单,所以我只使用了 gunicorn
和 8 个工人。该应用程序工作正常,因为我可以查询 EC2 实例,并得到预期的结果。该应用程序没有(或很少)静态内容。
至于流量,我预计网站不会同时收到很多请求(可能同时发出约 10 个请求),因为它供内部使用。我的问题是,考虑到我的用例,这(不会 nginx
)会在不久的将来伤害我吗?
您是否使用 Elastic Beanstalk 或 EC2 进行部署?
如果是后者,我建议此应用使用 Elastic Beanstalk,因为它会为您处理大量配置。
来自 AWS: Elastic Beanstalk 使用 nginx 作为反向代理将您的应用程序映射到端口 80 上的负载均衡器。如果您想提供自己的 nginx 配置,您可以通过包含 .[ =24=.conf 源包中的文件。如果此文件存在,Elastic Beanstalk 将使用它代替默认的 nginx 配置文件。
否则,在这个阶段没有 NGINX 不会影响您的应用程序性能,但是由于它不是最好的 practise/future 证明,所以包含它也没有坏处。那里有很多内容,描述了如何做到这一点。
干杯!