Re: Не работает proxy cache lock

2018-06-21 Пенетрантность ZZZ
Прошу прощения, пропустил вторую часть ответа.

С proxy_cache_lock_age и proxy_cache_lock_age я уже игрался. Никакого
влияния на ситуацию не заметил.
Равномерность трудно проверить, так как запросов довольно много и какие-то
флуктуации-таки есть. Но похоже что да, равномерно. Прямо полное ощущение,
что proxy_cache_lock не работает вообще.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280230,280233#msg-280233

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Не работает proxy cache lock

2018-06-21 Пенетрантность ZZZ
К сожалению, не всё так просто. Ответ бекенда сильно меньше секунды, а
умолчания для proxy_{connect,send,read}_timeout аж минута.
Чтобы уберится, что дело точно не в этом, сделал так:

proxy_connect_timeout  1h;
proxy_send_timeout  1h;
proxy_read_timeout  1h;

Я, всё же, думаю, что это баг nginx'а и блокировка там не атомарная, за счёт
чего происходит гонка.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280230,280231#msg-280231

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Не работает proxy cache lock

2018-06-21 Пенетрантность Andrey Kopeyko

ZZZ писал 2018-06-21 17:43:

Доброго утра!


Добрый день!


Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг, на
который я шлю порядка 150 простых запросов в секунду. Каждые пять 
секунд,
когда инвализируется кеш, на апстрим уходит от пяти до двадцати 
запросов, в

зависимости от времени ответа апстрима,


Вероятно, у вас значения proxy_{connect,send,read}_timeout в 5-20 раз 
меньше времени ответа вашего бэкенда. И цикл

- лочим кеш и отправляем запрос на бэкенд
- запрос таймаутится
успевает повториться несколько раз.


Другая версия - срабатывает proxy_cache_lock_age

Посмотрите по логам - эти лишние запросы отправляются на бэкенд 
равномерно в течение времени его неответа? или "пачкой" после первого 
запроса?



--
Best regards,
Andrey A. Kopeyko 
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Не работает proxy cache lock

2018-06-21 Пенетрантность ZZZ
Спасибо, но мне не нужен stale. Мне нужна именно блокировка.
После инвалидации кеша клиент не должен получить старых данных.


Sergey Kandaurov Wrote:
---
> > On 21 Jun 2018, at 17:43, ZZZ  wrote:
> > 
> > Доброго утра!
> > 
> > Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг,
> на
> > который я шлю порядка 150 простых запросов в секунду. Каждые пять
> секунд,
> > когда инвализируется кеш, на апстрим уходит от пяти до двадцати
> запросов, в
> 
> http://nginx.org/r/proxy_cache_use_stale/ru
> 
> “дополнительный параметр updating разрешает использовать устаревший
> закэшированный ответ, если на данный момент он уже обновляется”
> 
> -- 
> Sergey Kandaurov
> 
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280227,280229#msg-280229

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Не работает proxy cache lock

2018-06-21 Пенетрантность Sergey Kandaurov

> On 21 Jun 2018, at 17:43, ZZZ  wrote:
> 
> Доброго утра!
> 
> Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг, на
> который я шлю порядка 150 простых запросов в секунду. Каждые пять секунд,
> когда инвализируется кеш, на апстрим уходит от пяти до двадцати запросов, в

http://nginx.org/r/proxy_cache_use_stale/ru

“дополнительный параметр updating разрешает использовать устаревший
закэшированный ответ, если на данный момент он уже обновляется”

-- 
Sergey Kandaurov

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Не работает proxy cache lock

2018-06-21 Пенетрантность ZZZ
Доброго утра!

Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг, на
который я шлю порядка 150 простых запросов в секунду. Каждые пять секунд,
когда инвализируется кеш, на апстрим уходит от пяти до двадцати запросов, в
зависимости от времени ответа апстрима, тогда как я жду, что уйдёт только
один запрос, а остальные будут ждать его обработки. Отключени
proxy_cache_lock не влияет на проблему никак.


user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid  /var/run/nginx.pid;


events {
worker_connections  1024;
}


http {
include  /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  main  escape=json
'$time_iso8601 $request_id '
'$remote_addr $request_length $host "$request" "$http_referer"
"$http_user_agent" '
'$request_time $status $body_bytes_sent';

access_log  /var/log/nginx/access.log  main;

proxy_cache_path  /var/cache/nginx/CACHE levels=1:2
keys_zone=CACHE:16m;

server {
listen  80 default_server;
listen  [::]:80 default_server;

proxy_cache  CACHE;

proxy_cache_lock  on;
proxy_cache_lock_age 10s;
proxy_cache_lock_timeout 20s;

proxy_cache_valid  200 5s;
proxy_ignore_headers X-Accel-Expires Expires Cache-Control
Set-Cookie Vary;

proxy_set_header  Host HOST;

location / {
proxy_pass  https://HOST;
}

}
}


