一个奇怪现象带来的nginx对于fastcgi的优化

上一篇 / 下一篇  2008-01-23 10:45:51

在作工作统计表的时候,发现一个特别蹊跷的问题:页面在我的mac/leopard下一切都很好,包括Safari/Firefox,但是后来大家反应,在Windows上,IE下只能看到页面的一半,后半部分完全没有,而且更为怪异的是,Firefox也是这样.最最令人不解的是,只有在笔记本上的windows会出现这种情况,而使用台式机的用户,IE6和Firefox都能正常.开始以为是程序的问题,仔细检查,反复调试,都没有.我在自己的mac的windows虚拟机和T41上也重现了这个问题.一直非常郁闷,我的程序不会有如此智能阿?竟然 能分辨出是台式机还是笔记本?呵呵.终于,后来看nginx的文档时发现,nginx有个fastcgi_buffers的参数,默认,是4k或者8k.也就是说,nginx每次会从后端的fastcgi接受这么多的数据放在缓冲中,依次输出.这点nginx和lighttpd不同,lighttpd会一次性接收后全部输出.而我原来的keep_alive设置为0,这样,windows上会认为此次的tcp链接已经中断,会复位,当然这是我的猜测.我于是作了优化,将8k设置128k,这样可以比较好的优化fastcgi的效率,保证一次性就能接受全部的输出.终于,后来看nginx的文档时发现,nginx有个fastcgi_buffers的参数,默认,是4k或者8k.也就是说,nginx每次会从后端的fastcgi接受这么多的数据放在缓冲中,依次输出.这点nginx和lighttpd不同,lighttpd会一次性接收后全部输出.而我原来的keep_alive设置为0,这样,windows上会认为此次的tcp链接已经中断,会复位,当然这是我的猜测.我于是作了优化,将8k设置128k,这样可以比较好的优化fastcgi的效率,保证一次性就能接受全部的输出.于是乎,一切就正常了.

TAG:

引用 删除 Guest   /   2008-04-03 13:50:17
-1
引用 删除 Guest   /   2008-03-27 04:13:21
-1
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-09-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 4622
  • 日志数: 12
  • 建立时间: 2008-02-25
  • 更新时间: 2008-04-14

RSS订阅

Open Toolbar