nginx + php-cgi - не держат нагрузку

Leonid Popov tuupic at tuupic.org.ru
Thu Oct 2 03:05:28 MSD 2008


В сообщении от Thursday 02 October 2008 06:23:18 Arceny написал(а):
> Здравствуйте.
>
> Имеется nginx/0.5.35 и за ним apache бекендом на достаточно
> высоконагруженом сервере. Захотели перейти на fcgi.
>
> Система Debian 4.0 + backports,  поставили php-fcgi из бекпортов,
> работает со следующим /etc/default/php-fastcgi:
>
> EXEC_AS_USER=www-data
> FCGI_HOST=localhost
> FCGI_PORT=9000
> PHP_FCGI_CHILDREN=6
> PHP_FCGI_MAX_REQUESTS=1000
>
> при работе соответственно висят 6 процессов типа
> 31572 ?        Ss     0:00 /usr/bin/php-cgi -q -b localhost:9000
>
> Конфигурация nginx:
>
> user www-data;
> worker_processes  8;
> error_log  /dev/null;
> pid        /var/run/nginx.pid;
> events {
>     worker_connections  4096;
> }
> http {
>     include       /etc/nginx/mime.types;
>     default_type  application/octet-stream;
>     sendfile        on;
>     keepalive_timeout  65;
>     tcp_nodelay        on;
>     client_max_body_size 10m;
>     gzip  on;
>     gzip_comp_level 3;
>     gzip_proxied any;
>     include /etc/nginx/sites-enabled/default;
> }
>
> Часть конфига, отвечающая за мой виртуалхост с пробросом на fcgi:
>
> server {
>  listen  10.196.0.18:80;
>  server_name torrent.b-metro.net www.torrent.b-metro.net;
>  access_log off;
>  index index.html index.php;
>
>  location ~ (\.php(/.+)?$|^/$) {
>    fastcgi_pass 127.0.0.1:9000;
>    fastcgi_index   index.php;
>    include /etc/nginx/fastcgi_params;
>  }
> location ~* \.(jpg|jpeg|png|gif|htm|html|js|txt|css|mp3|rar|bmp|zip|bz2|
> gz)$ { root /home/torrent/www/;
>   autoindex on;
>   }
> }
>
> ОПИСАНИЕ ПРОБЛЕМЫ:
> получаю ошибку 504 gateway timeout, при этом глядя в top вижу, что
> нагрузки на php-cgi нету, на mysql нету, ни на что нету. При этом
> сайты, для которых бекендом остался апач прекрасно отдаются, то есть
> проблема в php-cgi явно. Не подскажете куда копать?
>
> P.S. Если нужно ещё /etc/nginx/fastcgi_params (дефалтный)
>
> fastcgi_param  QUERY_STRING       $query_string;
> fastcgi_param  REQUEST_METHOD     $request_method;
> fastcgi_param  CONTENT_TYPE       $content_type;
> fastcgi_param  CONTENT_LENGTH     $content_length;
>
> fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
> fastcgi_param  REQUEST_URI        $request_uri;
> fastcgi_param  DOCUMENT_URI       $document_uri;
> fastcgi_param  DOCUMENT_ROOT      $document_root;
> fastcgi_param  SERVER_PROTOCOL    $server_protocol;
>
> 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;
>
> # PHP only, required if PHP was built with --enable-force-cgi-redirect
> fastcgi_param  REDIRECT_STATUS    200;

Ошибка 504 всё время или периодически?  Вообще чистый php не умеет нормально 
работать в режиме fast-cgi. Для этого используют, либо патч php-fpm, либо 
spawn-fcgi обычно


More information about the nginx-ru mailing list