Запускаю вот таким образом:
  $ docker run --rm -it -v (pwd)/nginx.conf:/etc/nginx/nginx.conf:ro -p
80:80 nginx:alpine
Пробовал версии, от 1.10 до 1.15.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280226,280226#msg-280226

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность rihad
Спасибо, отписал майнтейнеру порта www/nginx joneum@

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280196,280225#msg-280225

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность Alex Domoradov
> Или сообщите разработчику eustas о проблеме,
> чтобы тот сам связался с тем, кто занимается портом nginx,
> чтобы тот поправил ссылку на модуль eustas:ngx_brotli

извиняюсь за оффтопик, но это было мощно :D

On Thu, Jun 21, 2018 at 1:42 PM Gena Makhomed  wrote:

> On 20.06.2018 20:18, rihad wrote:
>
> > После обновления nginx с 1.12 до 1.14 на FreeBSD 10 открытые удаленные
> файлы
> > (lsof +L1) стремительно растут для nginx.
> > В обеих версиях один конфиг, и одни опции постройки.
> >
> > OPTIONS_FILE_SET+=BROTLI
>
> Судя по файлу
>
> https://github.com/freebsd/freebsd-ports/blob/master/www/nginx/Makefile.extmod
>
> у Вас используется
>
> BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli
> BROTLI_GH_TUPLE=eustas:ngx_brotli:37ab9b2:brotli
> BROTLI_VARS=DSO_EXTMODS+=brotli
>
> eustas:ngx_brotli - это глючная версия модуля, которая приводит
> к утечке сокетов, недавно этот вопрос обсуждался в этой же рассылке:
> http://mailman.nginx.org/pipermail/nginx-ru/2018-June/061206.html
>
> После этого обсуждения eustas поправил в своем форке проблему:
>
> https://github.com/eustas/ngx_brotli/commit/e26248ee361c04e25f581b92b85d95681bdffb39
>
> Но порт FreeBSD ссылается на глючную версию 37ab9b2 от 17 апреля 2018.
>
> Версия с исправленным глюком - это e26248e
> https://github.com/google/ngx_brotli/compare/master...eustas:master
>
> Соответственно, Вам надо связаться с ответственным за порт
> https://github.com/freebsd/freebsd-ports/tree/master/www/nginx
> чтобы тот поправил ссылку на модуль eustas:ngx_brotli
>
> Или сообщите разработчику eustas о проблеме,
> чтобы тот сам связался с тем, кто занимается портом nginx,
> чтобы тот поправил ссылку на модуль eustas:ngx_brotli
>
> Если проблему в портах уже исправили, но просто забыли обновить
> содержимое портов на github - тогда Вам достаточно будет просто
> пересобрать nginx заново из портов и проблема будет устранена.
>
> --
> Best regards,
>   Gena
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность Gena Makhomed

On 20.06.2018 20:18, rihad wrote:


После обновления nginx с 1.12 до 1.14 на FreeBSD 10 открытые удаленные файлы
(lsof +L1) стремительно растут для nginx.
В обеих версиях один конфиг, и одни опции постройки.

OPTIONS_FILE_SET+=BROTLI


Судя по файлу
https://github.com/freebsd/freebsd-ports/blob/master/www/nginx/Makefile.extmod

у Вас используется

BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli
BROTLI_GH_TUPLE=eustas:ngx_brotli:37ab9b2:brotli
BROTLI_VARS=DSO_EXTMODS+=brotli

eustas:ngx_brotli - это глючная версия модуля, которая приводит
к утечке сокетов, недавно этот вопрос обсуждался в этой же рассылке:
http://mailman.nginx.org/pipermail/nginx-ru/2018-June/061206.html

После этого обсуждения eustas поправил в своем форке проблему:
https://github.com/eustas/ngx_brotli/commit/e26248ee361c04e25f581b92b85d95681bdffb39

Но порт FreeBSD ссылается на глючную версию 37ab9b2 от 17 апреля 2018.

Версия с исправленным глюком - это e26248e
https://github.com/google/ngx_brotli/compare/master...eustas:master

Соответственно, Вам надо связаться с ответственным за порт
https://github.com/freebsd/freebsd-ports/tree/master/www/nginx
чтобы тот поправил ссылку на модуль eustas:ngx_brotli

Или сообщите разработчику eustas о проблеме,
чтобы тот сам связался с тем, кто занимается портом nginx,
чтобы тот поправил ссылку на модуль eustas:ngx_brotli

