ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Проблема с perl (внешним на сокете).


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Проблема с perl (внешним на сокете).
  • From: Тен Костя <Kostya@xxxxxxxxx>
  • Date: Sat, 07 Jun 2008 10:43:58 +0400
  • In-reply-to: 1630000000304830119
  • References: 1630000000304830119

use FCGI;
Что не поможет?


> В настоящий момент нет правильного перла для nginx такова как php и 
> приходится использоватьhttp://www.nginx.eu/nginx-fcgi/nginx-fcgi.txtвзятого 
> сhttp://www.nginx.eu/nginx-fcgi.htmlон хорошо работает но для серьезной 
> нагрузки негодится к сожелению.Мы используем его для отрисовки самописной 
> статы по серву, которая рисуетсяhttp://www.fi.muni.cz/~kas/mrtg-rrd/Возникла 
> проблема толи nginx-fcgi толи самого nginx для вызова скрипта используется 
> url видаhttp://192.168.0.1/stat/rrd/192/net/index.cgi/192.html 
> гдеhttp://192.168.0.1/stat/rrd/192/net/index.cgi имя скрипта,а /192.html это 
> параметры но nginx ищетhttp://192.168.0.1/stat/rrd/192/net/index.cgi/192.html 
> ненаходит его и возвращает 404.Пока сделал 
> так_________________________________________________________________________  
>               location ~ /index.cgi/ {                        fastcgi_pass    
> unix:/var/run/nginx-fcgi.sock;##                      fastcgi_index    
> index.cgi;                        include  
> /usr/local/nginx/conf/fastcgi.conf;                        fastcgi_param   
> SCRIPT_FILENAME /home/htdocs$fastcgi_script_name;                
> }_________________________________________________________________________где 
> fastcgi.conf:fastcgi_connect_timeout 30;fastcgi_send_timeout 
> 180;fastcgi_read_timeout 180;fastcgi_buffer_size 32k;fastcgi_buffers 4 
> 32k;fastcgi_busy_buffers_size 32k;fastcgi_temp_file_write_size 
> 32k;fastcgi_intercept_errors on;fastcgi_param   QUERY_STRING    
> $query_string;fastcgi_param   CONTENT_TYPE    $content_type;fastcgi_param   
> CONTENT_LENGTH  $content_length;fastcgi_param   DOCUMENT_URI    
> $document_uri;fastcgi_param   REQUEST_METHOD  $request_method;fastcgi_param   
> GATEWAY_INTERFACE       CGI/1.1;fastcgi_param   SERVER_SOFTWARE 
> nginx/$nginx_version;fastcgi_param   REMOTE_ADDR     
> $remote_addr;fastcgi_param   REMOTE_PORT     $remote_port;fastcgi_param   
> SERVER_ADDR     $server_addr;fastcgi_param   SERVER_PORT     
> $server_port;fastcgi_param   SERVER_NAME     $server_name;fastcgi_param   
> SCRIPT_NAME     $fastcgi_script_name;fastcgi_param   SERVER_PROTOCOL 
> $server_protocol;fastcgi_param   DOCUMENT_ROOT   $document_root;fastcgi_param 
>   REQUEST_URI     $request_uri;# PHP only, required if PHP was built with 
> --enable-force-cgi-redirect_________________________________________________________________________и
>  внес фиксы в nginx-fcgi   if ($req_params{SCRIPT_FILENAME}=~ 
> /^(.*index.cgi).*/) { $req_params{SCRIPT_FILENAME}=$1;}и  
> $ENV{PATH_INFO}="http://$req_params{SERVER_NAME}$req_params{REQUEST_URI}";__________________________________________________________________________Без
>  этой переменной окружения модуль CGI неработает. Кроме того другие нужные 
> переменные могут отсутствовать.Вот перечень того что 
> передается:CONTENT_LENGTH=""CONTENT_TYPE=""DOCUMENT_ROOT="/home/htdocs"DOCUMENT_URI="/cgi-bin/index2.cgi"FCGI_ROLE="RESPONDER"GATEWAY_INTERFACE="CGI/1.1"HTTP_ACCEPT="text/html,
>  application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, 
> image/gif, image/x-xbitmap, */*;q=0.1"HTTP_ACCEPT_CHARSET="iso-8859-1, utf-8, 
> utf-16, *;q=0.1"HTTP_ACCEPT_ENCODING="deflate, gzip, x-gzip, identity, 
> *;q=0"HTTP_ACCEPT_LANGUAGE="ru-RU,ru;q=0.9,en;q=0.8"HTTP_CACHE_CONTROL="no-cache"HTTP_CONNECTION="Keep-Alive,
>  TE"HTTP_HOST="192.168.0.1"HTTP_TE="deflate, gzip, chunked, identity, 
> trailers"HTTP_USER_AGENT="Opera/9.25 (Windows NT 5.2; U; 
> ru)"PATH_INFO="http://max/cgi-bin/index2.cgi"QUERY_STRING=""REDIRECT_STATUS="200"REMOTE_ADDR="192.168.0.1"REMOTE_PORT="4714"REQUEST_METHOD="GET"REQUEST_URI="/cgi-bin/index2.cgi"SCRIPT_FILENAME="/home/htdocs/cgi-bin/index2.cgi"SCRIPT_NAME="/cgi-bin/index2.cgi"SERVER_ADDR="192.168.106.128"SERVER_NAME="max"SERVER_PORT="80"SERVER_PROTOCOL="HTTP/1.1"SERVER_SOFTWARE="nginx/0.6.31"_______________________________________________________________________________________________В
>  апаче такой проблемы не возникало и испотльзовать слеш вместо "?"для 
> передачи параметров скрипту невозбранялось.Собственно вопрос как сделать это 
> красивее и правильнее.Еще у php и perl есть проблемка, если перейти по 
> сыслкеhttp://192.168.0.1/stat/rrd/192/net без слеша на концето происходит 
> редирект на первую запись в директиве server_name тоесть поведение 
> аналогичное включенной апачевскойUseCanonicalName, а если ссылка со слешем на 
> конце то запускается скрипт http://192.168.0.1/stat/rrd/192/net/   index.php 
> или index.pl соответственно.От этого помогло server_name_in_redirect off;Так 
> же хочется узнать с какими опциями оптимизации лучше собирать npinx и phpпока 
> испозьзую:CC="gcc" \OPTIM="-O3 -pipe  -fno-exceptions -funroll-loops 
> -ffast-math  -funroll-loops  -march=athlon64 -msse3" \CFLAGS="-O2 -pipe" 
> \INCLUDES="-I/usr/local/include"Система FreeBSD 7.0-RELEASE как х86 так и 
> amd64 ...Внимание - использовать перл как описано выше настоятельно 
> нерекомендуется, по причине запуска от пользователя root.И быстродействие у 
> него слобовато, при запуске теста начинает сыпать в лог2008/06/04 20:20:07 
> [crit] 859#0: *129 connect() to unix:/var/run/nginx-fcgi.sock failed (2: No 
> such file or directory) while connectingto upstream, client: 192.168.106.128, 
> server: max.mp.farlep.net, request: "GET /stats/index.pl HTTP/1.1", upstream: 
> "fastcgi://unix:/var/run/nginx-fcgi.sock:", host: "192.168.106.128"С 
> уважением Max.maxhl@xxxxxxxxxxxxxx 71006063

-- 
Тен Костя


 




Copyright © Lexa Software, 1996-2009.