fcgi作为中间层,需要与后端server通信进行数据处理,这里需要注意一下几点:
1.要做好超时处理,fcgi跟cgi不同,往往只有几个固定数量的进程,与server类似,因为如果一个fcgi进程挂住会导致整个fcgi逻辑层的处理能力下降N分之一(N为fcgi进程数)。这里的超时包括connect超时、send超时和recv超时
2.server对每一次fcgi请求都要有回包,在fcgi recv到回包后退出处理,关闭与server的连接
3.recv时要注意一定要recv到整个逻辑包(注意这里是整个逻辑包,即包头中标识的包头+包体的长度,收完这样一块buff才可以认为是recv完成)
4.注意mtu,1500,如果是通过poll来实现recv超时,一定要注意3中提到的recv全部逻辑意义上的完整包,因为对于大于mtu的包来说,肯定会大于一次发送,所以recv也必须大于一次
最新的socket库可以在http://download.youkuaiyun.com/source/3530843页面下载,希望对有这方面需求的同学们有所帮助

本文详细探讨了FCGI作为中间层时的数据处理关键点,包括超时处理、回包机制、完整包接收及MTU注意事项,并提供了解决方案及最新socket库资源下载链接,帮助开发者优化FCGI性能。
1853

被折叠的 条评论
为什么被折叠?



