nginx + php-cgi - не держат нагрузку
Андрей
deepmindster at gmail.com
Thu Oct 2 11:29:40 MSD 2008
Здравствуйте.
У меня очень похожая проблема. Может быть даже та же самая.
Замечено следующее:
Иногда вместо ответа получаю gateway timeout от nginx причём жду его по
две минуты (в это время браузер в состоянии "ожидание ответа"). Если в
это же время открыть вкладку в браузере и тот же набрать адрес, то
страница открывается без проблем. Складывается ощущение что php
"зависает" во время обработки страницы. Это не зависит от того, что за
страница. Иногда это случается с индексной страницей, иногда с другими.
Для решения проблемы запустил несколько fcgi-процессов на разных портах
и поставил timeout 5 секунд. Количество показов gateway timeout
значительно снизилось, однако, тем не менее время от времени
появляется. Больше ничего не ясно. Пока решил попробовать апач вместо
fcgi, если проблема уйдёт, останусь на апаче.
Arceny, а в чём у Вас причина перехода на fcgi?
Андрей.
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;
>
>
More information about the nginx-ru
mailing list