Странности с версией 0.7.22

nginx at teratelecom.ru nginx at teratelecom.ru
Sun Nov 30 10:44:09 MSK 2008


Nginx используется в качестве фронтенда, проксируя запросы на апач.
Для контроля работы хостинга пишется специальный лог

1228027904.663 600.217 86.110.187.156:4834 302
stat_uid=51B046AAF32A3249E0785131029B2603 -
cp.4game.ru/actions/createaccount/service/6.html
https://cp.4game.ru/services/details/service/6.html 172.29.8.17:80 0.232
302 30/Nov/2008:09:51:44 +0300 "Mozilla/5.0 (Windows; U; Windows NT 5.1;
ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4"

1228028231.656 600.225 62.133.188.23:1748 302
stat_uid=51B046AA78293249E678C12F02B52A03 -
cp.4game.ru/actions/createaccount/service/6.html
https://cp.4game.ru/index/login.html 172.29.8.14:80 0.232 302
30/Nov/2008:09:57:11 +0300 "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru;
rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1"

формат лога

log_format  stat_log_format  '$msec $request_time $remote_addr:$remote_port
'$status $uid_got $uid_set $server_name$request_uri $http_referer '
'$upstream_addr $upstream_response_time $upstream_status $time_local
"$http_user_agent"';

Вопрос, что так долго делает nginx над ответом апача? Почти 600 секунд
думать... И запрос то ерундовый, код возврата 302.
Самому мне вызвать подобные "тормоза" не получается. Да и по выставленным
таймаутам 600 секунд нгинкс думать над запросом не имеет права.
Может это как-то связано с тем, что сайт https ?
Ранее (до перехода на 0.7.22) такого поведения не замечал (стоял 0.7.2).
Хотя возможно до этого соответствующей страницы не было

Вот полный конфиг

events {
	worker_connections  8192;
	use epoll;
}

http {
	include		/etc/nginx/mime.types;
	default_type	application/octet-stream;

	client_header_timeout	10m;
	client_body_timeout	10m;
	send_timeout		10m;
	client_max_body_size 	10m;

	connection_pool_size		256;
	client_header_buffer_size	1k;
	large_client_header_buffers	4 2k;
	request_pool_size		4k;

	gzip on;
	gzip_min_length	1100;
	gzip_buffers	4 8k;
	gzip_types	text/plain;

	output_buffers	1 32k;
	postpone_output	1460;

	sendfile	on;
	tcp_nopush	on;
	tcp_nodelay	on;

	keepalive_timeout	75 20;

	ignore_invalid_headers	on;

	index index.html;

        proxy_read_timeout 65;
	proxy_send_timeout 11;
	proxy_connect_timeout 10;
	proxy_next_upstream error;

#	upstream  apache0  {
#	    ip_hash;
#	    server 172.29.8.4:80 fail_timeout=60s;
#	    server 172.29.8.5:80 fail_timeout=60s;
#	}

	log_format  my_log_format  '$msec $request_time '
	    '$remote_addr:$remote_port $connection $uid_got $uid_set '
	    '$status $request_length $body_bytes_sent '
	    '"$request" "$http_referer"';

        log_format  stat_log_format  '$msec $request_time
$remote_addr:$remote_port '
	    '$status $uid_got $uid_set $server_name$request_uri $http_referer '
            '$upstream_addr $upstream_response_time $upstream_status
$time_local "$http_user_agent"';

        limit_zone one $binary_remote_addr 10m;
	limit_conn one 32;
        limit_zone too $server_name 1m;

	userid          on;
	userid_name     stat_uid;
	userid_domain   none;
	userid_path     /;
#	userid_expires  365d;

	include /etc/nginx/include/*;
}

И часть того, что лежит в папке /etc/nginx/include

upstream apache0 {
    ip_hash;
    server 172.29.8.4 max_fails=3 fail_timeout=60s ;
    server 172.29.8.5 max_fails=3 fail_timeout=60s ;
    server 172.29.8.14 max_fails=3 fail_timeout=60s ;
    server 172.29.8.14 max_fails=3 fail_timeout=60s ;
    server 172.29.8.15 max_fails=3 fail_timeout=60s ;
    server 172.29.8.15 max_fails=3 fail_timeout=60s ;
    server 172.29.8.2 max_fails=3 fail_timeout=60s ;
    server 172.29.8.3 max_fails=3 fail_timeout=60s ;
    server 172.29.8.16 max_fails=3 fail_timeout=60s ;
    server 172.29.8.16 max_fails=3 fail_timeout=60s ;
    server 172.29.8.17 max_fails=3 fail_timeout=60s ;
    server 172.29.8.17 max_fails=3 fail_timeout=60s ;
}
server {
    listen		81.176.70.170;
    server_name 	cp.4game.ru ;
    proxy_next_upstream error timeout invalid_header http_500 http_503;
    rewrite   ^/(.*)   https://cp.4game.ru/$1 permanent;
}
server {
    listen		81.176.70.170:443 default;
          ssl                  	on;
          ssl_certificate    	/etc/nginx/ssl/cp.4game.ru.pem;
          ssl_certificate_key	/etc/nginx/ssl/cp.4game.ru.pem;
          ssl_session_timeout	5m;
          ssl_protocols  	SSLv2 SSLv3 TLSv1;
	  ssl_ciphers  		ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
	  ssl_prefer_server_ciphers   on;
    server_name		cp.4game.ru ;
    charset		UTF8;
    access_log 		/var/log/nginx/cp.4game.ru-access_log combined;
#    error_log 		/var/log/nginx/cp.4game.ru-error_log;

    location ~* (^/.htaccess.*|admin\/(admin.php.*)$) { deny all; }
        location ~* ^(.+\.(php|php3|html)|.*/)$ {
        proxy_pass        	http://apache0;
        proxy_set_header        Host cp.4game.ru;
        proxy_set_header   	X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header  	X-Real-IP  $remote_addr;
        index                   index.php index.html;
	limit_conn		too 20;
        access_log 		/var/log/nginx/stat_log stat_log_format;
    }
    location ~ / {
        root   /data/cp.4game.ru/htdocs;
    }
}

--
С уважением,
Волков Олег







More information about the nginx-ru mailing list