为了开发调试方便,在windows下安装配置了nginx,通过fast-cgi方式处理PHP。今天偶然发现在nginx中访问PHP时是以队列方式处理的,不能够并发执行PHP。对于脚本:
<?php
sleep(10);
phpinfo();
?>
同时开两个浏览器窗口访问,会发现第二个窗口实际会需要等待20秒左右才能显示。
Google了一把,想找找看是不是有相关配置可以处理并发。找到相关文章:
PHP running as a FastCGI application (php-cgi) - how to issue concurrent requests?
http://forum.nginx.org/read.php?3,5044
结论:
PHP_FCGI_CHILDREN在Windows上无效,php-cgi.exe不能够处理并发请求,spawn-php是一种备用方案。Nginx for Windows with PHP fast-cgi can not process PHP request concurrently.