Я использую nginx в режиме обратного прокси. Вот соответствующая часть конфигурационного файла:
server {
listen 80;
server_name ~^web.redhelper\.ru$ ;
access_log off;
location /http-bind {
proxy_pass http://localhost:7070;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
}
Через некоторое время я начал выдавать ошибку 500. Я думаю, что достиг некоторого максимального лимита открытых подключений. Вот график Мунина:
Когда я использую netstat, я вижу, что есть:
1279 open connections to port 80; (including website itself that is on the same port)
of them 745 are in ESTABLISHED state and 479 in TIME_WAIT
277 ESTABLISHED connections from 127.0.0.1:[misc port] to 127.0.0.1:7070
3922 connections from 127.0.0.1:7070 to 127.0.0.1:[misc port]
of them 246 are in ESTABLISHED state and 3646 in TIME_WAIT
Я думаю, что это 3646 соединений TIME_WAIT, вызывающих это. Как я могу запретить nginx удерживать такое количество открытых соединений?
Вот еще несколько графиков мунинов, может быть, они помогут лучше разобраться в моей проблеме: http://munin.redhelper.ru/localdomain/localhost.localdomain/index.html