-1

我在使用 nginx 和 FastCGI 时遇到了一些问题。我正在使用 Windows 7,并且已成功编译/安装/设置以下项目:

  • nginx服务器
  • FastCGI 库
  • spawn-fcgi-win32.exe

我编写了一个简单的 FastCGI 应用程序,它只是将消息发送回网络服务器。这是代码的简化版本:

while(FCGI_Accept()) {
    hello();
}

我产生了几个进程,spawn-fcgi-win32.exe一切正常:从网络浏览器访问我的应用程序返回了“hello”消息。

但是,为了检查并发性,我更改了我的应用程序如下:

while(FCGI_Accept()) {
    sleep10(); //sleep 10 seconds
    hello();
}

然后,我在浏览器中打开了两个单独的选项卡并访问了我的应用程序。我希望两个选项卡在 10 秒后返回“hello”消息,但只有第一个选项卡在超时后返回它;第二个标签在 20 秒后完成。这是nginx的访问日志:

127.0.0.1 - 克劳迪 [25/Feb/2015: 17:45:16 +0100] "GET /foo.php HTTP/1.1" 200 3664 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0)壁虎/20100101 火狐/35.0"

127.0.0.1 - 克劳迪 [25/Feb/2015: 17:45:26 +0100] "GET /foo.php HTTP/1.1" 200 3664 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0)壁虎/20100101 火狐/35.0"

请注意,尽管我大致在同一时间发送了请求,但 nginx 在 10 秒后“看到”了第二个请求。我的 nginx 配置文件设置了 4 个工作人员和每个工作人员 1024 个连接。为什么 nginx 不产生两个并发工作人员,每个请求一个?

顺便说一句,我已经通过将进程 ID 与 hello 消息一起转储来检查两个 FastCGI 进程是否正常工作。

谢谢

4

1 回答 1

1

从这里使用正确的版本http://nginx-win.ecsds.eu/并使用安装程序让 php/python/etc.. 工作。

于 2015-02-25T23:08:30.407 回答