Я сейчас занимаюсь разработкой высоконагруженного проекта, мне нужно использовать комбинацию C / FastCGI / nginx.
Проблема в том, что мне нужно, чтобы мое приложение FastCGI работало в потоках / процессах.
Я знаю два способа сделать это:
1) Скомпилируйте программу и затем используйте spawn-fcgi для разветвления процессов. (Я не могу использовать это)
2) Выполнить FCGX_Init()
, затем предварительно обработать до 10 процессов ДО while (FCGX_Accept_r(&request) >= 0)
3) Запустить pthreads ПОСЛЕ while (FCGX_Accept_r(&request) >= 0)
Итак, мой вопрос: что это самый быстрый способ запустить приложение fastcgi. Могу ли я предварительно форкнуть приложение fastcgi после этого:
int sock = FCGX_OpenSocket(":9000", 10);
FCGX_InitRequest(&request, sock, 0);
Могут ли 10 процессов прослушивать один сокет? Нужно ли использовать потоки, если у меня запущено N процессов? Этого будет достаточно?