Welcome! Log In Create A New Profile

Advanced

Re: при изменении static файла nginx отдает мусор (BUG?)

Maxim Dounin
October 11, 2017 01:54PM
Hello!

On Wed, Oct 11, 2017 at 12:56:49PM -0400, neomaq wrote:

> Ubuntu 16.04
> nginx -v 1.12.1
>
> При изменении static файла nginx отдает мусор несколько секунд
>
>
> имеем тривиальный location:
>
> location ~
> \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|ico|swf|xml|mp3|html|svg)$
> {
> root /var/www;
> etag on;
> }
>
> меняю текстовый файл, расположенный в в данном location
> и наблюдаю следующую картину:
>
> по http заголовкам видно, что первые 5-15 секунд скачет вперед-назад во
> времени заголовок "Last-Modified"
> и "Content-length" и "Etag"
>
> как будто nginx отдает разные файлы, через несколько секунд это
> прекращается и nginx отдает корректный файл,
> с правильным содержимым

[...]

Файлы надо менять атомарно. Пишете новую версию файла, потом
делаете mv в нужное имя.

Любая попытка редактировать файлы "по месту" - чревата тем, что
nginx откроет файл и начнёт его читать до обновления, а продолжит -
уже после, и таким образом клиенту уйдёт причудливая смесь двух
файлов. В хорошем случае, если файл стал меньше, nginx проблему
заметит и ругнётся в лог, в плохом - просто клиент получит мусор.

В вашем случае, судя по всему, ситуация усугубляется ещё и
включённым open_file_cache, который позволяет наблюдать
вышеописанный race с гарантией, так как время между открытием
файла и его отдачей может доходить до 60 секунд
(open_file_cache_valid).

--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

при изменении static файла nginx отдает мусор (BUG?)

neomaq October 11, 2017 12:56PM

Re: при изменении static файла nginx отдает мусор (BUG?)

Maxim Dounin October 11, 2017 01:54PM

Re: при изменении static файла nginx отдает мусор (BUG?)

Валентин Бартенев October 11, 2017 01:56PM

Re: при изменении static файла nginx отдает мусор (BUG?)

Evgeniy Berdnikov October 11, 2017 02:28PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 175
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready