【发布时间】:2011-09-21 14:11:03
【问题描述】:
我目前正在开发highload项目,我需要使用C/FastCGI/nginx组合。
问题是,我需要我的 FastCGI 应用程序在线程/进程中运行。
我知道有两种方法可以做到这一点:
1) 编译程序,然后使用 spawn-fcgi 来分叉进程。 (我不能用这个)
2) 运行 FCGX_Init(),而不是在 while (FCGX_Accept_r(&request) >= 0) 之前预分叉到 10 个进程
3) 在while (FCGX_Accept_r(&request) >= 0) 之后运行 pthreads
所以,我的问题是:whis 是运行 fastcgi 应用程序的最快方式。我可以在此之后预分叉 fastcgi 应用程序吗:
int sock = FCGX_OpenSocket(":9000", 10);
FCGX_InitRequest(&request, sock, 0);
10 个进程可以监听单个套接字吗? 如果我有 N 个进程正在运行,我是否必须使用线程?这样就够了吗?
【问题讨论】:
-
为什么不能使用
spawn-fcgi?这似乎是最好的选择,因为它会为您处理分叉的负载平衡。
标签: c pthreads fork fastcgi preforking