我目前正在开发高负载项目,我需要使用 C/FastCGI/nginx 组合。
问题是,我需要我的 FastCGI 应用程序在线程/进程中运行。
我知道有两种方法可以做到这一点:
1) 编译程序,然后使用spawn-fcgi来分叉进程。(我不能用这个)
2) 运行FCGX_Init()
,而不是 pre-fork 到 10 个进程 BEFOREwhile (FCGX_Accept_r(&request) >= 0)
3) 之后运行 pthreadswhile (FCGX_Accept_r(&request) >= 0)
所以,我的问题是:whis 是运行 fastcgi 应用程序的最快方法。我可以在此之后预分叉 fastcgi 应用程序吗:
int sock = FCGX_OpenSocket(":9000", 10);
FCGX_InitRequest(&request, sock, 0);
10 个进程可以监听单个套接字吗?如果我有N个进程正在运行,我是否必须使用线程?这样就够了吗?