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

Maxim Dounin mdounin на mdounin.ru
Ср Авг 14 13:25:39 UTC 2019


Hello!

On Wed, Aug 14, 2019 at 08:43:39AM -0400, Vladislavik wrote:

> Ничего не генерится, файлы лежат на диске, созданы один раз и записаны на
> диск. Nginx должен сжать его на лету и отдать, вот, что от него требуется,
> он это выполняет, но иногда в кэше браузера/клаудфлера лежит обрезанный

Что лежит в кэшах браузера и клаудфлера - вопрос к браузеру и 
клаудфлеру соответственно.  Исходный вопрос был про proxy cache - 
что лежит в нём, когда наблюдается проблема?

> файл, например половина его (уже разжатый, тупо не весь, не хватает куска
> кода в конце файла) возникает ли ошибка при разжатии я не знаю, видно
> только, что файл читаемый, но код не полный, чаще только половина его) я так
> понял, что в процессе передачи или упаковки возникает какая-то проблема и
> nginx принимает файл от другого nginx/браузера без проверки его на
> целостность...Размеры файлов не более 20кб.
> Вопрос такой: возможно ли распаковать архив, если он получен не полностью?
> (Тк тест в js файла читаемый, но файл состоит только из половины того, что
> должно быть)

Распаковать - возможно.  При распаковке будет известно, полностью 
получен ответ или нет - по наличию/отсутствию gzip trailer'а (8 
байт с CRC32 и размером несжатого ответа).  Что делает с этой 
информацией конкретный распаковщик - тайна сия великая есть, да и 
не важно.  Смотреть надо строго на то, что лежит в кэше nginx'а, 
см. выше.

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


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