The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"nginx + FastCGI/C"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (nginx)
Изначальное сообщение [ Отслеживать ]

"nginx + FastCGI/C"  +/
Сообщение от aantipov (ok) on 29-Июн-11, 18:01 
Господа!

Нужна помощь: надо настроить связку 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, установленный по мануалам. А тут вроде бы все элементарно, но не выходит каменный цветок.

Буду весьма благодарен за дельные советы.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "nginx + FastCGI/C"  +/
Сообщение от aantipov (ok) on 29-Июн-11, 19:08 
> Нужна помощь: надо настроить связку 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, пример работает.

Всем, кто помогал мне телепатически - спасибо.
:)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру