Директива 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