【问题标题】:What benefit is added by using Gunicorn + Nginx + Flask? [duplicate]使用 Gunicorn + Nginx + Flask 有什么好处? [复制]
【发布时间】:2014-01-13 00:54:56
【问题描述】:

我看到人们正在运行 Nginx + Gunicorn + Flask 之类的设置。

有人能解释一下在 Flask 面前放 Gunicorn 有什么好处吗?为什么不单独运行 Flask?运行 Gunicorn + Flask 不会消耗更多资源吗? Gunicorn 是否能够在 Flask 实例无法响应时重新启动它?

在 gunicorn 之上安装 nginx 的目的是什么?独角兽还不够吗?再次,花费更多的资源?

【问题讨论】:

标签: python nginx flask gunicorn


【解决方案1】:

我想你可能会感到困惑,Flask 不是一个网络服务器,它是一个框架并且需要某种网络服务器,例如 Gunicorn、Nginx 或 Apache,来接受它的 HTTP 请求。然后将进行操作。人们一起运行 Nginx 和 Gunicorn 的原因是,除了作为 Web 服务器之外,Nginx 还可以代理与 Gunicorn 的连接,这带来了一定的性能优势,这里有一个很好的答案,详细说明了这些优势: https://serverfault.com/questions/220046/why-is-setting-nginx-as-a-reverse-proxy-a-good-idea

编辑: 添加了链接,其中包含有关将 Nginx 作为代理运行的性能优势的信息。

【讨论】:

  • 如果 Flask 本身不是 Web 服务器,它是否附带一些基本的 Web 服务器,以便我们可以启动它并通过 HTTP(默认端口 5000)访问它,docs?虽然一开始他们提到“flask 对象实现了一个 WSGI 应用程序”,但是 WSGI 应用程序可以直接和可选地通过来自 Web 服务器的代理传递来与 HTTP 通信吗? This 谈论 WSGI 服务器...
  • 啊哈,Deployment Options 他们提到“您可以在开发过程中使用内置服务器,但您应该为生产应用程序使用完整的部署选项”。
  • 是的,flask 默认使用 Werkzeug wsgi 服务器,虽然效率不如 Gunicorn 服务器,但它很容易成为一个很好的测试和登台服务器。
  • 这个答案仍然在搜索中出现,所以这里是来自 NikoNyrh 评论的更新 Deployment Options 链接。
猜你喜欢
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 2015-11-10
  • 1970-01-01
  • 2011-07-22
  • 2013-06-01
  • 2019-07-16
相关资源
最近更新 更多