【问题标题】:Can Flask run on Gunicorn alone?Flask 可以单独在 Gunicorn 上运行吗?
【发布时间】:2015-09-17 09:03:05
【问题描述】:

我目前正在使用 Flask 和 Gunicorn 开发 HTTP Rest API 服务器。由于各种原因,无法在 Gunicorn 前面放置反向代理服务器。我没有任何静态媒体,所有 url 都由 Flask Framework 中的@app.route 模式提供。 Flask 可以单独在 Gunicorn 上运行吗?

【问题讨论】:

  • “出于各种原因”?也许你应该总结一下那些是什么。

标签: python flask reverse-proxy gunicorn


【解决方案1】:

可以,但这是一个非常糟糕的主意。如果没有为慢速客户端进行请求和响应缓冲的代理,Gunicorn 就无法正常工作。

如果没有缓冲,gunicorn worker 必须等到客户端发送完整个请求,然后必须等到客户端读取完整个响应。

如果有客户端在慢速网络上,这可能是一个严重的问题。

http://docs.gunicorn.org/en/latest/deploy.html?highlight=buffering

另见:http://blog.etianen.com/blog/2014/01/19/gunicorn-heroku-django/

由于 Gunicorn 的工作人员池相对较小(2x CPU 内核),因此只能处理少量并发请求。如果所有工作进程都被占用等待网络流量,则整个服务器将变得无响应。对于外界来说,您的 Web 应用程序将不复存在。

【讨论】:

  • 关于异步工作者类型你能说什么?还需要 Nginx?
  • 如果 gunicorn 位于负载均衡器 (AWS ALB) 后面,我们是否还需要 nginix 或者我可以仅使用 gunicorn 为烧瓶应用程序提供服务?
猜你喜欢
  • 2019-09-20
  • 2012-06-07
  • 2012-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 1970-01-01
相关资源
最近更新 更多