Re: Битые файлы в кеше при gzip ответах

Maxim Dounin mdounin на mdounin.ru
Ср Авг 14 11:24:17 UTC 2019


Hello!

On Tue, Aug 13, 2019 at 09:52:16PM +0300, Владислав Толмачев wrote:

> Добрый день, не пойму как исправить ситуацию, nginx иногда хранит в proxy
> кеше битые обрезанные файлы, при использовании на бэкенде gzip, тот же баг
> замечен на клаудфлер, иногда в его кеше лешит обрезанный файл, например
> половина js файла и помогает только сброс кеша и запрос файла еще раз, что
> бы файл стал полный. Что подкрутить, что бы не выключать gzip и http1.1? В
> клаудфлере даже замечено то, что половина кэш серверов сохраняет полный
> файл, половина хранит его обрезанную версию и выдает ее как правильную....

Использование сжатия на бэкенде обычно означает, что заголовка 
Content-Length в ответах бэкенда не будет.  Соответственно в 
HTTP/1.0 окончание ответа будет определяться по закрытию соединения, и 
если бэкенд по каким-то причинам закрывает соединение, не дослав 
ответ полностью, то такой ответ имеет шансы быть сохранённым в кэш 
частично.

Лучше всего в подобной ситуации - разобраться, почему таки 
закрываются соединения, и полечить.  Но в качестве workaround'а 
скорее всего сработает "proxy_http_version 1.1;" в конфиге.

Подробнее тут:

http://nginx.org/r/proxy_http_version/ru

-- 
Maxim Dounin
http://mdounin.ru/


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