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