Здравствуйте!
Столкнулся с таким поведением: если кто-то недобрый попортит лежащий в
proxy_cache файл, отрезав у него конец, то при отдаче ответа из этого
файла nginx отдаёт столько, сколько в этом файле есть, а потом
подвешивает соединение: не обрывает, не закрывает, но и ничего в него
не пишет.
Проблема воспроизводится на nginx-0.7.62 (на котором она и была
обнаружена) и на 0.8.19. Конфиг (тривиальный) и дебаг-лог от 0.8.19
прилагаю. Система -- Debian Lenny, ядро 2.6.26, amd64.
Комментарии к дебаг-логу: до его начала запрос /crossdomain.xml лёг в
proxy_cache, потом от лежащего в proxy_cache файлика вручную отгрызли
последние несколько десятков байт. Лог начинается там, где я повторяю
запрос wget'ом. После строчки 2009/10/13 14:54:52 [debug] 8060#0:
epoll timer: 64997 wget уходит в цикл select-таймаут-select-таймаут... В
14:54:59 я прибиваю wget.
Кстати, на том сервере, на котором проблема проявилась и начала
мешать, ничего, кроме nginx не работает, и на первый взгляд кроме
самого nginx вот так вот попортить файл некому, но случается это
слишком редко, чтобы можно было отловить что-то определённое.
Заранее спасибо.