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

Maxim Dounin mdounin на mdounin.ru
Ср Авг 14 12:31:40 UTC 2019


Hello!

On Wed, Aug 14, 2019 at 07:53:54AM -0400, Vladislavik wrote:

> Бэкэенд это nginx который шлет обычные файлы js сжатые с помощью встроенного
> gzip

Так, а "обычные файлы js", случайно, не перегенерятся (и/или 
редактируюстся) регулярно?

Ну и отступая на пару шагов назад: битые файлы - это что?  
Обрезанный gzip-контейнер, при распаковке возникает ошибка? Или 
структура gzip-контейнера не нарушена, всё штатно распаковывается 
без ошибок, но по результатом распаковки получается только часть 
того, что ожидалось в файле?

Если второе - то это выглядит как проблема с генерацией файлов.  
Такое бывает, если генерить файлы "по месту" - если к файлу 
обрататься, пока пишется новая версия, то из него прочитается 
только часть, уже записанная, но никто не обещал, что это будет 
ожидаемый файл полностью.  Соответственно эта часть и будет 
отправлена клиенту и закэширована.

Чтобы такого не было - надо менять файлы атомарно: написать новый 
файл рядом с временным именем, потом сделать rename() / mv в 
нужное имя.

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


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