我目前正在使用Flask和Gunicorn开发HTTP Rest API服务器。由于各种原因,不可能在Gunicorn面前放置反向代理服务器。我没有任何静态媒体,所有网址都由Flask Framework中的@app.route
模式提供。 Flask可以单独在Gunicorn上运行吗?
答案 0 :(得分:5)
可能,但这是一个非常糟糕的主意。没有为缓慢客户做请求和响应缓冲的代理,Gunicorn工作不正常。
没有缓冲,gunicorn工作人员必须等到客户端发送整个请求,然后必须等到客户端已经读取了整个响应。
如果在慢速网络上有客户端,这可能是一个严重的问题。
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应用程序将不复存在。