Директива open_file_cache. Неправильное отображение Last-Modified / Content-Length - баг или фича?

Станислав server_inc на list.ru
Сб Фев 5 03:19:58 MSK 2011


Здравствуйте!

Столкнулся со странной штукой. Не могу понять баг это или так задумано.

Создаю файл на стороне сервера my_file.txt и заполняю его мусором....

Далее с помощью wget на клиент. стороне
wget -O /dev/null -S --no-cache http://domain.ru/my_file.txt

делаю несколько запросов к веб-серверу с интервалом в одну секунду, чтоб 
просмотреть заголовки ответа nginx... все нормально .

Редактирую my_file.txt, сохраняю, закрываю и вновь делаю запросы и 
наблюдаю следующее:

Заголовок Last-Modified не меняется изначально вообще
Last-Modified: Fri, 04 Feb 2011 23:35:11 GMT
(время создания файла)


Меняется через 2-3 запроса(интервал запросов 1-2 секунды)
Last-Modified: Fri, 04 Feb 2011 23:36:13 GMT

Далее следующие 2-3 запроса ответ идет правильный, все хорошо....
Last-Modified: Fri, 04 Feb 2011 23:36:13 GMT

..........И на четвертый запрос ответ опять не верный
Last-Modified: Fri, 04 Feb 2011 23:35:11 GMT

И так по кругу.... на протяжении минуты
то ответ
Last-Modified: Fri, 04 Feb 2011 23:35:11 GMT
то
Last-Modified: Fri, 04 Feb 2011 23:36:13 GMT

В своем конфиге я использую следующее
open_file_cache             max=100000 inactive=40s;
open_file_cache_valid       60s;
open_file_cache_min_uses    2;
open_file_cache_errors      on;

и если отключить директиву open_file_cache то все начинает работать 
нормально.

Но мне не понятно, почему когда директива включена, nginx'а так 
колбасит, что он отдает то правильный ответ то неправильный.
То есть при включенной директиве, я полагаю, nginx должен отдавать 
первые 60 секунд(по примеру моего конфига и с условием что на протяжении 
40 секунд файл был запрошен 2 раза) дату создания файла в заголовке 
Last-Modified . Так? Нет?

С Content-Length: такая же ситуация.



Подробная информация о списке рассылки nginx-ru