我在使用nginx和FastCGI时遇到了一些问题。我在Windows7上工作,我已经成功编译/安装/设置了以下项目:
- nginx服务器
- FastCGI库
- spawn-fcgi-win32.exe
我写了一个简单的FastCGI应用程序,它只向Web服务器发送一条消息。这里是代码的简化版本:
while(FCGI_Accept()) {
hello();
}
我通过spawn-fcgi-win32.exe
生成了几个进程,一切正常:从web浏览器访问我的应用程序返回"你好"消息。
然而,为了检查并发性,我更改了我的应用程序如下:
while(FCGI_Accept()) {
sleep10(); //sleep 10 seconds
hello();
}
然后,我在浏览器中打开了两个单独的选项卡,并访问了我的应用程序。我预计两个选项卡都会在10秒后返回"你好"消息,但只有第一个选项卡在超时后返回;第二个标签在20秒后完成。这是nginx:的访问日志
127.0.0.1-claudi[2015年2月25日:17:45:16+0100]"GET/foo.php HTTP/1.1"200 3664"-"Mozilla/5.0(Windows NT 6.1;WOW64;rv:35.0)Gecko/20100101 Firefox/35.0"
127.0.0.1-claudi[2015年2月25日:17:45:26+0100]"GET/foo.php HTTP/1.1"200 3664"-"Mozilla/5.0(Windows NT 6.1;WOW64;rv:35.0)Gecko/20100101 Firefox/35.0"
注意,尽管我在大致相同的时间发送了请求,但nginx在10秒后"看到"了第二个请求。我的nginx配置文件设置了4个工作线程,每个工作线程有1024个连接。为什么nginx不产生两个并发工作程序,每个请求一个?
顺便说一句,我已经通过转储进程id和hello消息来检查两个FastCGI进程是否正常工作。
感谢
从这里使用正确的版本http://nginx-win.ecsds.eu/并使用安装程序获取php/python/等。。工作