parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

как подружить parser и nginx

Sergey M. 17.04.2011 13:46 / 18.04.2011 22:17

по мотивам вот этого поста попробовал запустить парсер под nginx на ubuntu, оказалось ничего особо сложного - нужен fastcgi враппер fcgiwrap, его можно достать либо через apt-get либо выкачать deb-пакет с сайта производителя. Для того чтобы все нормально заработало перед этим желательно установить libfcgi-dev и spawn-fcgi.

Конфигурация nginx примерно следующая:
server {
        listen   80;
        server_name  parser.test;

        location / {
                root   /var/www/test/html;
                fastcgi_index  index.html;
 
                include fastcgi_params;
 
                fastcgi_pass   unix:/var/run/fcgiwrap.socket;
				
                fastcgi_param  SCRIPT_NAME  /var/www/test/cgi/parser3.cgi;
                fastcgi_param  SCRIPT_FILENAME  /var/www/test/cgi/parser3.cgi;
                fastcgi_param  PATH_INFO    $fastcgi_script_name;
                fastcgi_param  PATH_TRANSLATED /var/www/test/html$fastcgi_script_name;
        }
}
чтобы получилась аналогия апачевского addHandler, в SCRIPT_NAME и SCRIPT_FILENAME мы передаем путь до исполняемого файла парсера, а в PATH_INFO и PATH_TRANSLATED путь до нашего html-файла с кодом. CGI_PARSER_CONFIG не пригодилось, конфигурационный файл и без нее вроде нормально цепляется, остальные переменные есть в стандартном fastcgi_params.

наименование сокета можно выпотрошить из /etc/init.d/fcgiwrap, оно там идет как FCGI_SOCKET, заодно можно исправить одно досадное недоразумение, находим в файле строчку
if running_pid '$pid' '$DAEMON'; then 
и убираем кавычки
if running_pid $pid $DAEMON; then 
иначе при остановке враппер остается болтаться в памяти, и если постоянно перезапускать их там много набивается