Welcome! Log In Create A New Profile

Advanced

Re: выдает файл прежнего размера

Maxim Dounin
October 22, 2010 12:04PM
Hello!

On Fri, Oct 22, 2010 at 10:35:14AM -0400, dmtr wrote:

> nginx работает в следующей конфигурации:
> осуществляет проксирование, back-end
> установлен apache
> nginx сам выдает контекст без участия apache
> некоторые файлы, в том числе [b]css[/b], на
> примере которого я и описываю проблему
>
> в течение какого-то времени после
> изменения файла, nginx отдает его со
> статусом 200, но такого же размера,
> какого файл был до изменения. в
> результате клиент получает неполный
> файл.
>
> для наглядности привожу часть access_log.
> размер отдаваемого файла до изменения:
> [code]
> [22/Oct/2010:18:11:19 +0400] GET /includes/mymc.css HTTP/1.0 "200"
> [b]10399[/b] "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru;
> rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10" "unknown"
> [/code]
>
> в файл добавлены строки, размер
> увеличился
> [code]
> # ls -l mymc.css
> -rw-rw----+ 1 fc-ros932 fc-ros932 [b]10982[/b] Oct 22 18:11 mymc.css
> [/code]
>
> в течение какого-то времени (около
> минуты), nginx отдает этот файл со
> статусом 200, но размер файла прежний. он
> реально отдает измененный файл, в нем
> есть изменения, но нет нескольких
> последних строк.
> [code]
> [22/Oct/2010:18:11:45 +0400] GET /includes/mymc.css HTTP/1.0 "200"
> [b]10399[/b] "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru;
> rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10" "unknown"
> [22/Oct/2010:18:11:53 +0400] GET /includes/mymc.css HTTP/1.0 "200"
> [b]10399[/b] "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru;
> rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10" "unknown"
> [22/Oct/2010:18:13:04 +0400] GET /includes/mymc.css HTTP/1.0 "200"
> [b]10982[/b] "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru;
> rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10" "unknown"
> [/code]
>
> [code]# nginx -v
> nginx version: nginx/0.8.52[/code]
>
> подскажите, какими параметрами
> конфигурации может быть это вызвано?
> что еще показать?
> сервер изначально настраивал не я, пока
> только разбираюсь в конфигурации.

Файлы надо обновлять атомарно. Т.е. сначала создать новый файл, а
потом rename() (или mv, если из shell'а). Тогда не будет проблем
вида "содержимое новое, а размер всё ещё старый", а равно и
множества других проблем, связанных с неатомарностью обновления.

Если проблемы видны около минуты - то скорее всего у вас включён
open_file_cache. От выключения станет лучше, но полностью
проблема не исчезнет - просто сократится временное окно, в течение
которого её будет видно.

Maxim Dounin

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

выдает файл прежнего размера

dmtr October 22, 2010 10:35AM

Re: выдает файл прежнего размера

Maxim Dounin October 22, 2010 12:04PM

Re: выдает файл прежнего размера

dmtr October 23, 2010 01:47AM

Re: выдает файл прежнего размера

Igor Sysoev October 23, 2010 05:58AM

Re: выдает файл прежнего размера

dmtr October 25, 2010 02:19AM

Re: выдает файл прежнего размера

Andrey N. Oktyabrski October 25, 2010 02:46AM

Re: выдает файл прежнего размера

dmtr October 25, 2010 03:55AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 238
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