ngnix не закрывает сокет после завершения соединения. Я погуглил и не могу ничего придумать, чтобы сообщить nginx о закрытии этого соединения, кроме того, что у меня ниже: keepalive_timeout 0
.
И в заголовках запроса, и в ответе я вижу Connection: close
, но сокет по-прежнему находится в TIME_WAIT
состояние около минуты.
tcp 0 0 127.0.0.1:80 127.0.0.1:40345 TIME_WAIT -
Вот заголовки:
Request Headers:
Connection: close
Content-Type: application/x-www-form-urlencoded
Response headers:
HTTP/1.1 200 OK
Server: nginx/0.7.67
Date: Thu, 21 Apr 2011 15:34:31 GMT
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Часть моей конфигурации nginx:
Файл конфигурации nginx:
{
...
keepalive_timeout 0;
client_max_body_size 1M;
fastcgi_read_timeout 60;
fastcgi_send_timeout 60;
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-fastcgi.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_intercept_errors on; # to support 404s for PHP files not found
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param SERVER_NAME $host;
}
}
Ожидание в состоянии TIME_WAIT в течение нескольких минут является намеренным, пожалуйста, проверьте следующие ссылки для полного описания:
http://developerweb.net/viewtopic.php?id=2941 http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html