【问题标题】:Streaming server issue with gunicorn and flask and Nginxgunicorn、flask 和 Nginx 的流式服务器问题
【发布时间】:2016-03-02 03:00:27
【问题描述】:

我将 gunicorn 和 flask 用于 Web 服务。我正在努力思考如何运行流媒体路由(不确定这是否是正确的术语)。

我的路线如下所示:

@app.route('/delay')
def delay():
    from time import sleep
    def delay_inner():
        for i in range(10):
            sleep(5)
            yield json.dumps({'delay': i})
    return Response(delay_inner(), mimetype="text/event-stream")

我希望每次 delay_inner 产生输出时服务器都会产生输出。但是,我得到的是一次所有的 json 响应,并且只有在 delay_inner 完成执行时。

我在这里错过了什么?

--编辑-- 我已经解决了 Flask 和 Gunicorn 的问题,我可以通过使用 Flask 服务器并转到 Gunicorn 端口按预期运行它。它按预期流式传输数据。但是,我应该在原帖中提到这一点,我也在 nginx 后面运行。这没有正确设置为流式传输。有人可以帮忙吗?

【问题讨论】:

标签: python nginx flask streaming gunicorn


【解决方案1】:

你需要关闭 nginx 代理缓冲。

location /delay {
         proxy_pass http://127.0.0.1:8080;
         proxy_buffering off;
}

并重新加载配置

nginx -s reload

【讨论】:

  • 谢谢!它解决了我的问题!
  • 谢谢!这真的很有帮助!
猜你喜欢
  • 2019-12-27
  • 2020-08-25
  • 2017-02-14
  • 1970-01-01
  • 2016-11-20
  • 2018-12-28
  • 2017-07-17
  • 2014-09-14
  • 1970-01-01
相关资源
最近更新 更多