使用nginx和gunicorn的目的是什么?

时间:2017-03-27 11:05:59

标签: python nginx flask gunicorn

我想使用gunicorn来进行使用flask / python的restapi应用程序。在这里添加nginx到gunicorn的目的是什么? gunicorn网站建议使用带有nginx的gunicorn。

5 个答案:

答案 0 :(得分:6)

Nginx是Gunicorn的反向代理。 Gunicorn为您的烧瓶应用程序服务,Nging坐在它前面,决定请求应该去哪里。例如,如果传入的请求是一个http请求,Nginx会将其重定向到gunicorn,如果它是一个静态文件,它会自行提供。阅读更多关于如何使用Nginx ang Gunicorn以及如何从这里开始部署它们的信息:  http://rahmonov.me/posts/run-a-django-app-with-gunicorn-in-ubuntu-16-04/

答案 1 :(得分:4)

这是一个令人满意的引用答案,当我不想找到令人满意的答案时,我偶然发现了。基本上我了解到Gunicorn不是一个成熟的网络服务器,但nginx是。

  

......等等,为什么我们需要两台服务器?把Gunicorn想象成   将在nginx后面运行的应用程序Web服务器 - 前端   面对Web服务器。 Gunicorn与WSGI兼容。它可以与其他人交谈   支持WSGI的应用程序,如Flask或Django。

来源:https://realpython.com/blog/python/kickstarting-flask-on-ubuntu-setup-and-deployment/

答案 2 :(得分:1)

Gunicorn是一个用于运行python应用程序实例的应用程序服务器。

NGINX是一个反向代理。它接受传入的连接并决定它们下一步应该去哪里。它在Gunicorn前面。

答案 3 :(得分:1)

  

你知道为什么Django吉祥物是小马吗?故事是Django   你想要的东西很多:一个ORM,各种各样的中间件,   管理网站..."你还想要什么,一匹小马?"好吧,Gunicorn   代表"绿色独角兽" - obeythetestinggoat.com

  • Nginx是服务器的正面。
  • Gunicorn经营多个django项目(每个项目都是一个wsgi 由Gunicorn提供支持的应用程序(在Ubuntu中)。
  

每个请求都来自nginx并询问哪个gunicorn应用程序   它应该去它重定向它。

注意 - Gunicorn无法像本地django服务器那样自动提供静态文件。所以你再次需要nginx。

答案 4 :(得分:0)

在生产中,nginx作为反向代理。这意味着用户将从浏览器中获取nginx,nginx会将调用转发给您的应用程序。 希望这会有所帮助。