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