Re: nginx 1.10.2 и sub filter не работает

2016-12-13 Пенетрантность YuriV
Спасибо, помогло!!

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

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

Re: nginx 1.10.2 и sub filter не работает

2016-12-13 Пенетрантность damir bikmuhametov
On Wed, Dec 14, 2016 at 01:08:54AM -0500, YuriV wrote:
> Захотелось странного :) - перезаписывать в респонзе из файлика, который
> отдает nginx некую переменную в соответствии с мапой. 
> Но не работает почему-то :(
> server {
> listen 80;
> server_name ~^(www\.)?(.+)\.com;
> root /var/www/fake.site;
> sub_filter '{{hostname}}' some_shit;
> sub_filter_once on;
> }

по умолчанию nginx переписывает только text/html:
http://nginx.org/en/docs/http/ngx_http_sub_module.html#sub_filter_types

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

nginx 1.10.2 и sub filter не работает

2016-12-13 Пенетрантность YuriV
Всем привет.
Захотелось странного :) - перезаписывать в респонзе из файлика, который
отдает nginx некую переменную в соответствии с мапой. 
Но не работает почему-то :(
Вот инфа по nginx:
nginx version: nginx/1.10.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/etc/nginx
--sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf
--pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--http-client-body-temp-path=/mnt/resource/nginx/client_temp
--http-proxy-temp-path=/mnt/resource/nginx/proxy_temp --with-http_ssl_module
--with-http_realip_module --with-http_addition_module --with-http_sub_module
--with-http_flv_module --with-http_mp4_module --with-http_gunzip_module
--with-http_gzip_static_module --with-http_stub_status_module
--with-file-aio --with-ipv6 --with-http_geoip_module
--without-http_scgi_module --without-http_uwsgi_module
--without-http_fastcgi_module --with-http_v2_module

Вот конфиг:
server {
listen 80;
server_name ~^(www\.)?(.+)\.com;
root /var/www/fake.site;
sub_filter '{{hostname}}' some_shit;
sub_filter_once on;
}

Вот содержимое js-файла, которое хотелось бы перезаписать:
define(['config'], function(config){
return config = { basehost: '{{hostname}}', timeout: '500'}
});

Что я делаю не так? Или таки нужно заюзать сторонний модуль тип этого:
https://github.com/yaoweibin/ngx_http_substitutions_filter_module

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

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

Re: nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-25 Пенетрантность Валентин Бартенев
On Friday 25 November 2016 18:05:30 Валентин Бартенев wrote:
> On Friday 25 November 2016 10:56:45 Dmitriy M. wrote:
> > 25 ноября 2016 г., 10:31 пользователь Dmitriy M.  
> > написал:
> > > 20 ноября 2016 г., 18:22 пользователь Валентин Бартенев
> > >  написал:
> > >> On Sunday 20 November 2016 19:17:12 Валентин Бартенев wrote:
> > >>> On Sunday 20 November 2016 17:58:45 Dmitriy M. wrote:
> > >>> [..]
> > >>> >
> > >>> > К сожалению, это практически невозможно. Сервису необходимы
> > >>> > перечисленные при сборке модули, без них возможности проверки под
> > >>> > нагрузкой нет. Способа воспроизведения нет, они происходят
> > >>> > неконтролируемо и очень редко (1-2 краша в сутки на ряде разных
> > >>> > клонированных сетапов).
> > >>> >
> > >>> > Могу дополнить, что эти же модули (набор модулей, но да
> > >>> > headers-more-nginx-module-84241e4 и libressl были обновлены) были
> > >>> > вкомпилены в nginx-1.9.12 , с которым на протяжении более полугода
> > >>> > крашей небыло, конфигурация nginx.conf существенно не менялась.
> > >>> >
> > >>> > Попробую собрать с предыдущими версиями модулей
> > >>> > (openresty-headers-more-nginx-module-0c6e05d и libressl-2.3.6) и без
> > >>> > оптимизаций кода для дебаггинга.
> > >>> > https://www.nginx.com/resources/wiki/start/topics/tutorials/debugging/
> > >>>
> > >>> То, что модули раньше работали - абсолютно не показатель.  Многие 
> > >>> сторонние
> > >>> модули славятся тем, что лезут во внутренние структуры nginx, используя 
> > >>> их
> > >>> не по назначению.  Как результат, такие модули могут поломать nginx при 
> > >>> любых
> > >>> изменениях в его внутренних механизмах.
> > >>>
> > >>> Между версией 1.10.1 и 1.10.2 произошли существенные изменения в 
> > >>> обработке
> > >>> тела запроса в модуле http/2.
> > >>>
> > >>> Бектрейс, который вы привели - не содержит какой-либо полезной 
> > >>> информации
> > >>> для дебага.  Ошибка, послужившая причиной падения, произошла в другом 
> > >>> месте,
> > >>> на другой итерации цикла обработки событий.  А то, что видно на 
> > >>> бэктрейсе -
> > >>> лишь следствие.
> > >>>
> > >>> Можно попытаться получить debug-лог перед падением:
> > >>> http://nginx.org/ru/docs/debugging_log.html#memory
> > >>>
> > >>> Смотрите раздел про запись его в буфер в памяти.
> > >>>
> > >> [..]
> > >>
> > >> И в дополнение к предыдущему письму, а вы уверены, что у вас
> > >> nginx-upload-progress-module вообще с HTTP/2 корректно работает?
> > >>
> > >> Судя по тому же тикету на github, он и не должен:
> > >> https://github.com/masterzen/nginx-upload-progress-module/issues/45
> > >>
> > >> Интересно также, что вы делаете с помощью headers-more-nginx-module,
> > >> что не получается сделать стандартными средствами nginx?
> > >>
> > >> --
> > >> Валентин Бартенев
> > >
> > > Добрый день, Валентин
> > >
> > 
> > и вдогонку прошлому письму, core номер два, тоже на сетапе без сторонних 
> > модулей
> > nginx -V
> > nginx version: nginx/1.10.2
> > built with LibreSSL 2.4.4
> > TLS SNI support enabled
> > configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
> > /usr/local/include' --with-ld-opt='-L /usr/local/lib -lrt'
> > --conf-path=/usr/local/etc/nginx/nginx.conf
> > --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
> > --error-log-path=/var/log/nginx/error.log --user=www --group=www
> > --modules-path=/usr/local/libexec/nginx
> > --http-client-body-temp-path=/var/tmp/nginx/client_body_temp
> > --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
> > --http-proxy-temp-path=/var/tmp/nginx/proxy_temp
> > --http-scgi-temp-path=/var/tmp/nginx/scgi_temp
> > --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp
> > --http-log-path=/var/log/nginx/access.log --with-http_realip_module
> > --with-http_stub_status_module --with-pcre --with-threads
> > --with-http_ssl_module --with-http_v2_module
> > --with-openssl=./libressl-2.4.4 --with-debug
>

Re: nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-25 Пенетрантность Валентин Бартенев
On Friday 25 November 2016 10:56:45 Dmitriy M. wrote:
> 25 ноября 2016 г., 10:31 пользователь Dmitriy M.  
> написал:
> > 20 ноября 2016 г., 18:22 пользователь Валентин Бартенев
> >  написал:
> >> On Sunday 20 November 2016 19:17:12 Валентин Бартенев wrote:
> >>> On Sunday 20 November 2016 17:58:45 Dmitriy M. wrote:
> >>> [..]
> >>> >
> >>> > К сожалению, это практически невозможно. Сервису необходимы
> >>> > перечисленные при сборке модули, без них возможности проверки под
> >>> > нагрузкой нет. Способа воспроизведения нет, они происходят
> >>> > неконтролируемо и очень редко (1-2 краша в сутки на ряде разных
> >>> > клонированных сетапов).
> >>> >
> >>> > Могу дополнить, что эти же модули (набор модулей, но да
> >>> > headers-more-nginx-module-84241e4 и libressl были обновлены) были
> >>> > вкомпилены в nginx-1.9.12 , с которым на протяжении более полугода
> >>> > крашей небыло, конфигурация nginx.conf существенно не менялась.
> >>> >
> >>> > Попробую собрать с предыдущими версиями модулей
> >>> > (openresty-headers-more-nginx-module-0c6e05d и libressl-2.3.6) и без
> >>> > оптимизаций кода для дебаггинга.
> >>> > https://www.nginx.com/resources/wiki/start/topics/tutorials/debugging/
> >>>
> >>> То, что модули раньше работали - абсолютно не показатель.  Многие 
> >>> сторонние
> >>> модули славятся тем, что лезут во внутренние структуры nginx, используя их
> >>> не по назначению.  Как результат, такие модули могут поломать nginx при 
> >>> любых
> >>> изменениях в его внутренних механизмах.
> >>>
> >>> Между версией 1.10.1 и 1.10.2 произошли существенные изменения в обработке
> >>> тела запроса в модуле http/2.
> >>>
> >>> Бектрейс, который вы привели - не содержит какой-либо полезной информации
> >>> для дебага.  Ошибка, послужившая причиной падения, произошла в другом 
> >>> месте,
> >>> на другой итерации цикла обработки событий.  А то, что видно на бэктрейсе 
> >>> -
> >>> лишь следствие.
> >>>
> >>> Можно попытаться получить debug-лог перед падением:
> >>> http://nginx.org/ru/docs/debugging_log.html#memory
> >>>
> >>> Смотрите раздел про запись его в буфер в памяти.
> >>>
> >> [..]
> >>
> >> И в дополнение к предыдущему письму, а вы уверены, что у вас
> >> nginx-upload-progress-module вообще с HTTP/2 корректно работает?
> >>
> >> Судя по тому же тикету на github, он и не должен:
> >> https://github.com/masterzen/nginx-upload-progress-module/issues/45
> >>
> >> Интересно также, что вы делаете с помощью headers-more-nginx-module,
> >> что не получается сделать стандартными средствами nginx?
> >>
> >> --
> >> Валентин Бартенев
> >
> > Добрый день, Валентин
> >
> 
> и вдогонку прошлому письму, core номер два, тоже на сетапе без сторонних 
> модулей
> nginx -V
> nginx version: nginx/1.10.2
> built with LibreSSL 2.4.4
> TLS SNI support enabled
> configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
> /usr/local/include' --with-ld-opt='-L /usr/local/lib -lrt'
> --conf-path=/usr/local/etc/nginx/nginx.conf
> --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
> --error-log-path=/var/log/nginx/error.log --user=www --group=www
> --modules-path=/usr/local/libexec/nginx
> --http-client-body-temp-path=/var/tmp/nginx/client_body_temp
> --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
> --http-proxy-temp-path=/var/tmp/nginx/proxy_temp
> --http-scgi-temp-path=/var/tmp/nginx/scgi_temp
> --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp
> --http-log-path=/var/log/nginx/access.log --with-http_realip_module
> --with-http_stub_status_module --with-pcre --with-threads
> --with-http_ssl_module --with-http_v2_module
> --with-openssl=./libressl-2.4.4 --with-debug
> 
> 
> #0  0x004fd0da in ngx_http_v2_write_handler (wev=0x85144f380)
> at src/http/v2/ngx_http_v2.c:435
> 435 ngx_queue_remove(q);
> [New Thread 801c16000 (LWP 100771/)]
> (gdb) i locals
> rc = -2
> q = (ngx_queue_t *) 0x85d2bdcb0
> c = (ngx_connection_t *) 0x84a4b0b80
> stream = (ngx_http_v2_stream_t *) 0x85144f380
> h2c = (ngx_http_v2_connection_t *) 0x853bf7a20
> Current language:  auto; currently minimal
> (gdb) p q
> $1 = (ngx_queue_t *) 0x85d2bdcb0
> (gdb) p *q
> $2 = {prev = 0x39383861

Re: nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-25 Пенетрантность Dmitriy M.
25 ноября 2016 г., 10:31 пользователь Dmitriy M.  написал:
> 20 ноября 2016 г., 18:22 пользователь Валентин Бартенев
>  написал:
>> On Sunday 20 November 2016 19:17:12 Валентин Бартенев wrote:
>>> On Sunday 20 November 2016 17:58:45 Dmitriy M. wrote:
>>> [..]
>>> >
>>> > К сожалению, это практически невозможно. Сервису необходимы
>>> > перечисленные при сборке модули, без них возможности проверки под
>>> > нагрузкой нет. Способа воспроизведения нет, они происходят
>>> > неконтролируемо и очень редко (1-2 краша в сутки на ряде разных
>>> > клонированных сетапов).
>>> >
>>> > Могу дополнить, что эти же модули (набор модулей, но да
>>> > headers-more-nginx-module-84241e4 и libressl были обновлены) были
>>> > вкомпилены в nginx-1.9.12 , с которым на протяжении более полугода
>>> > крашей небыло, конфигурация nginx.conf существенно не менялась.
>>> >
>>> > Попробую собрать с предыдущими версиями модулей
>>> > (openresty-headers-more-nginx-module-0c6e05d и libressl-2.3.6) и без
>>> > оптимизаций кода для дебаггинга.
>>> > https://www.nginx.com/resources/wiki/start/topics/tutorials/debugging/
>>>
>>> То, что модули раньше работали - абсолютно не показатель.  Многие сторонние
>>> модули славятся тем, что лезут во внутренние структуры nginx, используя их
>>> не по назначению.  Как результат, такие модули могут поломать nginx при 
>>> любых
>>> изменениях в его внутренних механизмах.
>>>
>>> Между версией 1.10.1 и 1.10.2 произошли существенные изменения в обработке
>>> тела запроса в модуле http/2.
>>>
>>> Бектрейс, который вы привели - не содержит какой-либо полезной информации
>>> для дебага.  Ошибка, послужившая причиной падения, произошла в другом месте,
>>> на другой итерации цикла обработки событий.  А то, что видно на бэктрейсе -
>>> лишь следствие.
>>>
>>> Можно попытаться получить debug-лог перед падением:
>>> http://nginx.org/ru/docs/debugging_log.html#memory
>>>
>>> Смотрите раздел про запись его в буфер в памяти.
>>>
>> [..]
>>
>> И в дополнение к предыдущему письму, а вы уверены, что у вас
>> nginx-upload-progress-module вообще с HTTP/2 корректно работает?
>>
>> Судя по тому же тикету на github, он и не должен:
>> https://github.com/masterzen/nginx-upload-progress-module/issues/45
>>
>> Интересно также, что вы делаете с помощью headers-more-nginx-module,
>> что не получается сделать стандартными средствами nginx?
>>
>> --
>> Валентин Бартенев
>
> Добрый день, Валентин
>

и вдогонку прошлому письму, core номер два, тоже на сетапе без сторонних модулей
nginx -V
nginx version: nginx/1.10.2
built with LibreSSL 2.4.4
TLS SNI support enabled
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
/usr/local/include' --with-ld-opt='-L /usr/local/lib -lrt'
--conf-path=/usr/local/etc/nginx/nginx.conf
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx/error.log --user=www --group=www
--modules-path=/usr/local/libexec/nginx
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-scgi-temp-path=/var/tmp/nginx/scgi_temp
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp
--http-log-path=/var/log/nginx/access.log --with-http_realip_module
--with-http_stub_status_module --with-pcre --with-threads
--with-http_ssl_module --with-http_v2_module
--with-openssl=./libressl-2.4.4 --with-debug


#0  0x004fd0da in ngx_http_v2_write_handler (wev=0x85144f380)
at src/http/v2/ngx_http_v2.c:435
435 ngx_queue_remove(q);
[New Thread 801c16000 (LWP 100771/)]
(gdb) i locals
rc = -2
q = (ngx_queue_t *) 0x85d2bdcb0
c = (ngx_connection_t *) 0x84a4b0b80
stream = (ngx_http_v2_stream_t *) 0x85144f380
h2c = (ngx_http_v2_connection_t *) 0x853bf7a20
Current language:  auto; currently minimal
(gdb) p q
$1 = (ngx_queue_t *) 0x85d2bdcb0
(gdb) p *q
$2 = {prev = 0x3938386138313962, next = 0x85e7d7cb0}
(gdb) p c
$3 = (ngx_connection_t *) 0x84a4b0b80
(gdb) p *c
$4 = {data = 0x853bf7a20, read = 0x84f44f380, write = 0x85144f380, fd
= 6509, recv = 0x491af0 , send = 0x491db0
, recv_chain = 0x492240 ,
send_chain = 0x4923b0 ,
  listening = 0x801de93d0, sent = 2319718, log = 0x8562a2460, pool =
0x8562a2400, type = 1, sockaddr = 0x8562a2450, socklen = 16, addr_text
= {len = 12, data = 0x8562a24b0 "92.60.186.11\b"}, proxy_protocol_addr
= {len = 0, data = 0x0},
  ssl = 0x8562a2520, local_sockaddr = 0x801c99d28, local_socklen = 16,
buffer = 0x0, queue = {prev = 0x0,

Re: nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-25 Пенетрантность Dmitriy M.
20 ноября 2016 г., 18:22 пользователь Валентин Бартенев
 написал:
> On Sunday 20 November 2016 19:17:12 Валентин Бартенев wrote:
>> On Sunday 20 November 2016 17:58:45 Dmitriy M. wrote:
>> [..]
>> >
>> > К сожалению, это практически невозможно. Сервису необходимы
>> > перечисленные при сборке модули, без них возможности проверки под
>> > нагрузкой нет. Способа воспроизведения нет, они происходят
>> > неконтролируемо и очень редко (1-2 краша в сутки на ряде разных
>> > клонированных сетапов).
>> >
>> > Могу дополнить, что эти же модули (набор модулей, но да
>> > headers-more-nginx-module-84241e4 и libressl были обновлены) были
>> > вкомпилены в nginx-1.9.12 , с которым на протяжении более полугода
>> > крашей небыло, конфигурация nginx.conf существенно не менялась.
>> >
>> > Попробую собрать с предыдущими версиями модулей
>> > (openresty-headers-more-nginx-module-0c6e05d и libressl-2.3.6) и без
>> > оптимизаций кода для дебаггинга.
>> > https://www.nginx.com/resources/wiki/start/topics/tutorials/debugging/
>>
>> То, что модули раньше работали - абсолютно не показатель.  Многие сторонние
>> модули славятся тем, что лезут во внутренние структуры nginx, используя их
>> не по назначению.  Как результат, такие модули могут поломать nginx при любых
>> изменениях в его внутренних механизмах.
>>
>> Между версией 1.10.1 и 1.10.2 произошли существенные изменения в обработке
>> тела запроса в модуле http/2.
>>
>> Бектрейс, который вы привели - не содержит какой-либо полезной информации
>> для дебага.  Ошибка, послужившая причиной падения, произошла в другом месте,
>> на другой итерации цикла обработки событий.  А то, что видно на бэктрейсе -
>> лишь следствие.
>>
>> Можно попытаться получить debug-лог перед падением:
>> http://nginx.org/ru/docs/debugging_log.html#memory
>>
>> Смотрите раздел про запись его в буфер в памяти.
>>
> [..]
>
> И в дополнение к предыдущему письму, а вы уверены, что у вас
> nginx-upload-progress-module вообще с HTTP/2 корректно работает?
>
> Судя по тому же тикету на github, он и не должен:
> https://github.com/masterzen/nginx-upload-progress-module/issues/45
>
> Интересно также, что вы делаете с помощью headers-more-nginx-module,
> что не получается сделать стандартными средствами nginx?
>
> --
> Валентин Бартенев

Добрый день, Валентин

прошу прощения за задержку в ответе - проверяли разные комбинации nginx.

nginx-upload-progress-module и headers-more-nginx-module были у нас в
конфигурации скорее исторически, необходимости в них, как оказалось,
нет.
Поэтому, создали конфигурацию без сторонних модулей , с одной простой
функцией - приём SSL HTTP и проксирование:

# nginx -V
nginx version: nginx/1.10.2
built with LibreSSL 2.4.4
TLS SNI support enabled
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
/usr/local/include' --with-ld-opt='-L /usr/local/lib -lrt'
--conf-path=/usr/local/etc/nginx/nginx.conf
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx/error.log --user=www --group=www
--modules-path=/usr/local/libexec/nginx
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-scgi-temp-path=/var/tmp/nginx/scgi_temp
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp
--http-log-path=/var/log/nginx/access.log --with-http_realip_module
--with-http_stub_status_module --with-pcre --with-threads
--with-http_ssl_module --with-http_v2_module
--with-openssl=../libressl-2.4.4 --with-debug

И nginx продолжает крашится (некоторые приватные данные были заменены на ХХХ):

#0  ngx_http_v2_write_handler (wev=0x851458eb0) at src/http/v2/ngx_http_v2.c:444
444 wev = stream->request->connection->write;
[New Thread 801c16000 (LWP 100649/)]
(gdb) bt
#0  ngx_http_v2_write_handler (wev=0x851458eb0) at src/http/v2/ngx_http_v2.c:444
#1  0x0048cb23 in ngx_kqueue_process_events
(cycle=0x801de9050, timer=213, flags=1) at
src/event/modules/ngx_kqueue_module.c:669
#2  0x0047b3fa in ngx_process_events_and_timers
(cycle=0x801de9050) at src/event/ngx_event.c:242
#3  0x00489b9a in ngx_worker_process_cycle (cycle=0x801de9050,
data=0x1) at src/os/unix/ngx_process_cycle.c:753
#4  0x00486cad in ngx_spawn_process (cycle=0x801de9050,
proc=0x489a90 , data=0x1, name=0x6a6192
"worker process", respawn=-4) at src/os/unix/ngx_process.c:198
#5  0x00488890 in ngx_start_worker_processes
(cycle=0x801de9050, n=8, type=-4) at
src/os/unix/ngx_process_cycle.c:358
#6  0x00488657 in ngx_master_process_cycle (cycle=0x801de9050)
at src/os/unix/ngx_process_cycle.c:243
#

Re: nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-20 Пенетрантность Валентин Бартенев
On Sunday 20 November 2016 19:17:12 Валентин Бартенев wrote:
> On Sunday 20 November 2016 17:58:45 Dmitriy M. wrote:
> [..]
> > 
> > К сожалению, это практически невозможно. Сервису необходимы
> > перечисленные при сборке модули, без них возможности проверки под
> > нагрузкой нет. Способа воспроизведения нет, они происходят
> > неконтролируемо и очень редко (1-2 краша в сутки на ряде разных
> > клонированных сетапов).
> > 
> > Могу дополнить, что эти же модули (набор модулей, но да
> > headers-more-nginx-module-84241e4 и libressl были обновлены) были
> > вкомпилены в nginx-1.9.12 , с которым на протяжении более полугода
> > крашей небыло, конфигурация nginx.conf существенно не менялась.
> > 
> > Попробую собрать с предыдущими версиями модулей
> > (openresty-headers-more-nginx-module-0c6e05d и libressl-2.3.6) и без
> > оптимизаций кода для дебаггинга.
> > https://www.nginx.com/resources/wiki/start/topics/tutorials/debugging/
> 
> То, что модули раньше работали - абсолютно не показатель.  Многие сторонние
> модули славятся тем, что лезут во внутренние структуры nginx, используя их
> не по назначению.  Как результат, такие модули могут поломать nginx при любых 
> изменениях в его внутренних механизмах.
> 
> Между версией 1.10.1 и 1.10.2 произошли существенные изменения в обработке
> тела запроса в модуле http/2.
> 
> Бектрейс, который вы привели - не содержит какой-либо полезной информации
> для дебага.  Ошибка, послужившая причиной падения, произошла в другом месте,
> на другой итерации цикла обработки событий.  А то, что видно на бэктрейсе - 
> лишь следствие.
> 
> Можно попытаться получить debug-лог перед падением:
> http://nginx.org/ru/docs/debugging_log.html#memory
> 
> Смотрите раздел про запись его в буфер в памяти.
> 
[..]

И в дополнение к предыдущему письму, а вы уверены, что у вас 
nginx-upload-progress-module вообще с HTTP/2 корректно работает?

Судя по тому же тикету на github, он и не должен:
https://github.com/masterzen/nginx-upload-progress-module/issues/45

Интересно также, что вы делаете с помощью headers-more-nginx-module,
что не получается сделать стандартными средствами nginx?

--
Валентин Бартенев
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-20 Пенетрантность Валентин Бартенев
On Sunday 20 November 2016 17:58:45 Dmitriy M. wrote:
[..]
> 
> К сожалению, это практически невозможно. Сервису необходимы
> перечисленные при сборке модули, без них возможности проверки под
> нагрузкой нет. Способа воспроизведения нет, они происходят
> неконтролируемо и очень редко (1-2 краша в сутки на ряде разных
> клонированных сетапов).
> 
> Могу дополнить, что эти же модули (набор модулей, но да
> headers-more-nginx-module-84241e4 и libressl были обновлены) были
> вкомпилены в nginx-1.9.12 , с которым на протяжении более полугода
> крашей небыло, конфигурация nginx.conf существенно не менялась.
> 
> Попробую собрать с предыдущими версиями модулей
> (openresty-headers-more-nginx-module-0c6e05d и libressl-2.3.6) и без
> оптимизаций кода для дебаггинга.
> https://www.nginx.com/resources/wiki/start/topics/tutorials/debugging/

То, что модули раньше работали - абсолютно не показатель.  Многие сторонние
модули славятся тем, что лезут во внутренние структуры nginx, используя их
не по назначению.  Как результат, такие модули могут поломать nginx при любых 
изменениях в его внутренних механизмах.

Между версией 1.10.1 и 1.10.2 произошли существенные изменения в обработке
тела запроса в модуле http/2.

Бектрейс, который вы привели - не содержит какой-либо полезной информации
для дебага.  Ошибка, послужившая причиной падения, произошла в другом месте,
на другой итерации цикла обработки событий.  А то, что видно на бэктрейсе - 
лишь следствие.

Можно попытаться получить debug-лог перед падением:
http://nginx.org/ru/docs/debugging_log.html#memory

Смотрите раздел про запись его в буфер в памяти.

--
Валентин Бартенев
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-20 Пенетрантность Dmitriy M.
20 ноября 2016 г., 17:12 пользователь Valentin V. Bartenev
 написал:
> On Sunday 20 November 2016 15:40:11 Dmitriy M. wrote:
> [..]
>> --add-dynamic-module=./headers-more-nginx-module-84241e4
>> --with-http_ssl_module --with-http_v2_module
>> --add-module=./nginx-upload-progress-module-0.9.0u
>> --with-openssl=./libressl-2.4.4
>>
>> OS:  FreeBSD 11.0-STABLE #1 r308689
>>
>>
>> Буду рад помочь в поиске и устранении проблемы (если она еще не
>> устранена в 1.11.*), если нужны дополнительные данные - попробую
>> предоставить.
>>
>> Спасибо!
>>
> [..]
>
> Сперва стоит убедиться в том, что проблема воспроизводится
> без сторонних модулей.
>
> --
> Валентин Бартенев
> ___


К сожалению, это практически невозможно. Сервису необходимы
перечисленные при сборке модули, без них возможности проверки под
нагрузкой нет. Способа воспроизведения нет, они происходят
неконтролируемо и очень редко (1-2 краша в сутки на ряде разных
клонированных сетапов).

Могу дополнить, что эти же модули (набор модулей, но да
headers-more-nginx-module-84241e4 и libressl были обновлены) были
вкомпилены в nginx-1.9.12 , с которым на протяжении более полугода
крашей небыло, конфигурация nginx.conf существенно не менялась.

Попробую собрать с предыдущими версиями модулей
(openresty-headers-more-nginx-module-0c6e05d и libressl-2.3.6) и без
оптимизаций кода для дебаггинга.
https://www.nginx.com/resources/wiki/start/topics/tutorials/debugging/
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-20 Пенетрантность Valentin V. Bartenev
On Sunday 20 November 2016 15:40:11 Dmitriy M. wrote:
[..]
> --add-dynamic-module=./headers-more-nginx-module-84241e4
> --with-http_ssl_module --with-http_v2_module
> --add-module=./nginx-upload-progress-module-0.9.0u
> --with-openssl=./libressl-2.4.4
> 
> OS:  FreeBSD 11.0-STABLE #1 r308689
> 
> 
> Буду рад помочь в поиске и устранении проблемы (если она еще не
> устранена в 1.11.*), если нужны дополнительные данные - попробую
> предоставить.
> 
> Спасибо!
> 
[..]

Сперва стоит убедиться в том, что проблема воспроизводится
без сторонних модулей.

--
Валентин Бартенев
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

nginx/1.10.2 crashes in ngx_http_v2_write_handler

2016-11-20 Пенетрантность Dmitriy M.
Добрый день,

у нас включен HTTP/2, обслуживаются до 2000 req/s и до 300 conn/s в
пике, после обновления OS и nginx до nginx/1.10.2 за несколько суток
получили около 10 крашей с одинаковыми 2мя бектрейсами:

Первый :

#0  0x004a86c4 in ngx_http_v2_write_handler (wev=) at src/http/v2/ngx_http_v2.c:435
435 ngx_queue_remove(q);
[New Thread 801c16000 (LWP 100654/)]
(gdb) bt
#0  0x004a86c4 in ngx_http_v2_write_handler (wev=) at src/http/v2/ngx_http_v2.c:435
#1  0x0046d776 in ngx_kqueue_process_events (cycle=, timer=, flags=0) at
src/event/modules/ngx_kqueue_module.c:669
#2  0x00464ac4 in ngx_process_events_and_timers
(cycle=0x85c1e6050) at src/event/ngx_event.c:242
#3  0x0046bf68 in ngx_worker_process_cycle (cycle=, data=) at
src/os/unix/ngx_process_cycle.c:753
#4  0x0046a616 in ngx_spawn_process (cycle=, proc=, data=,
name=,
respawn=) at src/os/unix/ngx_process.c:198
#5  0x0046b819 in ngx_start_worker_processes (cycle=, n=8, type=-4) at src/os/unix/ngx_process_cycle.c:358
#6  0x0046b638 in ngx_master_process_cycle (cycle=0x85c1e6050)
at src/os/unix/ngx_process_cycle.c:243
#7  0x004481f4 in main (argc=,
argv=) at src/core/nginx.c:367
Current language:  auto; currently minimal
(gdb) fr 0
#0  0x004a86c4 in ngx_http_v2_write_handler (wev=) at src/http/v2/ngx_http_v2.c:435
435 ngx_queue_remove(q);
(gdb) l
430 }
431
432 while (!ngx_queue_empty(&h2c->posted)) {
433 q = ngx_queue_head(&h2c->posted);
434
435 ngx_queue_remove(q);
436
437 stream = ngx_queue_data(q, ngx_http_v2_stream_t, queue);
438
439 stream->handled = 0;
(gdb)


Второй :

#0  ngx_http_v2_write_handler (wev=) at
src/http/v2/ngx_http_v2.c:444
444 wev = stream->request->connection->write;
[New Thread 801c16000 (LWP 100643/)]
(gdb) bt
#0  ngx_http_v2_write_handler (wev=) at
src/http/v2/ngx_http_v2.c:444
#1  0x0046d776 in ngx_kqueue_process_events (cycle=, timer=, flags=0) at
src/event/modules/ngx_kqueue_module.c:669
#2  0x00464ac4 in ngx_process_events_and_timers
(cycle=0x801c8b050) at src/event/ngx_event.c:242
#3  0x0046bf68 in ngx_worker_process_cycle (cycle=, data=) at
src/os/unix/ngx_process_cycle.c:753
#4  0x0046a616 in ngx_spawn_process (cycle=, proc=, data=,
name=,
respawn=) at src/os/unix/ngx_process.c:198
#5  0x0046b819 in ngx_start_worker_processes (cycle=, n=8, type=-3) at src/os/unix/ngx_process_cycle.c:358
#6  0x0046afe5 in ngx_master_process_cycle (cycle=) at src/os/unix/ngx_process_cycle.c:130
#7  0x004481f4 in main (argc=,
argv=) at src/core/nginx.c:367
Current language:  auto; currently minimal
(gdb) fr 0
#0  ngx_http_v2_write_handler (wev=) at
src/http/v2/ngx_http_v2.c:444
444 wev = stream->request->connection->write;
(gdb) l
439 stream->handled = 0;
440
441 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0,
442"run http2 stream %ui", stream->node->id);
443
444 wev = stream->request->connection->write;
445
446 wev->active = 0;
447 wev->ready = 1;
448

В логах ничего кроме:
2016/11/18 01:39:36 [alert] 628#100623: worker process 19425 exited on
signal 11 (core dumped)


Опции сборки (собиралось из исходников):

nginx version: nginx/1.10.2
built by clang 3.8.0 (tags/RELEASE_380/final 262564) (based on LLVM 3.8.0)
built with LibreSSL 2.4.4
TLS SNI support enabled
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
/usr/local/include' --with-ld-opt='-L /usr/local/lib -lrt'
--conf-path=/usr/local/etc/nginx/nginx.conf
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx/error.log --user=www --group=www
--modules-path=/usr/local/libexec/nginx
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-scgi-temp-path=/var/tmp/nginx/scgi_temp
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp
--http-log-path=/var/log/nginx/access.log --with-http_realip_module
--with-http_stub_status_module --with-pcre --with-threads
--add-dynamic-module=./headers-more-nginx-module-84241e4
--with-http_ssl_module --with-http_v2_module
--add-module=./nginx-upload-progress-module-0.9.0u
--with-openssl=./libressl-2.4.4

OS:  FreeBSD 11.0-STABLE #1 r308689


Буду рад помочь в поиске и устранении проблемы (если она еще не
устранена в 1.11.*), если нужны дополнительные данные - попробую
предоставить.

