使用NGINX+PHP实现comet服务的nginx配置 |
发布: 2014-03-26 17:08 |
正常情况下,nginx为了最大化优化其负载能力, 大量使用缓存技术,比如缓存http响应内容直到缓冲区满再输出,可以最大化提高网络吞吐量。 在nginx连接fastcgi时,也使用相同的缓存技术。 但是,对于comet来说,缓存只能让comet的传输信息延迟更大,甚至可能收不信息。 在现在的nginx版本中,提供了一些参数,可以优化这种应用场景。 一般comet的实现,需要尽量关闭不需要的所有缓存,在无法关闭的时候减小缓冲区大小。 还需要尽量能保持连接跟踪,以便能在有信息时及时响应。 这里说明的是使用php fastcgi实现简单的comet服务端的情况。 具体在nginx中,配置需要注意这些参数, fastcgi_keep_conn on; # < solution proxy_buffering off; gzip off; fastcgi_buffer_size 100; fastcgi_buffers 2 100; fastcgi_busy_buffers_size 100; 其中这里列出的第一个参数最重要,让不可能变成了可能。 另外几个参数通过强制设置缓冲区大小,优化响应延迟。 在php中,多使用flush,把所有的信息尽可能及时地刷新到comet客户端。 |
原文: http://qtchina.tk/?q=node/797 |
Powered by zexport
|