在作工作统计表的时候,发现一个特别蹊跷的问题:页面在我的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的效率,保证一次性就能接受全部的输出.于是乎,一切就正常了.