Что-нибудь удалось выяснить? А то похоже, что у меня те же проблемы: сам
я не видел, но в логах редко, но встречаются ответы со статусом 400 и
нулевой длиной, и в большинстве своем для очень маленьких картинок и
иконок. Есть подозрение, что природа этих ошибок та же...
Да, и соответствующих записей в error_log не обнаруживается.
Информация, почему случилось 400, пишется на уровне info.
Ага, вот что происходит в моем случае:
2006/08/21 23:59:12 [info] 30300#0: *8772179 recv() failed (104:
Connection reset by peer) while reading client request headers, client:
....
2006/08/21 23:59:12 [info] 30300#0: *8772179 writev() failed (32: Broken
pipe) while reading client request headers, client: ....
И все равно непонятно, почему в 90% случаев это происходит с маленькими
картинками и мелкими .css (пока что максимальный размер файла, на
котором происходит ошибка, равняется 15233 bytes).
Иногда впрочем попадаются и ответы fastcgi backend.
Система RHEL4, kernel 2.6.9-42.ELsmp
В общем, это довольно странные ошибки.
2006/08/21 23:59:12 [info] 30300#0: *8772179 recv() failed (104:
Connection reset by peer) while reading client request headers, client: ....
означает, что клиент послал запрос как минимум в двух и более пакетах
и в какой-то момент просто закрыл соединение с ошибкой. Это довольно
необычное поведение для браузера, скачивающего картинку.
Вторая строка
2006/08/21 23:59:12 [info] 30300#0: *8772179 writev() failed (32: Broken
pipe) while reading client request headers, client: ....
ещё более необычна - какой может быть writev() при чтнии клиентского
запроса ?
Ситуацию с writev() я воспроизвёл, буду смотреть.
Игорь Сысоев
http://sysoev.ru