Спасибо!

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

nginx-1.10.2

2016-10-18 Пенетрантность Maxim Dounin
Изменения в nginx 1.10.2  18.10.2016

*) Изменение: при попытке запросить виртуальный сервер, отличающийся от
   согласованного в процессе SSL handshake, теперь возвращается ответ
   "421 Misdirected Request"; это улучшает совместимость с некоторыми
   HTTP/2-клиентами в случае использования клиентских сертификатов.

*) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
   директива http2_body_preread_size позволяет указать размер буфера,
   который будет использоваться до того, как nginx начнёт читать тело.

*) Исправление: при использовании HTTP/2 и директивы
   proxy_request_buffering в рабочем процессе мог произойти segmentation
   fault.

*) Исправление: при использовании HTTP/2 к запросам, передаваемым на
   бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
   если у запроса не было тела.

*) Исправление: при использовании HTTP/2 в логах могли появляться
   сообщения "http request count is zero".

*) Исправление: при использовании директивы sub_filter могло
   буферизироваться больше данных, чем это необходимо; проблема
   появилась в 1.9.4.

*) Исправление: утечки сокетов при использовании HTTP/2.

*) Исправление: при использовании директив "aio threads" и sendfile мог
   возвращаться некорректный ответ; ошибка появилась в 1.9.13.

*) Изменение: совместимость с OpenSSL 1.1.0.


-- 
Maxim Dounin
http://nginx.org/

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