![nginx 后面的 HTTP 流媒体服务器?](https://linux22.com/image/547220/nginx%20%E5%90%8E%E9%9D%A2%E7%9A%84%20HTTP%20%E6%B5%81%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我正在尝试设置一个用 Tornado 和 Python 编写的 HTTP 流式传输服务器。基本上,它保持连接处于活动状态,并偶尔刷新信息。这有点像长轮询,只是服务器不会中断连接。
是否可以将类似的东西放在 nginx 后面?我正在从浏览器进行测试,在服务器断开连接之前我看不到任何输出,然后它会立即发送所有内容。
答案1
您需要关闭流式请求的 proxy_buffering。如果对后端的所有请求都是流式的,您只需使用代理缓冲。正如该条目所述,您还可以通过让后端包含 X-Accel-Buffering 标头来打开或关闭缓冲,从而根据每个请求管理缓冲。
答案2
只是猜测。tcp_nodelay 是否关闭?除非关闭,否则默认情况下处于打开状态。 Nginx 文档