Господа!Нужна помощь: надо настроить связку nginx+FastCGI/C.
Имеется: виртуальная машина FreeBSD 8.0 (64 bit). На ней установлен (все п/о установлено из портов) и настроен nginx-0.8.54. Пытаюсь прикрутить к нему свой бинарный модуль FastCGI. Для этого:
1. Поставил из портов fcgi-devkit-2.4.0.
2. На сайте http://www.fastcgi.com/devkit/doc/fastcgi-prog-guide/ch2c.ht... взял код (Example-1).
3. Откомпилил и собрал указанный код, бинарник по виндовой привычке назвал tiny1.exe
4. Поставил из портов spawn-fcgi-1.6.3.
5. Запустил tiny1.exe вот таким образом:
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9110 -P ./9110.pid tiny1.exe
6. Внес в nginx.conf такой текст в раздел нужного виртуального сервера:
location ~ tiny1\.exe$ {
fastcgi_pass 127.0.0.1:9110;
}
7. Рестартовал nginxОднако получился облом - при обращении к урлу http://myserver/tiny1.exe получаю ошибку 502 bad gateway и процесс мой падает в дамп.
Пытаюсь понять, где у меня ошибка. Вроде делаю все по мануалам. Рядом стоит и прекрасно работает php/fpm, установленный по мануалам. А тут вроде бы все элементарно, но не выходит каменный цветок.
Буду весьма благодарен за дельные советы.
> Нужна помощь: надо настроить связку nginx+FastCGI/C.Разобрался сам. Вот этот код не работал:
#include "fcgi_stdio.h" /* fcgi library; put it first*/
#include <stdlib.h>
int count;
void initialize(void)
{
count=0;
}void main(void)
{
/* Initialization. */
initialize();/* Response loop. */
while (FCGI_Accept() >= 0) {
printf("Content-type: text/html\r\n"
"\r\n"
"<title>FastCGI Hello! (C, fcgi_stdio library)</title>"
"<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>"
"Request number %d running on host <i>%s</i>\n",
++count, getenv("SERVER_HOSTNAME"));
}
}В нем явная дыра, которая бросается в глаза - падать может если только нет переменной окружения SERVER_HOSTNAME. В общем, пример заточен под другой сервер. Если заменить SERVER_HOSTNAME на HTTP_HOST, пример работает.
Всем, кто помогал мне телепатически - спасибо.
:)