Re: nginx 1.10.2 и sub filter не работает
Спасибо, помогло!! 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 не работает
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 не работает
Всем привет. Захотелось странного :) - перезаписывать в респонзе из файлика, который отдает 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
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
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
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
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
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
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
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
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
Добрый день, у нас включен 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
Изменения в 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