Имеется сервер lighttpd-1.4.32, который был установлен вместо apache.Стоит на системе freebsd 9.1, обслуживает в среднем 70 запросов в секунду, используется для отдачи статики, запуска cgi-скриптов через mod_cgi, запуска php-скриптов через mod_fastcgi + php_fpm.
Иногда при запросе к серверу (который обрабатывает mod_cgi или mod_fastcgi) происходит обрыв соединения — браузер firefox пишет «Соединение было сброшено», firebug пишет «Статус: aborted», chrome пишет «Ошибка 101 (net::ERR_CONNECTION_RESET): Соединение сброшено».
Это происходит на разных клиентских компьютерах.
Ошибку не получается воспроизвести специально: проще всего её увидеть в самообновляющихся страницах внутри фреймов, которые есть на сайте: если загрузить страницу, и смотреть на самообновляюшиеся фреймы (которые обновляются раз в 20-30 секунд), то в течение примерно 10 минут обязательно соединение сбросится в какой-то момент времени. Специально запросить страницу каким-либо образом, чтобы 100% сгенерировать ошибку - не получилось.
Если рядом включить сервер apache например на 81-м порту, настроенный для отдачи того же контента, что и lighttpd, соединения с браузера к apache ни разу не сбрасываются, то есть при работе apache ошибок нет.
На тестовом сервере lighttpd, без нагрузки, тоже не получилось воспроизвести ошибку.
В логах lighttpd нет ничего — в error.log пустота, в access.log — только успешно отданные страницы с «200 OK», то есть, сброшенный запрос скорее всего не доходит до логов сервера.
Вывод: наверняка при отправке запроса на сервер lighttpd соединение где-то и кем-то иногда почему-то сбрасывается, но в какой момент и кем — мистика, не понятно. Не придумал, как это вообще возможно отследить.
На apache все работает.
Lighttpd настроен вроде бы стандартно, пытался немного играться с параметрами — например, выключить Keep-alive соединения, не помогло.
Может быть кто сталкивался с такой проблемой, или может подсказать, куда рыть, буду благодарен.
Если нужны конфиги — сообщайте какие, сброшу.