我正在写一个应用程序,使用长轮询将消息推送到客户端。 当它完成发送消息时,它不会结束请求:它只是刷新。 它工作正常,即使我通过nginx代理并通过互联网访问它。
upstream app { server localhost:1000; } server { listen 80; location / { proxy_pass http://app; client_max_body_size 20m; proxy_redirect off; send_timeout 86400; proxy_read_timeout 86400; proxy_buffering off; gzip off; } }
也就是说,直到我在nginx上启用SSL。 那么它不会再冲洗了。 我可以通过将ssl_buffer_size设置为1来解决这个问题,但是这会对性能产生负面影响。
server { listen 443; ssl_certificate cert.pem; ssl_certificate_key key.pem; ssl_buffer_size 1; ... }
有了其他的缓冲区大小,除非请求结束,否则NginX不会刷新最后一个不完整的缓冲区。 有什么办法强制它? 我想要这个愚蠢吗?
我已经注意到,只要数据量低于61450字节,刷新就可以工作。 如果你尝试冲洗更多,它开始缓冲。