Если проблему в портах уже исправили, но просто забыли обновить
содержимое портов на github - тогда Вам достаточно будет просто
пересобрать nginx заново из портов и проблема будет устранена.

--
Best regards,
 Gena

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность Dmytro Lavryk
# cat brotli.conf.inc 

brotli on;

brotli_min_length  200;   
brotli_comp_level   6;

brotli_types text/css text/x-component application/x-javascript
application/javascript text/javascript text/x-js text/richtext image/svg+xml
application/atom+xml application/rss+xml text/plain text/xsd text/xsl
text/xml image/bmp application/java application/msword
application/vnd.ms-fontobject application/x-msdownload image/x-icon
image/webp application/json application/vnd.ms-access
application/vnd.ms-project application/x-font-otf
application/vnd.ms-opentype application/vnd.oasis.opendocument.database
application/vnd.oasis.opendocument.chart
application/vnd.oasis.opendocument.formula
application/vnd.oasis.opendocument.graphics
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.text audio/ogg application/pdf
application/vnd.ms-powerpoint application/x-shockwave-flash image/tiff
application/x-font-ttf audio/wav application/vnd.ms-write
application/font-woff application/font-woff2 application/vnd.ms-excel;




файл в кеше не пожатый:
# cat ./1/06/0fd94fd936530048a3e935a3266c8061

��+[qs+[���l]
KEY: httpsGETsite.address/
�Set-Cookie: PHPSESSID=bc1f4cae0acd1de9a9782ffdfb9d9d00; path=/;
HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-type: text/html; charset=windows-1251










Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280196,280219#msg-280219

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность rihad
Dmytro Lavryk Wrote:
---
> Точно. Там люди ходят. Не самые посещаемые сайты, но все же...
> 
> curl -H 'Accept-Encoding: br' -I https://site.address/
> ...
> content-encoding: br


Вы используете brotli on? Контент ложится в кэш br, или в сыром виде и
зажимается на лету? 
Можете посмотреть файл, просто грепните по ключу что используется в
fastcgi_cache_key 
Например если у вас $http_host$uri и вы запросили https://site.address/
то ищется по 

nice sudo fgrep -ax 'KEY: site.address/' /path/to/nginx/cache -rl

это даст название файла кэша в котором лежит https://site.address/ и который
сможете открыть через less и посмотреть тело.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280196,280218#msg-280218

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Как работает include

2018-06-21 Пенетрантность Aleksandr_Petrov
Dmitry Ivanov Wrote:
---
> Здравствуйте, Aleksandr_Petrov.
> 
> Вы писали 20 июня 2018 г., 19:03:50:
> 
> > Подскажите пожалуйста как работает include в конфиге nginx. Указываю
> три
> > include в секцию server, в предположение что они добавят нужный
> конфиг в
> > порядке следования, но в результате работает не так как ожидается.
> 
> nginx -T
> 
> поможет
> 
> -- 
> С уважением,
>  Dmitry   nginx...@sadok.spb.ru
> 
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru


Как раз после "nginx -T" и возник вопрос. Получается что конфиг из внешнего
файла вставляется не в том же месте где include и не в порядке следования
если include несколько подряд.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280194,280214#msg-280214

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность Dmytro Lavryk
Точно. Там люди ходят. Не самые посещаемые сайты, но все же...

curl -H 'Accept-Encoding: br' -I https://site.address/
HTTP/2 200 
server: nginx
date: Thu, 21 Jun 2018 07:23:26 GMT
content-type: text/html; charset=windows-1251
vary: Accept-Encoding
set-cookie: PHPSESSID=ec9c7427c1ee83392f44a606f0dc8245; path=/; HttpOnly
expires: Thu, 19 Nov 1981 08:52:00 GMT
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
strict-transport-security: max-age=31536000; always
content-encoding: br

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280196,280213#msg-280213

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность rihad
Dmytro Lavryk Wrote:
---
> Собрал, включил, перезапустил.
> Работает часа 3. Описаного эффекта не наблюдается - все работает.


Точно зажимает? Попробуйте плиз на своем ресурсе запросить что-то по https.

curl -H 'Accept-Encoding: br' -I https://example.com/

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280196,280212#msg-280212

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность Dmytro Lavryk
Собрал, включил, перезапустил.
Работает часа 3. Описаного эффекта не наблюдается - все работает.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280196,280211#msg-280211

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Открытые файлы растут после обновления до 1.14

2018-06-21 Пенетрантность rihad
Отлключение компрессии brotli на лету решило проблему утечки FD:

brotli off;

Теперь осталось понять почему оно глючит.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,280196,280210#msg-280210

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru