From nginx-forum на forum.nginx.org Thu Sep 8 09:47:24 2022 From: nginx-forum на forum.nginx.org (sunrules) Date: Thu, 08 Sep 2022 05:47:24 -0400 Subject: =?UTF-8?Q?=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0?= =?UTF-8?Q?=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BF=D0=B5=D1?= =?UTF-8?Q?=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=B0=D1=8F=20=D0=BC=D0?= =?UTF-8?Q?=B5=D0=B6=D0=B4=D1=83=20=D1=81=D0=B5=D0=BA=D1=86=D0=B8=D1?= =?UTF-8?Q?=8F=D0=BC=D0=B8=20server?= Message-ID: <2975b9509ad1ec9ffc92d003de4e128f.NginxMailingListRussian@forum.nginx.org> Существует Nginx балансер в нем прописаны несколько бэкендов. На бэках находятся сайты, к которым можно обратиться, указав в части url определенную аббревиатуру. По сути, это отдельные сайты со своими собственными именами. Задача, на балансере нужно настроить возможность отправлять запрос на нужный сайт бэкенда в зависимости от получаемого url. В моей конфигурации есть проблема, я пытаюсь задать пользовательскую переменную в Nginx на балансере, которая содержит в себе эту аббревиатуру (которую нужно использовать в url для бэков) в одной секции server и передать ее в другую секцию server, все это в одном конфигурационном файле. На мой взгляд данное решение самое простое, но похоже такой способ в Nginx не работает. В итоге переменная ничего не отдает, то есть данные из секции в секцию не передаются. В логах: http://.site.back1.example.org ### Balancing server { listen 80; server_name "~(?[a-z0-9\-\.]+)\.site\.example\.org$"; set $site_release $release; location / { proxy_http_version 1.1; proxy_pass http://upstr_release_site_XXXX_X/; } } ### Backend server { listen unix:/tmp/nginx/nginx_release_XXXX_X.site.back1.socket; access_log off; location / { proxy_http_version 1.1; proxy_pass http://$site_release.site.back1.example.org/; } } Подскажите пожалуйста, какое решение можно применить в данном случае? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295146,295146#msg-295146 From raven_kg на megaline.kg Thu Sep 8 09:57:33 2022 From: raven_kg на megaline.kg (raven_kg на megaline.kg) Date: Thu, 8 Sep 2022 15:57:33 +0600 Subject: =?UTF-8?B?UmU6INCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQsNGPINC/0LU=?= =?UTF-8?B?0YDQtdC80LXQvdC90LDRjyDQvNC10LbQtNGDINGB0LXQutGG0LjRj9C80Lggc2Vy?= =?UTF-8?Q?ver?= In-Reply-To: <2975b9509ad1ec9ffc92d003de4e128f.NginxMailingListRussian@forum.nginx.org> References: <2975b9509ad1ec9ffc92d003de4e128f.NginxMailingListRussian@forum.nginx.org> Message-ID: <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> 08.09.2022 15:47, sunrules пишет: > Существует Nginx балансер в нем прописаны несколько бэкендов. > На бэках находятся сайты, к которым можно обратиться, указав в части url > определенную аббревиатуру. По сути, это отдельные сайты со своими > собственными именами. > Задача, на балансере нужно настроить возможность отправлять запрос на нужный > сайт бэкенда в зависимости от получаемого url. > В моей конфигурации есть проблема, я пытаюсь задать пользовательскую > переменную в Nginx на балансере, которая содержит в себе эту аббревиатуру > (которую нужно использовать в url для бэков) в одной секции server и > передать ее в другую секцию server, все это в одном конфигурационном файле. > На мой взгляд данное решение самое простое, но похоже такой способ в Nginx > не работает. В итоге переменная ничего не отдает, то есть данные из секции в > секцию не передаются. > В логах: http://.site.back1.example.org > > ### Balancing > server { > listen 80; > server_name "~(?[a-z0-9\-\.]+)\.site\.example\.org$"; > set $site_release $release; > location / { > proxy_http_version 1.1; > proxy_pass http://upstr_release_site_XXXX_X/; > } > } > > ### Backend > server { > listen unix:/tmp/nginx/nginx_release_XXXX_X.site.back1.socket; > access_log off; > location / { > proxy_http_version 1.1; > proxy_pass http://$site_release.site.back1.example.org/; > } > } > > Подскажите пожалуйста, какое решение можно применить в данном случае? > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295146,295146#msg-295146 > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org Я бы покурил в сторону map. Пример с коленки, не уверен в 100% работоспособности, но я бы опробовал что-то типа: map $host $backend {     default localhost;      "~(?[a-z0-9\-\.]+)\.site\.example\.org$" $release.site.back1.example.org/; } ... proxy_pass http://$upstream; From raven_kg на megaline.kg Thu Sep 8 10:03:22 2022 From: raven_kg на megaline.kg (raven_kg на megaline.kg) Date: Thu, 8 Sep 2022 16:03:22 +0600 Subject: =?UTF-8?B?UmU6INCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQsNGPINC/0LU=?= =?UTF-8?B?0YDQtdC80LXQvdC90LDRjyDQvNC10LbQtNGDINGB0LXQutGG0LjRj9C80Lggc2Vy?= =?UTF-8?Q?ver?= In-Reply-To: <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> References: <2975b9509ad1ec9ffc92d003de4e128f.NginxMailingListRussian@forum.nginx.org> <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> Message-ID: <8a55a5ca-cbc1-d00d-3716-2c045d6af483@megaline.kg> 08.09.2022 15:57, raven_kg на megaline.kg пишет: > proxy_pass http://$upstream; прошу прощения, сам запутался в переменных 😁 Тут должно быть http://$backend From nginx-forum на forum.nginx.org Fri Sep 9 07:46:26 2022 From: nginx-forum на forum.nginx.org (sunrules) Date: Fri, 09 Sep 2022 03:46:26 -0400 Subject: =?UTF-8?Q?Re:=20=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1?= =?UTF-8?Q?=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BF=D0?= =?UTF-8?Q?=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=B0=D1=8F=20=D0?= =?UTF-8?Q?=BC=D0=B5=D0=B6=D0=B4=D1=83=20=D1=81=D0=B5=D0=BA=D1=86=D0?= =?UTF-8?Q?=B8=D1=8F=D0=BC=D0=B8=20server?= In-Reply-To: <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> References: <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> Message-ID: <8680b28bdc47e247b21cb1ab3454ffc3.NginxMailingListRussian@forum.nginx.org> Попробовал map, к сожалению, все тоже самое. В основную секцию server, в которой определяется server_name, пользовательская переменная передает нужное значение, что получаем из map, но если эту переменную прописать в секцию server, где описываются бэкенды, то результат - пустое значение. Причем, если в map определить значение глобальной переменной, а не той строчкой с регуляркой, то тогда в секцию бэкенда значение передается, то есть все это работает, но с какими-то странностями. Версия Nginx 1.13, такую используем по определенным причинам. Ради эксперимента хочу проверить это в более новой версии Nginx. Если есть у кого-нибудь мысли, почему такое поведение, буду признателен. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295146,295162#msg-295162 From mdounin на mdounin.ru Sat Sep 10 17:16:39 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 10 Sep 2022 20:16:39 +0300 Subject: =?koi8-r?B?8M/M2NrP18HUxczY08vB0SDQ?= =?koi8-r?B?xdLFzcXOzsHRIM3F1sTVINPFy8PJ0c3J?= server In-Reply-To: <8680b28bdc47e247b21cb1ab3454ffc3.NginxMailingListRussian@forum.nginx.org> References: <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> <8680b28bdc47e247b21cb1ab3454ffc3.NginxMailingListRussian@forum.nginx.org> Message-ID: Hello! On Fri, Sep 09, 2022 at 03:46:26AM -0400, sunrules wrote: > Попробовал map, к сожалению, все тоже самое. В основную секцию server, в > которой определяется server_name, пользовательская переменная передает > нужное значение, что получаем из map, но если эту переменную прописать в > секцию server, где описываются бэкенды, то результат - пустое значение. > Причем, если в map определить значение глобальной переменной, а не той > строчкой с регуляркой, то тогда в секцию бэкенда значение передается, то > есть все это работает, но с какими-то странностями. > Версия Nginx 1.13, такую используем по определенным причинам. > Ради эксперимента хочу проверить это в более новой версии Nginx. > Если есть у кого-нибудь мысли, почему такое поведение, буду признателен. Переменные - это свойство _запроса_. Если вы запрос куда-то проксируете, пусть даже на тот же самый nginx, они на проксируемый сервер магически не попадут, там будет новый запрос и новые переменные. Если хотите что-то передать на проксируемый сервер - делайте это явно. Один из наиболее простых способов - добавить в запрос на проксируемый сервер специальный заголовок с помощью директивы proxy_set_header, а потом, соответственно, на проксируемом сервере получить значение этого заголовка с помощью переменной $http_*. То есть в вашем случае как-то так: proxy_set_header X-Site-Release $site_release; и далее на проксиремом сервере: proxy_pass http://$http_x_site_release.site.back1.example.org/; Подробнее тут: http://nginx.org/r/proxy_set_header/ru http://nginx.org/r/$http_/ru -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Mon Sep 12 10:37:52 2022 From: nginx-forum на forum.nginx.org (sunrules) Date: Mon, 12 Sep 2022 06:37:52 -0400 Subject: =?UTF-8?Q?Re:=20=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1?= =?UTF-8?Q?=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BF=D0?= =?UTF-8?Q?=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=B0=D1=8F=20=D0?= =?UTF-8?Q?=BC=D0=B5=D0=B6=D0=B4=D1=83=20=D1=81=D0=B5=D0=BA=D1=86=D0?= =?UTF-8?Q?=B8=D1=8F=D0=BC=D0=B8=20server?= In-Reply-To: <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> References: <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> Message-ID: <9650cba720f6a4ac01fd60ca7621c8c8.NginxMailingListRussian@forum.nginx.org> Всем спасибо за помощь, Ваши советы реально помогли с моей задачей, конфигурация все-таки заработала. Выкладываю пример, может кому-то пригодится: #----------------------------------------------- upstream upstr_release_XXXX_X { ### Конфигурация балансировки. . . . } ### Конфигурация бэкендов, в данном случае их 3. server { listen unix:/tmp/nginx/nginx_release_XXXX_X.example1.org.socket; access_log off; location / { resolver 8.8.8.8 valid=30s; #Если сайт внутри сети нужно указать IP intranet DNS серверов resolver_timeout 5s; proxy_http_version 1.1; proxy_pass http://$backend.example1.org; proxy_set_header Host $backend.example1.org; } } server { listen unix:/tmp/nginx/nginx_release_XXXX_X.example2.org.socket; access_log off; location / { resolver 8.8.8.8 valid=30s; resolver_timeout 5s; proxy_http_version 1.1; proxy_pass http://$backend.example2.org; proxy_set_header Host $backend.example2.org; } } server { listen unix:/tmp/nginx/nginx_release_XXXX_X.example3.org.socket; access_log off; location / { resolver 8.8.8.8 valid=30s; resolver_timeout 5s; proxy_http_version 1.1; proxy_pass http://$backend.example3.org; proxy_set_header Host $backend.example3.org; } } #Определение префикса для подстановки его в имя сайта для бэкендов map $http_host $backend { default $http_host; "~^(?[a-z0-9\-\.]+)\.example\.org$" $release; } ### Точка входа на балансере. server { listen example.org:80; server_name "~^(?[a-z0-9\-\.]+)\.example\.org$"; access_log /usr/local/nginx/logs/nginx_release_XXXX_X.example.org.log; error_log /usr/local/nginx/logs/nginx_release_XXXX_X.example.org.error.log; location / { proxy_http_version 1.1; proxy_pass http://upstr_release_XXXX_X/; proxy_set_header Host $http_host; } } #--------------------------------------------- На бэкендах в конфигурации тоже фильтруется префикс и в зависимости от него в локации определяется физический путь к файлам сайта. Данная конфигурация удобна для разработки, например, если версия сайта часто обновляется, то достаточно только развернуть новую локацию на бэкендах и новый релиз сайта будет доступен, соответственно в имени сайта нужно изменить имя релиза. Например релиз называется так: release-2022.1 В этом случае единая точка входа на балансере будет выглядеть так: release-2022.1.example.org Локация на бэкендах будет такая: /release-2022.1 Пример конфигурации бэкенда: #-------------------------------- server { server_name "~(?[a-z0-9\-\.]+)\.example1\.org$"; # subdomains processing if ($release = 'trunk') { set $root_folder trunk; } if ($release != 'trunk') { set $root_folder branches/$release; } if (!-d /usr/local/www/site/$root_folder) { return 404; break; } .... #-------------------------------- Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295146,295175#msg-295175 From rogat1y на gmail.com Mon Sep 12 12:06:35 2022 From: rogat1y на gmail.com (Maxim K) Date: Mon, 12 Sep 2022 15:06:35 +0300 Subject: =?UTF-8?B?UmU6INCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQsNGPINC/0LXRgNC10LzQtdC9?= =?UTF-8?B?0L3QsNGPINC80LXQttC00YMg0YHQtdC60YbQuNGP0LzQuCBzZXJ2ZXI=?= In-Reply-To: <9650cba720f6a4ac01fd60ca7621c8c8.NginxMailingListRussian@forum.nginx.org> References: <03732e08-632f-181f-811e-acd5eb26037a@megaline.kg> <9650cba720f6a4ac01fd60ca7621c8c8.NginxMailingListRussian@forum.nginx.org> Message-ID: Выносите эти условия в map вместо if ($release = 'trunk') { set $root_folder trunk; } if ($release != 'trunk') { set $root_folder branches/$release; } вот так map $release $root_folder { trunk trunk; default branches/$release; } пн, 12 сент. 2022 г. в 13:40, sunrules : > Всем спасибо за помощь, Ваши советы реально помогли с моей задачей, > конфигурация все-таки заработала. > Выкладываю пример, может кому-то пригодится: > #----------------------------------------------- > upstream upstr_release_XXXX_X { > ### Конфигурация балансировки. > . > . > . > } > > ### Конфигурация бэкендов, в данном случае их 3. > server { > listen unix:/tmp/nginx/nginx_release_XXXX_X.example1.org.socket; > access_log off; > location / { > resolver 8.8.8.8 valid=30s; #Если сайт внутри сети нужно указать IP > intranet DNS серверов > resolver_timeout 5s; > proxy_http_version 1.1; > proxy_pass http://$backend.example1.org; > proxy_set_header Host $backend.example1.org; > } > } > > server { > listen unix:/tmp/nginx/nginx_release_XXXX_X.example2.org.socket; > access_log off; > location / { > resolver 8.8.8.8 valid=30s; > resolver_timeout 5s; > proxy_http_version 1.1; > proxy_pass http://$backend.example2.org; > proxy_set_header Host $backend.example2.org; > } > } > > server { > listen unix:/tmp/nginx/nginx_release_XXXX_X.example3.org.socket; > access_log off; > location / { > resolver 8.8.8.8 valid=30s; > resolver_timeout 5s; > proxy_http_version 1.1; > proxy_pass http://$backend.example3.org; > proxy_set_header Host $backend.example3.org; > } > } > > #Определение префикса для подстановки его в имя сайта для бэкендов > map $http_host $backend { > default $http_host; > "~^(?[a-z0-9\-\.]+)\.example\.org$" $release; > } > > ### Точка входа на балансере. > server { > listen example.org:80; > server_name "~^(?[a-z0-9\-\.]+)\.example\.org$"; > > access_log /usr/local/nginx/logs/nginx_release_XXXX_X.example.org.log; > error_log > /usr/local/nginx/logs/nginx_release_XXXX_X.example.org.error.log; > > location / { > proxy_http_version 1.1; > proxy_pass http://upstr_release_XXXX_X/; > proxy_set_header Host $http_host; > } > } > #--------------------------------------------- > > На бэкендах в конфигурации тоже фильтруется префикс и в зависимости от него > в локации определяется физический путь к файлам сайта. > Данная конфигурация удобна для разработки, например, если версия сайта > часто > обновляется, то достаточно только развернуть новую локацию на бэкендах и > новый релиз сайта будет доступен, соответственно в имени сайта нужно > изменить имя релиза. > Например релиз называется так: release-2022.1 > В этом случае единая точка входа на балансере будет выглядеть так: > release-2022.1.example.org > Локация на бэкендах будет такая: /release-2022.1 > > Пример конфигурации бэкенда: > #-------------------------------- > server { > server_name "~(?[a-z0-9\-\.]+)\.example1\.org$"; > > # subdomains processing > if ($release = 'trunk') { > set $root_folder trunk; > } > if ($release != 'trunk') { > set $root_folder branches/$release; > } > > if (!-d /usr/local/www/site/$root_folder) { > return 404; > break; > } > .... > #-------------------------------- > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,295146,295175#msg-295175 > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Mon Sep 12 13:11:43 2022 From: nginx-forum на forum.nginx.org (sunrules) Date: Mon, 12 Sep 2022 09:11:43 -0400 Subject: =?UTF-8?Q?Re:=20=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1?= =?UTF-8?Q?=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BF=D0?= =?UTF-8?Q?=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=B0=D1=8F=20=D0?= =?UTF-8?Q?=BC=D0=B5=D0=B6=D0=B4=D1=83=20=D1=81=D0=B5=D0=BA=D1=86=D0?= =?UTF-8?Q?=B8=D1=8F=D0=BC=D0=B8=20server?= In-Reply-To: References: Message-ID: Все верно подмечено, так и сделаю, это была рабочая конфигурация на бэкендах, к сожалению map тогда не использовал. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295146,295177#msg-295177 From igor.bliss на gmail.com Mon Sep 12 13:28:24 2022 From: igor.bliss на gmail.com (Igor Savenko) Date: Mon, 12 Sep 2022 16:28:24 +0300 Subject: =?UTF-8?B?0J7RgtGB0YPRgtGB0YLQstGD0LXRgiDQt9Cw0L/RgNC+0YEg0LIgYWNjZXNzINC70L7Qsw==?= =?UTF-8?B?0LU=?= Message-ID: Добрый день. Nginx в качестве прокси сервера, в логе наблюдается вот такие странные записи: 1.2.3.4 - - [08/Sep/2022:23:10:33 +0300] "-" 000 0 domain.org " https://domain.org/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" , то есть request path, status code и body size по нулям (ip адрес запроса и домен/реферер заменены на нейтральные, они никакой смысловой нагрузки не несут). Проксирование на nginx 1.19 + php-fpm, вот такая конфигурация, но имеем то, что имеем. Есть мысли, как такое может получиться? ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Mon Sep 12 16:10:10 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 12 Sep 2022 19:10:10 +0300 Subject: =?koi8-r?B?79TT1dTT1NfVxdQg2sHQ0s/T?= =?koi8-r?B?INcgYWNjZXNzIMzPx8U=?= In-Reply-To: References: Message-ID: Hello! On Mon, Sep 12, 2022 at 04:28:24PM +0300, Igor Savenko wrote: > Добрый день. Nginx в качестве прокси сервера, в логе наблюдается вот такие > странные записи: > 1.2.3.4 - - [08/Sep/2022:23:10:33 +0300] "-" 000 0 domain.org " > https://domain.org/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" , > то есть request path, status code и body size по нулям (ip адрес запроса и > домен/реферер заменены на нейтральные, они никакой смысловой нагрузки не > несут). Проксирование на nginx 1.19 + php-fpm, вот такая конфигурация, но > имеем то, что имеем. Есть мысли, как такое может получиться? Какой при этом log_format в конфиге? -- Maxim Dounin http://mdounin.ru/ From igor.bliss на gmail.com Mon Sep 12 16:40:16 2022 From: igor.bliss на gmail.com (Igor Savenko) Date: Mon, 12 Sep 2022 19:40:16 +0300 Subject: =?UTF-8?B?UmU6INCe0YLRgdGD0YLRgdGC0LLRg9C10YIg0LfQsNC/0YDQvtGBINCyIGFjY2VzcyDQuw==?= =?UTF-8?B?0L7Qs9C1?= In-Reply-To: References: Message-ID: Прокси-сервер, с которого строчка лога log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent $host "$http_referer" ' '"$http_user_agent"'; access_log /var/log/nginx/access.log main; Application-server, который за прокси-сервером: access_log /var/log/nginx/access.log combined buffer=4k flush=5m; пн, 12 сент. 2022 г. в 19:11, Maxim Dounin : > Hello! > > On Mon, Sep 12, 2022 at 04:28:24PM +0300, Igor Savenko wrote: > > > Добрый день. Nginx в качестве прокси сервера, в логе наблюдается вот > такие > > странные записи: > > 1.2.3.4 - - [08/Sep/2022:23:10:33 +0300] "-" 000 0 domain.org " > > https://domain.org/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) > > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" , > > то есть request path, status code и body size по нулям (ip адрес запроса > и > > домен/реферер заменены на нейтральные, они никакой смысловой нагрузки не > > несут). Проксирование на nginx 1.19 + php-fpm, вот такая конфигурация, но > > имеем то, что имеем. Есть мысли, как такое может получиться? > > Какой при этом log_format в конфиге? > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From igor.bliss на gmail.com Mon Sep 12 16:42:25 2022 From: igor.bliss на gmail.com (Igor Savenko) Date: Mon, 12 Sep 2022 19:42:25 +0300 Subject: =?UTF-8?B?UmU6INCe0YLRgdGD0YLRgdGC0LLRg9C10YIg0LfQsNC/0YDQvtGBINCyIGFjY2VzcyDQuw==?= =?UTF-8?B?0L7Qs9C1?= In-Reply-To: References: Message-ID: К сожалению, логи с application сервера, относящиеся к данному событию, были ротированы и/или удалены, поэтому непонятно, что там случилось. пн, 12 сент. 2022 г. в 16:28, Igor Savenko : > Добрый день. Nginx в качестве прокси сервера, в логе наблюдается вот такие > странные записи: > 1.2.3.4 - - [08/Sep/2022:23:10:33 +0300] "-" 000 0 domain.org " > https://domain.org/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" , > то есть request path, status code и body size по нулям (ip адрес запроса и > домен/реферер заменены на нейтральные, они никакой смысловой нагрузки не > несут). Проксирование на nginx 1.19 + php-fpm, вот такая конфигурация, но > имеем то, что имеем. Есть мысли, как такое может получиться? > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Mon Sep 12 21:03:08 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 13 Sep 2022 00:03:08 +0300 Subject: =?koi8-r?B?79TT1dTT1NfVxdQg2sHQ0s/T?= =?koi8-r?B?INcgYWNjZXNzIMzPx8U=?= In-Reply-To: References: Message-ID: Hello! On Mon, Sep 12, 2022 at 07:40:16PM +0300, Igor Savenko wrote: > Прокси-сервер, с которого строчка лога > log_format main '$remote_addr - $remote_user [$time_local] "$request" > ' > '$status $body_bytes_sent $host "$http_referer" ' > '"$http_user_agent"'; > > access_log /var/log/nginx/access.log main; > > Application-server, который за прокси-сервером: > > access_log /var/log/nginx/access.log combined buffer=4k flush=5m; HTTP/2 включён? Такое может быть, если клиент начинает присылать заголовки запроса в нескольких фреймах по HTTP/2-соединению, но не досылает их, а шлёт какой-то мусор или просто закрывает соединение. В логе ошибок при этом будет что-то вроде "client sent inappropriate frame while CONTINUATION was expected while processing HTTP/2 connection" или "client prematurely closed connection while processing HTTP/2 connection" на уровне info. [...] -- Maxim Dounin http://mdounin.ru/ From igor.bliss на gmail.com Tue Sep 13 10:07:29 2022 From: igor.bliss на gmail.com (Igor Savenko) Date: Tue, 13 Sep 2022 13:07:29 +0300 Subject: =?UTF-8?B?UmU6INCe0YLRgdGD0YLRgdGC0LLRg9C10YIg0LfQsNC/0YDQvtGBINCyIGFjY2VzcyDQuw==?= =?UTF-8?B?0L7Qs9C1?= In-Reply-To: References: Message-ID: Большое спасибо! Да, включен http/2 и на прокси, и на application сервере. Но если бы имела место ситуация с закрытием соединения, то прокси должен был бы ругаться в логах первым, а у прокси в error.log все чисто. На application сервере включен rate limit, и я где-то читал, что в старых версиях nginx мог отдавать в логе нули если запросы попали под rate-лимитирование. Воспроизвести, однако, пока не удалось -- ожидаемо отдавался код 503. вт, 13 сент. 2022 г. в 00:04, Maxim Dounin : > Hello! > > On Mon, Sep 12, 2022 at 07:40:16PM +0300, Igor Savenko wrote: > > > Прокси-сервер, с которого строчка лога > > log_format main '$remote_addr - $remote_user [$time_local] > "$request" > > ' > > '$status $body_bytes_sent $host "$http_referer" ' > > '"$http_user_agent"'; > > > > access_log /var/log/nginx/access.log main; > > > > Application-server, который за прокси-сервером: > > > > access_log /var/log/nginx/access.log combined buffer=4k flush=5m; > > HTTP/2 включён? > > Такое может быть, если клиент начинает присылать заголовки запроса > в нескольких фреймах по HTTP/2-соединению, но не досылает их, а > шлёт какой-то мусор или просто закрывает соединение. > > В логе ошибок при этом будет что-то вроде "client sent > inappropriate frame while CONTINUATION was expected while > processing HTTP/2 connection" или "client prematurely closed > connection while processing HTTP/2 connection" на уровне info. > > [...] > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Tue Sep 13 20:29:53 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 13 Sep 2022 23:29:53 +0300 Subject: =?koi8-r?B?79TT1dTT1NfVxdQg2sHQ0s/T?= =?koi8-r?B?INcgYWNjZXNzIMzPx8U=?= In-Reply-To: References: Message-ID: Hello! On Tue, Sep 13, 2022 at 01:07:29PM +0300, Igor Savenko wrote: > Большое спасибо! Да, включен http/2 и на прокси, и на application сервере. > Но если бы имела место ситуация с закрытием соединения, то прокси должен > был бы ругаться в логах первым, а у прокси в error.log все чисто. На > application сервере включен rate limit, и я где-то читал, что в старых > версиях nginx мог отдавать в логе нули если запросы попали под > rate-лимитирование. Воспроизвести, однако, пока не удалось -- ожидаемо > отдавался код 503. Судя по пустому значению $request - заголовки запроса ещё не получены от клиента, соответственно до application-сервера такой запрос точно ещё не дошёл. Смотреть имеет смысл только и исключительно на proxy, с которого access-лог. Если в error.log на proxy-сервере при этом всё чисто, то я бы начал с проверки установленного уровня логгирования ошибок. Обсуждаемые сообщения должны быть на уровне info, то есть они достаточно низкоуровневые. Вероятнее всего уровень логгирования установлен выше, и сообщения на уровне info туда просто не попадают. -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Fri Sep 16 10:18:53 2022 From: nginx-forum на forum.nginx.org (opan) Date: Fri, 16 Sep 2022 06:18:53 -0400 Subject: =?UTF-8?Q?msec=20=D0=B2=20=D0=B7=D0=B0=D0=B3=D0=BE=D0=BB=D0=BE=D0=B2?= =?UTF-8?Q?=D0=BA=D0=B5?= Message-ID: <735d120f36e56472281575692df96525.NginxMailingListRussian@forum.nginx.org> Всем привет. Проксируя запросы на fastcgi-бекенд, передаем в одном из заголовков $msec. При этом приложение, сравнивая время, полученное в заголовке, и настоящее для него, дает аномальный дифф - до 40мс внутри локалки, а иногда и отрицательное, до -5мс. Внутри локальной сети пакеты бегают быстро - от 1 до 7мс, resolver_timeout не задан, ntp на сервере с nginx и бекенде синхронизирован (разница с ntp-сервером на каждом из серверов в пределах 1мс). Пытаемся разобраться и возник вопрос, какое время в таком случае (при прокидывании в заголовке) показывает $msec? Момент получения запроса от клиента , момент коннекшна к бекенду, момент соединения с бекендом или еще какое-то? Ниже конфигурация локейшна с этой проблемой: location = /xxxxx { uninitialized_variable_warn off; set $max_chunk_size 10240; set $max_body_size 524288; rewrite_by_lua_file /etc/nginx/inflate_body.lua; client_body_buffer_size 512k; fastcgi_pass xxxxx_all; fastcgi_keep_conn on; fastcgi_next_upstream off; fastcgi_pass_request_headers off; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param HTTPS $https if_not_empty; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REQUEST_RECEIVED_TIME $msec; fastcgi_param REQUEST_URI $request_uri; fastcgi_param QUERY_STRING $query_string if_not_empty; fastcgi_param HTTP_REFERER $http_referer if_not_empty; fastcgi_param USER_AGENT $http_user_agent if_not_empty; fastcgi_param HTTP_COOKIE $http_cookie if_not_empty; fastcgi_connect_timeout 20ms; fastcgi_read_timeout 75ms; fastcgi_intercept_errors on; error_page 500 501 502 503 504 = $failover; error_log syslog:server=unix:/var/log/nginx_log_socket,facility=local7,tag=log_err,severity=info notice; access_log syslog:server=unix:/var/log/nginx_log_socket,facility=local7,tag=log_acc,severity=info xxxx; } Буду рад советам, спасибо. -- Олег Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295224,295224#msg-295224 From pluknet на nginx.com Fri Sep 16 11:58:07 2022 From: pluknet на nginx.com (Sergey Kandaurov) Date: Fri, 16 Sep 2022 15:58:07 +0400 Subject: =?utf-8?B?UmU6IG1zZWMg0LIg0LfQsNCz0L7Qu9C+0LLQutC1?= In-Reply-To: <735d120f36e56472281575692df96525.NginxMailingListRussian@forum.nginx.org> References: <735d120f36e56472281575692df96525.NginxMailingListRussian@forum.nginx.org> Message-ID: <7137043E-B2BD-4182-823D-721BEC7715F4@nginx.com> > On 16 Sep 2022, at 14:18, opan wrote: > > Всем привет. > > > Проксируя запросы на fastcgi-бекенд, передаем в одном из заголовков $msec. > При этом приложение, сравнивая время, полученное в заголовке, и настоящее > для него, дает аномальный дифф - до 40мс внутри локалки, а иногда и > отрицательное, до -5мс. > > Внутри локальной сети пакеты бегают быстро - от 1 до 7мс, resolver_timeout > не задан, ntp на сервере с nginx и бекенде синхронизирован (разница с > ntp-сервером на каждом из серверов в пределах 1мс). > > Пытаемся разобраться и возник вопрос, какое время в таком случае (при > прокидывании в заголовке) показывает $msec? Момент получения запроса от > клиента , момент коннекшна к бекенду, момент соединения с бекендом или еще > какое-то? > > Ниже конфигурация локейшна с этой проблемой: > > > location = /xxxxx { > uninitialized_variable_warn off; > > set $max_chunk_size 10240; > set $max_body_size 524288; > rewrite_by_lua_file /etc/nginx/inflate_body.lua; > client_body_buffer_size 512k; > > fastcgi_pass xxxxx_all; > fastcgi_keep_conn on; > fastcgi_next_upstream off; > fastcgi_pass_request_headers off; > fastcgi_buffers 16 16k; > fastcgi_buffer_size 32k; > > fastcgi_param REQUEST_METHOD $request_method; > fastcgi_param CONTENT_TYPE $content_type; > fastcgi_param HTTPS $https if_not_empty; > fastcgi_param REMOTE_ADDR $remote_addr; > fastcgi_param REQUEST_RECEIVED_TIME $msec; [..] Переменная вычисляется при формировании заголовков запроса на бэкенд. Это происходит после вычитывания всех заголовков клиентского запроса и перед первой попыткой установки соединения с бэкендом. -- Sergey Kandaurov From igor.bliss на gmail.com Fri Sep 16 12:46:41 2022 From: igor.bliss на gmail.com (Igor Savenko) Date: Fri, 16 Sep 2022 15:46:41 +0300 Subject: =?UTF-8?B?UmU6INCe0YLRgdGD0YLRgdGC0LLRg9C10YIg0LfQsNC/0YDQvtGBINCyIGFjY2VzcyDQuw==?= =?UTF-8?B?0L7Qs9C1?= In-Reply-To: References: Message-ID: Большое пролетарское спасибо, Максим! Судя по всему, виновником ситуации был недостаточный размер значения http2_max_field_size директивы (client exceeded http2_max_field_size limit while processing HTTP/2 connection). После того, как удвоили значение (до 8к), статус 000 исчез в логе прокси. Судя по всему, это CloudFlare шлет такие заголовки, но без понижения уровня логгирования понять это было затруднительно. вт, 13 сент. 2022 г. в 23:31, Maxim Dounin : > Hello! > > On Tue, Sep 13, 2022 at 01:07:29PM +0300, Igor Savenko wrote: > > > Большое спасибо! Да, включен http/2 и на прокси, и на application > сервере. > > Но если бы имела место ситуация с закрытием соединения, то прокси должен > > был бы ругаться в логах первым, а у прокси в error.log все чисто. На > > application сервере включен rate limit, и я где-то читал, что в старых > > версиях nginx мог отдавать в логе нули если запросы попали под > > rate-лимитирование. Воспроизвести, однако, пока не удалось -- ожидаемо > > отдавался код 503. > > Судя по пустому значению $request - заголовки запроса ещё не > получены от клиента, соответственно до application-сервера такой > запрос точно ещё не дошёл. Смотреть имеет смысл только и > исключительно на proxy, с которого access-лог. > > Если в error.log на proxy-сервере при этом всё чисто, то я бы > начал с проверки установленного уровня логгирования ошибок. > Обсуждаемые сообщения должны быть на уровне info, то есть они > достаточно низкоуровневые. Вероятнее всего уровень логгирования > установлен выше, и сообщения на уровне info туда просто не > попадают. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Fri Sep 16 22:57:23 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 17 Sep 2022 01:57:23 +0300 Subject: msec =?koi8-r?B?1yDawcfPzM/Xy8U=?= In-Reply-To: <735d120f36e56472281575692df96525.NginxMailingListRussian@forum.nginx.org> References: <735d120f36e56472281575692df96525.NginxMailingListRussian@forum.nginx.org> Message-ID: Hello! On Fri, Sep 16, 2022 at 06:18:53AM -0400, opan wrote: > Проксируя запросы на fastcgi-бекенд, передаем в одном из заголовков $msec. > При этом приложение, сравнивая время, полученное в заголовке, и настоящее > для него, дает аномальный дифф - до 40мс внутри локалки, а иногда и > отрицательное, до -5мс. > > Внутри локальной сети пакеты бегают быстро - от 1 до 7мс, resolver_timeout > не задан, ntp на сервере с nginx и бекенде синхронизирован (разница с > ntp-сервером на каждом из серверов в пределах 1мс). > > Пытаемся разобраться и возник вопрос, какое время в таком случае (при > прокидывании в заголовке) показывает $msec? Момент получения запроса от > клиента , момент коннекшна к бекенду, момент соединения с бекендом или еще > какое-то? Как уже ответил Сергей, время - на момент формирования заголовков запроса к бэкенду, то есть после получения клиентского запроса, но до попыток установления соединения с бэкендом (и до резолвинга, но в вашем случае его вроде как быть не должно). Но тут ещё важно учитывать, что время в nginx'е обновляется только в начале каждой итерации цикла обработки событий, в момент получения из ядра очередной порции событий. Соответственно если какой-то из обрабатываемых в той же итерации запросов пошёл, например, на диск - он может легко задержать обработку миллисекунд на десять (ибо seek time), а если таких запросов будет два - то и на все двадцать, и так далее. То же относится и к другим блокирующимся операциям. Всё это может давать достаточно большую положительную разницу с текущим временем в приложении, даже если собственно установление соединения и отправка конкретного запроса произошла быстро. Откуда в вашем случае отрицательная разница - вопрос, вероятно, к приложению. -- Maxim Dounin http://mdounin.ru/ From igor.bliss на gmail.com Tue Sep 20 16:35:32 2022 From: igor.bliss на gmail.com (Igor Savenko) Date: Tue, 20 Sep 2022 19:35:32 +0300 Subject: =?UTF-8?B?0LjQs9GA0L7RgNC40YDQvtCy0LDRgtGMINC90LXQutC+0YDRgNC10LrRgtC90YvQtSDQtw==?= =?UTF-8?B?0LDQs9C+0LvQvtCy0LrQuCDQtNC70Y8gdXBzdHJlYW0=?= Message-ID: Добрый день! Странная ситуация, апстримом для nginx является лайтспид, и вот этот лайтспид на http2 отдает нормальные заголовки ответа, а для http/1.1 некорректные, например, вот это выводит curl: curl -s -v --http1.1 -o /dev/null https://domain.com/images/12345.png --resolve domain.com:443:1.2.3.4 ... > GET /images/12345.png HTTP/1.1 > Host: domain.com > User-Agent: curl/7.74.0 > Accept: */* > < HTTP/1.1 200 OK < Connection: Keep-Alive < Keep-Alive: timeout=5, max=100 expires: Thu, 20 Oct 2022 15:48:24 GMTc < content-type: image/png < last-modified: Tue, 08 Feb 2022 17:03:26 GMT < accept-ranges: bytes < content-length: 847 < date: Tue, 20 Sep 2022 15:48:24 GMT < server: LiteSpeed Обратите внимание на начало заголовка expires, он не начинается с < символа, следовательно, или в начале этого, или в конце предыдущего заголовка приезжает некорректный символ. Насколько я знаю, nginx не поддерживает http/2 для общения с апстримом. Отсюда вопрос. Есть дешевый способ заставить nginx игнорировать некорректные произвольные заголовки (полностью заголовок, а не только название) от апстрима, а не только заранее определенные, как в директиве proxy_ignore_headers ? ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Tue Sep 20 17:40:46 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 20 Sep 2022 20:40:46 +0300 Subject: =?koi8-r?B?ycfSz9LJ0s/XwdTYIM7Fy8/S?= =?koi8-r?B?0sXL1M7ZxSDawcfPzM/Xy8kgxMzR?= upstream In-Reply-To: References: Message-ID: Hello! On Tue, Sep 20, 2022 at 07:35:32PM +0300, Igor Savenko wrote: > Добрый день! Странная ситуация, апстримом для nginx является лайтспид, и > вот этот лайтспид на http2 отдает нормальные заголовки ответа, а для > http/1.1 некорректные, например, вот это выводит curl: > curl -s -v --http1.1 -o /dev/null https://domain.com/images/12345.png > --resolve domain.com:443:1.2.3.4 > ... > > GET /images/12345.png HTTP/1.1 > > Host: domain.com > > User-Agent: curl/7.74.0 > > Accept: */* > > > < HTTP/1.1 200 OK > < Connection: Keep-Alive > < Keep-Alive: timeout=5, max=100 > expires: Thu, 20 Oct 2022 15:48:24 GMTc > < content-type: image/png > < last-modified: Tue, 08 Feb 2022 17:03:26 GMT > < accept-ranges: bytes > < content-length: 847 > < date: Tue, 20 Sep 2022 15:48:24 GMT > < server: LiteSpeed > > Обратите внимание на начало заголовка expires, он не начинается с < > символа, следовательно, или в начале этого, или в конце предыдущего > заголовка приезжает некорректный символ. Насколько я знаю, nginx не > поддерживает http/2 для общения с апстримом. Отсюда вопрос. Есть дешевый > способ заставить nginx игнорировать некорректные произвольные заголовки > (полностью заголовок, а не только название) от апстрима, а не только > заранее определенные, как в директиве proxy_ignore_headers > > ? Судя по выводу curl'а, между предыдущим заголовком и expires вместо CRLF или LF стоит просто CR. В логах nginx'а при этом должна быть какая-то такая ошибка: 2022/09/20 12:59:16 [error] 2866#100147: *1 upstream sent invalid header: "X-Foo: foo\x0d..." while reading response header from upstream... Лечить это надо на бэкенде, подобных вольностей в обращении с протоколом nginx не допускает и до какой-либо обработки заголовков и/или их игнорирования тут дело не дойдёт, всё сломается при попытке парсинга заголовков ответа. Если в краткосрочной перспективе с бэкендом сделать ничего нельзя, то в качестве временного workaround'а можно попробовать проксировать по HTTP/2 через grpc_pass. -- Maxim Dounin http://mdounin.ru/ From igor.bliss на gmail.com Tue Sep 20 17:51:30 2022 From: igor.bliss на gmail.com (Igor Savenko) Date: Tue, 20 Sep 2022 20:51:30 +0300 Subject: =?UTF-8?B?UmU6INC40LPRgNC+0YDQuNGA0L7QstCw0YLRjCDQvdC10LrQvtGA0YDQtdC60YLQvdGL?= =?UTF-8?B?0LUg0LfQsNCz0L7Qu9C+0LLQutC4INC00LvRjyB1cHN0cmVhbQ==?= In-Reply-To: References: Message-ID: Сама проблема в том, что nginx да, ругается в логе, но при этом он еще и отдает 502 ошибку. Поэтому просто искали способ хотя бы игнорировать некорректные заголовки, но пропускать ответ бекэнда клиенту вт, 20 сент. 2022 г. в 20:41, Maxim Dounin : > Hello! > > On Tue, Sep 20, 2022 at 07:35:32PM +0300, Igor Savenko wrote: > > > Добрый день! Странная ситуация, апстримом для nginx является лайтспид, и > > вот этот лайтспид на http2 отдает нормальные заголовки ответа, а для > > http/1.1 некорректные, например, вот это выводит curl: > > curl -s -v --http1.1 -o /dev/null https://domain.com/images/12345.png > > --resolve domain.com:443:1.2.3.4 > > ... > > > GET /images/12345.png HTTP/1.1 > > > Host: domain.com > > > User-Agent: curl/7.74.0 > > > Accept: */* > > > > > < HTTP/1.1 200 OK > > < Connection: Keep-Alive > > < Keep-Alive: timeout=5, max=100 > > expires: Thu, 20 Oct 2022 15:48:24 GMTc > > < content-type: image/png > > < last-modified: Tue, 08 Feb 2022 17:03:26 GMT > > < accept-ranges: bytes > > < content-length: 847 > > < date: Tue, 20 Sep 2022 15:48:24 GMT > > < server: LiteSpeed > > > > Обратите внимание на начало заголовка expires, он не начинается с < > > символа, следовательно, или в начале этого, или в конце предыдущего > > заголовка приезжает некорректный символ. Насколько я знаю, nginx не > > поддерживает http/2 для общения с апстримом. Отсюда вопрос. Есть дешевый > > способ заставить nginx игнорировать некорректные произвольные заголовки > > (полностью заголовок, а не только название) от апстрима, а не только > > заранее определенные, как в директиве proxy_ignore_headers > > < > http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers > > > > ? > > Судя по выводу curl'а, между предыдущим заголовком и expires > вместо CRLF или LF стоит просто CR. В логах nginx'а при этом > должна быть какая-то такая ошибка: > > 2022/09/20 12:59:16 [error] 2866#100147: *1 upstream sent invalid header: > "X-Foo: foo\x0d..." while reading response header from upstream... > > Лечить это надо на бэкенде, подобных вольностей в обращении с > протоколом nginx не допускает и до какой-либо обработки заголовков > и/или их игнорирования тут дело не дойдёт, всё сломается при попытке > парсинга заголовков ответа. > > Если в краткосрочной перспективе с бэкендом сделать ничего нельзя, > то в качестве временного workaround'а можно попробовать > проксировать по HTTP/2 через grpc_pass. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Tue Sep 20 21:39:30 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 21 Sep 2022 00:39:30 +0300 Subject: =?koi8-r?B?ycfSz9LJ0s/XwdTYIM7Fy8/S?= =?koi8-r?B?0sXL1M7ZxSDawcfPzM/Xy8kgxMzR?= upstream In-Reply-To: References: Message-ID: Hello! On Tue, Sep 20, 2022 at 08:51:30PM +0300, Igor Savenko wrote: > Сама проблема в том, что nginx да, ругается в логе, но при этом он еще и > отдает 502 ошибку. Поэтому просто искали способ хотя бы игнорировать > некорректные заголовки, но пропускать ответ бекэнда клиенту Сообщение в логе как раз о том, что nginx не может получить ответ от бэкенда, так как тот возвращает мусор вместо заголовков ответа и получить ответ nginx в результате не может. Соответственно клиенту и возвращается ошибка. Как уже сказано ранее, править это надо на бэкенде. В качестве временного workaround'а можно попробовать grpc_pass. -- Maxim Dounin http://mdounin.ru/ From vovansystems на gmail.com Wed Sep 21 08:09:18 2022 From: vovansystems на gmail.com (VovansystemS) Date: Wed, 21 Sep 2022 11:09:18 +0300 Subject: =?UTF-8?B?0LrQsNC6INC/0LXRgNC10LTQsNGC0YwgY2FjaGUtY29udHJvbCDQt9Cw0LPQvtC70L7Qsg==?= =?UTF-8?B?0L7QuiDQvtGCINCw0L/RgdGC0YDQuNC80LAg0LIg0LHRgNCw0YPQt9C10YA=?= Message-ID: Добрый день, nginx используется как кеширующий реверс-прокси, апстрим с Апачем выставляет заголовок: Cache-Control: public, max-age=0, must-revalidate Nginx руководствуется этим заголовком для того, чтобы определить каким образом кешировать ответ апстрима, но посетителю Nginx отдаёт ответ с заголовком: Cache-Control: no-cache,no-store Необходимо сделать так, чтобы заголовок "Cache-Control: public, max-age=0, must-revalidate" получал посетитель (браузер). Как лучше всего этого добиться? From mdounin на mdounin.ru Wed Sep 21 10:01:19 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 21 Sep 2022 13:01:19 +0300 Subject: =?koi8-r?B?y8HLINDF0sXEwdTYIGNhY2hl?= =?koi8-r?B?LWNvbnRyb2wg2sHHz8zP18/LIM/UIMHQ09TSyc3BINcgwtLB1drF0g==?= In-Reply-To: References: Message-ID: Hello! On Wed, Sep 21, 2022 at 11:09:18AM +0300, VovansystemS wrote: > nginx используется как кеширующий реверс-прокси, апстрим с Апачем > выставляет заголовок: > Cache-Control: public, max-age=0, must-revalidate > > Nginx руководствуется этим заголовком для того, чтобы определить каким > образом кешировать ответ апстрима, но посетителю Nginx отдаёт ответ с > заголовком: > Cache-Control: no-cache,no-store > > Необходимо сделать так, чтобы заголовок "Cache-Control: public, > max-age=0, must-revalidate" получал посетитель (браузер). Как лучше > всего этого добиться? Убрать конфигурацию, которая прячет исходный заголовок Cache-Control (proxy_hide_header?) и добавляет вместо него "no-cache,no-store"? По умолчанию nginx отдаёт клиенту ровно тот заголовок Cache-Control, какой получил от бэкенда. Чтобы вернуть что-то другое - нужно это явно сконфигурировать. Причём получить "no-store" с помощью простых стандартных механизмов, как то директива expires, не получится. То есть либо у вас это должно быть явно в конфиге nginx'а, либо такой заголовок всё-таки возвращает бэкенд. -- Maxim Dounin http://mdounin.ru/ From vovansystems на gmail.com Wed Sep 21 10:34:01 2022 From: vovansystems на gmail.com (VovansystemS) Date: Wed, 21 Sep 2022 13:34:01 +0300 Subject: =?UTF-8?B?UmU6INC60LDQuiDQv9C10YDQtdC00LDRgtGMIGNhY2hlLWNvbnRyb2wg0LfQsNCz0L7Quw==?= =?UTF-8?B?0L7QstC+0Log0L7RgiDQsNC/0YHRgtGA0LjQvNCwINCyINCx0YDQsNGD0LfQtdGA?= In-Reply-To: References: Message-ID: > Убрать конфигурацию, которая прячет исходный заголовок > Cache-Control (proxy_hide_header?) и добавляет вместо него > "no-cache,no-store"? > > По умолчанию nginx отдаёт клиенту ровно тот заголовок > Cache-Control, какой получил от бэкенда. Чтобы вернуть что-то > другое - нужно это явно сконфигурировать. Причём получить "no-store" с > помощью простых стандартных механизмов, как то директива expires, > не получится. То есть либо у вас это должно быть явно в конфиге > nginx'а, либо такой заголовок всё-таки возвращает бэкенд. спасибо большое за быстрый ответ, он всё расставил по своим местам, будем проверять всю конфигурацию целиком, возможно ошибка в логике работы генератора конфигов From nginx-forum на forum.nginx.org Wed Sep 21 18:31:42 2022 From: nginx-forum на forum.nginx.org (edo888) Date: Wed, 21 Sep 2022 14:31:42 -0400 Subject: =?UTF-8?Q?=D0=9F=D1=83=D1=81=D1=82=D0=BE=D0=B9=20coredump=20=D0=B4=D0?= =?UTF-8?Q?=BB=D1=8F=20=D1=81=D0=B8=D0=B3=D0=BD=D0=B0=D0=BB=D0=B0=2011?= Message-ID: <6492dc968fe7f4197db7cbed468f72ec.NginxMailingListRussian@forum.nginx.org> Здравствуйте, Очень редко у меня в журнале ошибок появляется "worker process NNN exited on signal 11 (core not dumped)" Я пытаюсь создать дамп, но что бы я ни делал, он не создается или его размер равен 0. Я использую FreeBSD, и первое, что я попытался сделать, это разрешить nginx создавать дампы, но независимо от того, насколько большой я установил worker_rlimit_core, дампы не создаются. Я проверил исходный код и вижу следующее: /usr/include/sys/signal.h: #define SIGSEGV 11 /* segmentation violation */ /usr/include/sys/wait.h: #define WCOREFLAG 0200 #define _W_INT(i) (i) #define WCOREDUMP(x) (_W_INT(x) & WCOREFLAG) nginx/src/os/unix/ngx_process.c: ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, "%s %P exited on signal %d%s", process, pid, WTERMSIG(status), WCOREDUMP(status) ? " (core dumped)" : " (core not dumped)"); Это означает, что WCOREDUMP(11) равен 0 и дамп создаваться не будет. Так что не знаю, что мне делать. Я также попытался включить дампы ядра через ОС, установив sysctl kern.sugid_coredump=1 и sysctl kern.corefile=/home/coredump/%N.core.%P, а для ulimit установлено значение unlimited. После этого я вижу, что дампы имеют размер 0. Можете подсказать, как включить дампы для сигнала 11? Спасибо! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295263,295263#msg-295263 From chipitsine на gmail.com Wed Sep 21 19:55:39 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 22 Sep 2022 00:55:39 +0500 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDQtNC70Y8g0YHQuNCz0L3QsNC70LAgMTE=?= In-Reply-To: <6492dc968fe7f4197db7cbed468f72ec.NginxMailingListRussian@forum.nginx.org> References: <6492dc968fe7f4197db7cbed468f72ec.NginxMailingListRussian@forum.nginx.org> Message-ID: можете показать вывод "nginx -V" ? под руками нет freebsd, чтобы проверить, применимо ли вот это к freebsd Debugging NGINX | NGINX Plus ср, 21 сент. 2022 г. в 23:32, edo888 : > Здравствуйте, > > Очень редко у меня в журнале ошибок появляется "worker process NNN exited > on > signal 11 (core not dumped)" > > Я пытаюсь создать дамп, но что бы я ни делал, он не создается или его > размер > равен 0. > > Я использую FreeBSD, и первое, что я попытался сделать, это разрешить nginx > создавать дампы, но независимо от того, насколько большой я установил > worker_rlimit_core, дампы не создаются. Я проверил исходный код и вижу > следующее: > > /usr/include/sys/signal.h: > #define SIGSEGV 11 /* segmentation violation */ > > /usr/include/sys/wait.h: > #define WCOREFLAG 0200 > #define _W_INT(i) (i) > #define WCOREDUMP(x) (_W_INT(x) & WCOREFLAG) > > nginx/src/os/unix/ngx_process.c: > ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, "%s %P exited on signal > %d%s", process, pid, WTERMSIG(status), WCOREDUMP(status) ? " (core dumped)" > : " (core not dumped)"); > > Это означает, что WCOREDUMP(11) равен 0 и дамп создаваться не будет. Так > что > не знаю, что мне делать. > > Я также попытался включить дампы ядра через ОС, установив sysctl > kern.sugid_coredump=1 и sysctl kern.corefile=/home/coredump/%N.core.%P, а > для ulimit установлено значение unlimited. После этого я вижу, что дампы > имеют размер 0. > > Можете подсказать, как включить дампы для сигнала 11? > > Спасибо! > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,295263,295263#msg-295263 > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Wed Sep 21 20:43:30 2022 From: nginx-forum на forum.nginx.org (edo888) Date: Wed, 21 Sep 2022 16:43:30 -0400 Subject: =?UTF-8?Q?Re:=20=D0=9F=D1=83=D1=81=D1=82=D0=BE=D0=B9=20coredump=20=D0?= =?UTF-8?Q?=B4=D0=BB=D1=8F=20=D1=81=D0=B8=D0=B3=D0=BD=D0=B0=D0=BB=D0?= =?UTF-8?Q?=B0=2011?= In-Reply-To: References: Message-ID: <0ec36b698f8f0140227a925e2c3a2d39.NginxMailingListRussian@forum.nginx.org> У меня есть --with-debug в аргументах конфигурации nginx. Да, я выполнил шаги, описанные в этой статье. Спасибо! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295263,295265#msg-295265 From mdounin на mdounin.ru Wed Sep 21 22:39:47 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 22 Sep 2022 01:39:47 +0300 Subject: =?koi8-r?B?8NXT1M/KIGNvcmVkdW1wIMTM?= =?koi8-r?B?0SDTycfOwczB?= 11 In-Reply-To: <6492dc968fe7f4197db7cbed468f72ec.NginxMailingListRussian@forum.nginx.org> References: <6492dc968fe7f4197db7cbed468f72ec.NginxMailingListRussian@forum.nginx.org> Message-ID: Hello! On Wed, Sep 21, 2022 at 02:31:42PM -0400, edo888 wrote: > Здравствуйте, > > Очень редко у меня в журнале ошибок появляется "worker process NNN exited on > signal 11 (core not dumped)" > > Я пытаюсь создать дамп, но что бы я ни делал, он не создается или его размер > равен 0. > > Я использую FreeBSD, и первое, что я попытался сделать, это разрешить nginx > создавать дампы, но независимо от того, насколько большой я установил > worker_rlimit_core, дампы не создаются. Я проверил исходный код и вижу > следующее: > > /usr/include/sys/signal.h: > #define SIGSEGV 11 /* segmentation violation */ > > /usr/include/sys/wait.h: > #define WCOREFLAG 0200 > #define _W_INT(i) (i) > #define WCOREDUMP(x) (_W_INT(x) & WCOREFLAG) > > nginx/src/os/unix/ngx_process.c: > ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, "%s %P exited on signal > %d%s", process, pid, WTERMSIG(status), WCOREDUMP(status) ? " (core dumped)" > : " (core not dumped)"); В nginx'е такого кода нет, там вместо "(core not dumped)" стоит пустая строка. Это вы сами правили для наглядности, или где-то взяли версию со сторонними патчами? Если второе - то лучше взять из портов или с nginx.org версию без сторонних изменений. > Это означает, что WCOREDUMP(11) равен 0 и дамп создаваться не будет. Так что > не знаю, что мне делать. > > Я также попытался включить дампы ядра через ОС, установив sysctl > kern.sugid_coredump=1 и sysctl kern.corefile=/home/coredump/%N.core.%P, а > для ulimit установлено значение unlimited. После этого я вижу, что дампы > имеют размер 0. > > Можете подсказать, как включить дампы для сигнала 11? Убедиться, что стоит kern.sugid_coredump, стоит kern.corefile, рабочий процесс nginx'а имеет права на запись в указанный в kern.corefile каталог, и на соответствующем диске хватает места. Если файл создаётся, но при этом нулевого размера - скорее всего дело в отсутствии места на диске. Где-то в /var/log/messages система будет плакать как-то так: Sep 22 01:33:34 vm-bsd kernel: pid 10513 (nginx), uid 65534 inumber 429133 on /: filesystem full Sep 22 01:33:34 vm-bsd kernel: Failed to write core file for process nginx (error 28) Sep 22 01:33:34 vm-bsd kernel: pid 10513 (nginx), jid 0, uid 65534: exited on signal 6 Успехов в разборках, если что - приходите с вопросами, FreeBSD тут многие знают хорошо. Но лучше напрямую в mailing list, а не через гейт на форуме. -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Wed Sep 21 23:27:11 2022 From: nginx-forum на forum.nginx.org (edo888) Date: Wed, 21 Sep 2022 19:27:11 -0400 Subject: =?UTF-8?Q?Re:=20=D0=9F=D1=83=D1=81=D1=82=D0=BE=D0=B9=20coredump=20=D0?= =?UTF-8?Q?=B4=D0=BB=D1=8F=20=D1=81=D0=B8=D0=B3=D0=BD=D0=B0=D0=BB=D0?= =?UTF-8?Q?=B0=2011?= In-Reply-To: References: Message-ID: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> Спасибо за ответ. Вы правильно отметили, я сам добавил "(core not dumped)" во время отладки. У меня больше 100 ГБ места. В сообщениях у меня только это: kernel: pid NNN (nginx), jid 0, uid 80: exited on signal 11 Не знаю, что мне еще сделать. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295263,295267#msg-295267 From mdounin на mdounin.ru Thu Sep 22 01:06:16 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 22 Sep 2022 04:06:16 +0300 Subject: =?koi8-r?B?8NXT1M/KIGNvcmVkdW1wIMTM?= =?koi8-r?B?0SDTycfOwczB?= 11 In-Reply-To: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> Message-ID: Hello! On Wed, Sep 21, 2022 at 07:27:11PM -0400, edo888 wrote: > Спасибо за ответ. Вы правильно отметили, я сам добавил "(core not dumped)" > во время отладки. > > У меня больше 100 ГБ места. В сообщениях у меня только это: > kernel: pid NNN (nginx), jid 0, uid 80: exited on signal 11 > > Не знаю, что мне еще сделать. Если при этом core-файл создаётся, но каких-либо сообщений об ошибках записи дампа нет - то стоит ещё раз посмотреть на лимит RLIMIT_CORE. Судя по kern/kern_sig.c и kern/imgact_elf.c - превышение (ненулевого) лимита это примерно единственный случай, когда файл будет создан, но ничего не будет записано и при этом не будет ошибок. Проверьте размеры рабочих процессов, и поднимите лимит worker_rlimit_core до значения, перекрывающего размеры рабочих процессов с запасом. Ну и не забудьте перезагрузить конфигурацию и/или перезапустить nginx. (Just in case, текущие лимиты рабочих процессов можно посмотреть или поменять с помощью команды "limits -P "). И лучше после этого протестировать работу дампа явно руками, послав что-нибудь вроде сигнала 6 (abort) одному из рабочих процессов. При реальном падении размер рабочего процесса непосредственно перед падением может резко вырасти, скажем, если у вас там какой-нибудь код, который сначала выделяет много памяти, и только потом падает. -- Maxim Dounin http://mdounin.ru/ From root на dl.sm.ua Thu Sep 22 05:12:58 2022 From: root на dl.sm.ua (Dmytro Lavryk) Date: Thu, 22 Sep 2022 09:12:58 +0400 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVt?= =?UTF-8?B?cCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/ve+/vSAxMQ==?= In-Reply-To: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> Message-ID: <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> Здравствуйте.  Если можно - отпишите по результатам, если что получится. Имею несколько таких серверов. Bug отписывал  - менйтейнер ничего понять не может. Диагноз такой - по версию nginx/1.18.0 (включительно) проблема не проявляется. В следующей, после этой версии в портах поменяли сборку brotli на гугловскую. После этой версии проблема проявляется в случайном порядке - на одних серверах проблема есть, на других нету. С чем связано - я лично понять не могу - разные версии ОС, и одинаковые... Но с обновлениями проблема не уходит, т.е. если на определенном сервере проявилась - то так дальше с версиями и "шагает". Еще из странного замечено, что перед падением идет постоянный рост "Writing" (в терминах nginx_stat) потом идет падение резкий сброс этого значения. На других серверах, где проблемы нет, роста постоянного нет - значение более-менее стабильно. ---- чт, 22 вер. 2022 03:27:11 +0400 edo888 написав --- Спасибо за ответ. Вы правильно отметили, я сам добавил "(core not dumped)" во время отладки. У меня больше 100 ГБ места. В сообщениях у меня только это: kernel: pid NNN (nginx), jid 0, uid 80: exited on signal 11 Не знаю, что мне еще сделать. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295263,295267#msg-295267 _______________________________________________ nginx-ru mailing list -- mailto:nginx-ru на nginx.org To unsubscribe send an email to mailto:nginx-ru-leave на nginx.org ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Thu Sep 22 07:01:02 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 22 Sep 2022 12:01:02 +0500 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/vQ==?= =?UTF-8?B?77+9IDEx?= In-Reply-To: <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> Message-ID: покажете "nginx -V" ? чт, 22 сент. 2022 г. в 10:13, Dmytro Lavryk : > Здравствуйте. > Если можно - отпишите по результатам, если что получится. Имею несколько > таких серверов. Bug отписывал - менйтейнер ничего понять не может. > Диагноз такой - по версию nginx/1.18.0 (включительно) проблема не > проявляется. В следующей, после этой версии в портах поменяли сборку brotli > на гугловскую. > После этой версии проблема проявляется в случайном порядке - на одних > серверах проблема есть, на других нету. С чем связано - я лично понять не > могу - разные версии ОС, и одинаковые... Но с обновлениями проблема не > уходит, т.е. если на определенном сервере проявилась - то так дальше с > версиями и "шагает". > > Еще из странного замечено, что перед падением идет постоянный рост > "Writing" (в терминах nginx_stat) потом идет падение резкий сброс этого > значения. На других серверах, где проблемы нет, роста постоянного нет - > значение более-менее стабильно. > > > ---- чт, 22 вер. 2022 03:27:11 +0400 *edo888 >* написав --- > > Спасибо за ответ. Вы правильно отметили, я сам добавил "(core not dumped)" > во время отладки. > > У меня больше 100 ГБ места. В сообщениях у меня только это: > kernel: pid NNN (nginx), jid 0, uid 80: exited on signal 11 > > Не знаю, что мне еще сделать. > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,295263,295267#msg-295267 > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > > > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From root на dl.sm.ua Thu Sep 22 10:19:36 2022 From: root на dl.sm.ua (Dmytro Lavryk) Date: Thu, 22 Sep 2022 14:19:36 +0400 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVt?= =?UTF-8?B?cCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/ve+/vSAxMQ==?= In-Reply-To: References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> Message-ID: <18364b5c0a1.c55160f5309834.8607416780799993617@dl.sm.ua> nginx version: nginx/1.22.0 built with OpenSSL 1.1.1q  5 Jul 2022 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' --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 --with-compat --with-pcre --modules-path=/usr/local/libexec/nginx --with-file-aio --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_v2_module --with-http_v2_autotune_upload --with-http_addition_module --with-http_auth_request_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_realip_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --without-mail_imap_module --without-mail_pop3_module --without-mail_smtp_module --with-threads --add-dynamic-module=/usr/ports/www/nginx/work/ngx_devel_kit-0.3.1 --add-dynamic-module=/usr/ports/www/nginx/work/ngx_brotli-9aec15e ---- чт, 22 вер. 2022 11:01:02 +0400 Илья Шипицин написав --- покажете "nginx -V" ? ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From root на dl.sm.ua Thu Sep 22 10:49:30 2022 From: root на dl.sm.ua (Dmytro Lavryk) Date: Thu, 22 Sep 2022 14:49:30 +0400 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVt?= =?UTF-8?B?cCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/ve+/vSAxMQ==?= In-Reply-To: <18364b5c0a1.c55160f5309834.8607416780799993617@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18364b5c0a1.c55160f5309834.8607416780799993617@dl.sm.ua> Message-ID: <18364d12173.ec682284313330.8780360894081540115@dl.sm.ua> А это другой, на котором никаких проблем нет: nginx -V nginx version: nginx/1.22.0 built with OpenSSL 1.1.1q  5 Jul 2022 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' --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 --with-compat --with-pcre --modules-path=/usr/local/libexec/nginx --with-file-aio --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_v2_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --without-mail_imap_module --without-mail_pop3_module --without-mail_smtp_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-threads --add-module=/usr/ports/www/nginx/work/nginx-module-vts-0.1.18 --with-stream=dynamic --add-dynamic-module=/usr/ports/www/nginx/work/ngx_devel_kit-0.3.1 --add-dynamic-module=/usr/ports/www/nginx/work/ngx_brotli-9aec15e --add-dynamic-module=/usr/ports/www/nginx/work/iconv-nginx-module-0.14 --add-dynamic-module=/usr/ports/www/nginx/work/nginx-rtmp-module-8e344d7 --add-dynamic-module=/usr/ports/www/nginx/work/nginx-vod-module-1.27 ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From root на dl.sm.ua Thu Sep 22 11:00:09 2022 From: root на dl.sm.ua (Dmytro Lavryk) Date: Thu, 22 Sep 2022 15:00:09 +0400 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVt?= =?UTF-8?B?cCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/ve+/vSAxMQ==?= In-Reply-To: <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> Message-ID: <18364dae0c3.bd26a4a7314536.3328568129601680887@dl.sm.ua> Я ошибся. "Writing" наоборот подскакивает в моменты падений. ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: ----------- следующая часть ----------- Вложение не в текстовом формате было извлечено… Имя: 1663844392128006_1194032055.jpg Тип: image/jpeg Размер: 84366 байтов Описание: отсутствует URL: From chipitsine на gmail.com Thu Sep 22 11:09:20 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 22 Sep 2022 16:09:20 +0500 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/vQ==?= =?UTF-8?B?77+9IDEx?= In-Reply-To: <18364dae0c3.bd26a4a7314536.3328568129601680887@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18364dae0c3.bd26a4a7314536.3328568129601680887@dl.sm.ua> Message-ID: а какого размера ответы? brotli вроде бы не потоковый, насколько я помню он целиком ответ вычитывает, жмет и отдает. или потоком? чт, 22 сент. 2022 г. в 16:00, Dmytro Lavryk : > > > Я ошибся. "Writing" наоборот подскакивает в моменты падений. > > > > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: ----------- следующая часть ----------- Вложение не в текстовом формате было извлечено… Имя: 1663844392128006_1194032055.jpg Тип: image/jpeg Размер: 84366 байтов Описание: отсутствует URL: From root на dl.sm.ua Thu Sep 22 11:13:58 2022 From: root на dl.sm.ua (Dmytro Lavryk) Date: Thu, 22 Sep 2022 15:13:58 +0400 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVt?= =?UTF-8?B?cCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/ve+/vSAxMQ==?= In-Reply-To: References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18364dae0c3.bd26a4a7314536.3328568129601680887@dl.sm.ua> Message-ID: <18364e78513.e0a95e90316132.5227741717849268153@dl.sm.ua> На счет потоковый ли бротли - сказать не могу. размер ответов при падении не известен, т.к. надежно смоделировать ситуацию не получается, а в лог пр падение идет только сбсвенно само падение. А в целом на сервере размеры самые разнообразные могут быть. От нескольких байт и до десятков мегабайт. ---- чт, 22 вер. 2022 15:09:20 +0400 Илья Шипицин написав --- а какого размера ответы?brotli вроде бы не потоковый, насколько я помню он целиком ответ вычитывает, жмет и отдает. или потоком? ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Thu Sep 22 11:21:33 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 22 Sep 2022 16:21:33 +0500 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/vQ==?= =?UTF-8?B?77+9IDEx?= In-Reply-To: <18364e78513.e0a95e90316132.5227741717849268153@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18364dae0c3.bd26a4a7314536.3328568129601680887@dl.sm.ua> <18364e78513.e0a95e90316132.5227741717849268153@dl.sm.ua> Message-ID: любопытство было в плане, есть ли сторонние модули (или падает сам nginx). любопытство удовлетворил. осталось поймать dump и потыкать в него gdb )) чт, 22 сент. 2022 г. в 16:14, Dmytro Lavryk : > На счет потоковый ли бротли - сказать не могу. > размер ответов при падении не известен, т.к. надежно смоделировать > ситуацию не получается, а в лог пр падение идет только сбсвенно само > падение. А в целом на сервере размеры самые разнообразные могут быть. От > нескольких байт и до десятков мегабайт. > > > ---- чт, 22 вер. 2022 15:09:20 +0400 *Илья Шипицин >* написав --- > > а какого размера ответы? > brotli вроде бы не потоковый, насколько я помню он целиком ответ > вычитывает, жмет и отдает. > или потоком? > > > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Thu Sep 22 11:50:24 2022 From: nginx-forum на forum.nginx.org (edo888) Date: Thu, 22 Sep 2022 07:50:24 -0400 Subject: =?UTF-8?Q?Re:=20=D0=9F=D1=83=D1=81=D1=82=D0=BE=D0=B9=20coredump=20=D0?= =?UTF-8?Q?=B4=D0=BB=D1=8F=20=D1=81=D0=B8=D0=B3=D0=BD=D0=B0=D0=BB=D0?= =?UTF-8?Q?=B0=2011?= In-Reply-To: References: Message-ID: "limits -P " открыл мои глаза, спасибо большое! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295263,295278#msg-295278 From chipitsine на gmail.com Thu Sep 22 12:24:43 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 22 Sep 2022 17:24:43 +0500 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/vQ==?= =?UTF-8?B?77+9IDEx?= In-Reply-To: References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18364dae0c3.bd26a4a7314536.3328568129601680887@dl.sm.ua> <18364e78513.e0a95e90316132.5227741717849268153@dl.sm.ua> Message-ID: поднял конфиги "времен reebsd". дампы сохранялись вот так working_directory /path/here; worker_rlimit_core 2048M; чт, 22 сент. 2022 г. в 16:21, Илья Шипицин : > любопытство было в плане, есть ли сторонние модули (или падает сам nginx). > любопытство удовлетворил. > > осталось поймать dump и потыкать в него gdb )) > > чт, 22 сент. 2022 г. в 16:14, Dmytro Lavryk : > >> На счет потоковый ли бротли - сказать не могу. >> размер ответов при падении не известен, т.к. надежно смоделировать >> ситуацию не получается, а в лог пр падение идет только сбсвенно само >> падение. А в целом на сервере размеры самые разнообразные могут быть. От >> нескольких байт и до десятков мегабайт. >> >> >> ---- чт, 22 вер. 2022 15:09:20 +0400 *Илья Шипицин > >* написав --- >> >> а какого размера ответы? >> brotli вроде бы не потоковый, насколько я помню он целиком ответ >> вычитывает, жмет и отдает. >> или потоком? >> >> >> >> _______________________________________________ >> nginx-ru mailing list -- nginx-ru на nginx.org >> To unsubscribe send an email to nginx-ru-leave на nginx.org >> > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Thu Sep 22 15:52:09 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 22 Sep 2022 18:52:09 +0300 Subject: =?utf-8?B?0J/Rg9GB0YLQvtC5IGNvcmVkdW1w?= =?utf-8?B?IO+/ve+/vdC70Y8g0YHQuNCz0L3QsNC777+977+9?= 11 In-Reply-To: <18364dae0c3.bd26a4a7314536.3328568129601680887@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18364dae0c3.bd26a4a7314536.3328568129601680887@dl.sm.ua> Message-ID: Hello! On Thu, Sep 22, 2022 at 03:00:09PM +0400, Dmytro Lavryk wrote: > Я ошибся. "Writing" наоборот подскакивает в моменты падений. Подскакивающий в моменты падений "Writing" - это нормально и собственно следствие падений. Каждый упавший рабочий процесс "оставляет" в статистике свои значения на момент падения, и при падениях все метрики будут расти. -- Maxim Dounin http://mdounin.ru/ From mdounin на mdounin.ru Thu Sep 22 16:01:47 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 22 Sep 2022 19:01:47 +0300 Subject: =?utf-8?B?0J/Rg9GB0YLQvtC5IGNvcmVkdW1w?= =?utf-8?B?IO+/ve+/vdC70Y8g0YHQuNCz0L3QsNC777+977+9?= 11 In-Reply-To: <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> Message-ID: Hello! On Thu, Sep 22, 2022 at 09:12:58AM +0400, Dmytro Lavryk wrote: > Здравствуйте.  > Если можно - отпишите по результатам, если что получится. Имею > несколько таких серверов. Bug отписывал  - менйтейнер ничего > понять не может. > Диагноз такой - по версию nginx/1.18.0 (включительно) проблема > не проявляется. В следующей, после этой версии в портах поменяли > сборку brotli на гугловскую. > После этой версии проблема проявляется в случайном порядке - на > одних серверах проблема есть, на других нету. С чем связано - я > лично понять не могу - разные версии ОС, и одинаковые... Но с > обновлениями проблема не уходит, т.е. если на определенном > сервере проявилась - то так дальше с версиями и "шагает". А у вас в чём именно проблема - в том, что nginx со сторонними модулями падает, или в том, что при падениях не получается сохранять core-файлы? Базовый рецепт для лечения падений со сторонними модулями, если что, простой: убрать сторонние модули. Ну и дальше уже можно смотреть, что именно вызывает падения. И смотреть в те самые core-файлы, опять же. -- Maxim Dounin http://mdounin.ru/ From root на dl.sm.ua Thu Sep 22 19:17:34 2022 From: root на dl.sm.ua (Dmytro Lavryk) Date: Thu, 22 Sep 2022 23:17:34 +0400 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVt?= =?UTF-8?B?cCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/ve+/vSAxMQ==?= In-Reply-To: References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> Message-ID: <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> У меня лично, что падает. Я не настолько силен, чтобы с корефайлами разобраться :( Просто странности - что с идентичными сборками (в плане сторонних модулей) на одних серверах воркеры падают периодически, а на других работают без проблем. Я как раз изначально и пытался понять в чем именно проблема, но собирал совершенно идентичные (в плане сторонних модулей и версий) а разница все равно есть. Лично я все же грешу на бротли, т.к. из общения с мейнтейнером порта выяснили, что при обновлении, после которого это все начало проявляться,  менялся исключительно бротли модуль. Но выключить бротли не могу. Тестовых нет, а  на рабочих наличие бротли в наше время это необходимый минимум. ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From root на dl.sm.ua Thu Sep 22 19:22:02 2022 From: root на dl.sm.ua (Dmytro Lavryk) Date: Thu, 22 Sep 2022 23:22:02 +0400 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVt?= =?UTF-8?B?cCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/ve+/vSAxMQ==?= In-Reply-To: <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> Message-ID: <18366a65edf.e5d5a307343953.8517038920177124081@dl.sm.ua> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253710 ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Thu Sep 22 19:55:20 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Fri, 23 Sep 2022 00:55:20 +0500 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/vQ==?= =?UTF-8?B?77+9IDEx?= In-Reply-To: <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> Message-ID: пт, 23 сент. 2022 г. в 00:18, Dmytro Lavryk : > У меня лично, что падает. Я не настолько силен, чтобы с корефайлами > разобраться :( Просто странности - что с идентичными сборками (в плане > сторонних модулей) на одних серверах воркеры падают периодически, а на > других работают без проблем. Я как раз изначально и пытался понять в чем > именно проблема, но собирал совершенно идентичные (в плане сторонних > модулей и версий) а разница все равно есть. > есть разное отношение к сторонним модулям, которые ставятся из портов. вроде бы по умолчанию сторонние модули не включены. контракт со стороны мейнтейнера портов заключается в том, что модули поставить можно, если тот, кто ставит, готов принять риски. а тот, кто ставит, может думать "ну вот в порту же есть модули, значит это все официально" brotli такой модуль. я на нем ловил core dump (но те падения были исправлены). вообще, любой сторонний модуль несет подобные риски > Лично я все же грешу на бротли, т.к. из общения с мейнтейнером порта > выяснили, что при обновлении, после которого это все начало проявляться, > менялся исключительно бротли модуль. Но выключить бротли не могу. Тестовых > нет, а на рабочих наличие бротли в наше время это необходимый минимум. > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Thu Sep 22 19:58:15 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Fri, 23 Sep 2022 00:58:15 +0500 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/vQ==?= =?UTF-8?B?77+9IDEx?= In-Reply-To: <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> Message-ID: а чем вам, кстати, brotli помогает ? на наших тестах выигрыш по размеру (по сравнению с gzip) достигался кратным расходом CPU, настолько, что это переставало быть интересным. в принципе, у модуля есть вариант предварительного сжатия статических файлов, это могло бы быть интересно, но у нас было чистое проксирование, никакой статики пт, 23 сент. 2022 г. в 00:18, Dmytro Lavryk : > У меня лично, что падает. Я не настолько силен, чтобы с корефайлами > разобраться :( Просто странности - что с идентичными сборками (в плане > сторонних модулей) на одних серверах воркеры падают периодически, а на > других работают без проблем. Я как раз изначально и пытался понять в чем > именно проблема, но собирал совершенно идентичные (в плане сторонних > модулей и версий) а разница все равно есть. > Лично я все же грешу на бротли, т.к. из общения с мейнтейнером порта > выяснили, что при обновлении, после которого это все начало проявляться, > менялся исключительно бротли модуль. Но выключить бротли не могу. Тестовых > нет, а на рабочих наличие бротли в наше время это необходимый минимум. > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Thu Sep 22 20:01:08 2022 From: nginx-forum на forum.nginx.org (edo888) Date: Thu, 22 Sep 2022 16:01:08 -0400 Subject: =?UTF-8?Q?Re:=20=D0=9F=D1=83=D1=81=D1=82=D0=BE=D0=B9=20coredump=20=EF?= =?UTF-8?Q?=BF=BD=EF=BF=BD=D0=BB=D1=8F=20=D1=81=D0=B8=D0=B3=D0=BD=D0?= =?UTF-8?Q?=B0=D0=BB=EF=BF=BD=EF=BF=BD=2011?= In-Reply-To: <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> References: <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> Message-ID: Я рекомендую выполнить шаги на этой странице, чтобы включить дампы и выяснить причину: https://docs.nginx.com/nginx/admin-guide/monitoring/debugging/#coredump Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295263,295289#msg-295289 From gmm на csdoc.com Thu Sep 22 20:05:16 2022 From: gmm на csdoc.com (Gena Makhomed) Date: Thu, 22 Sep 2022 23:05:16 +0300 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDvv73vv73Qu9GPINGB0Lg=?= =?UTF-8?B?0LPQvdCw0Lvvv73vv70gMTE=?= In-Reply-To: <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> Message-ID: <2bd7635d-da8b-e477-6dfc-0224c5c2d939@csdoc.com> On 22.09.2022 22:17, Dmytro Lavryk wrote: > У меня лично, что падает. Я не настолько силен, чтобы с корефайлами разобраться :( Просто странности - что с идентичными сборками (в плане сторонних модулей) на одних серверах воркеры падают периодически, а на других работают без проблем. Я как раз изначально и пытался понять в чем именно проблема, но собирал совершенно идентичные (в плане сторонних модулей и версий) а разница все равно есть. Собрать версию nginx с включенным режимом --with-debug, сделать Core Dump при падении по signal 11 и посмотреть backtrace с помощью gdb - это ведь совсем не сложно. Но это поможет найти причину падения и устранить ее. Здесь уже публиковали ссылку на подробную документацию на эту тему: https://docs.nginx.com/nginx/admin-guide/monitoring/debugging/ Кстати, разве порт nginx-devel не лучше? Там более новая версия nginx. > Лично я все же грешу на бротли, т.к. из общения с мейнтейнером порта выяснили, что при обновлении, после которого это все начало проявляться,  менялся исключительно бротли модуль. Но выключить бротли не могу. Тестовых нет, а  на рабочих наличие бротли в наше время это необходимый минимум. Если бы brotli был действительно необходим - его бы уже давно включили в официальный дистрибутив nginx. Подробности: https://habr.com/ru/company/ruvds/blog/499278/ -- Best regards, Gena From mdounin на mdounin.ru Fri Sep 23 01:52:23 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 23 Sep 2022 04:52:23 +0300 Subject: =?utf-8?B?0J/Rg9GB0YLQvtC5IGNvcmVkdW1w?= =?utf-8?B?IO+/ve+/vdC70Y8g0YHQuNCz0L3QsNC777+977+9?= 11 In-Reply-To: <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> Message-ID: Hello! On Thu, Sep 22, 2022 at 11:17:34PM +0400, Dmytro Lavryk wrote: > У меня лично, что падает. Я не настолько силен, чтобы с > корефайлами разобраться :( Просто странности - что с идентичными > сборками (в плане сторонних модулей) на одних серверах воркеры > падают периодически, а на других работают без проблем. Я как раз > изначально и пытался понять в чем именно проблема, но собирал > совершенно идентичные (в плане сторонних модулей и версий) а > разница все равно есть. > > Лично я все же грешу на бротли, т.к. из общения с мейнтейнером > порта выяснили, что при обновлении, после которого это все > начало проявляться,  менялся исключительно бротли модуль. Но > выключить бротли не могу. Тестовых нет, а  на рабочих наличие > бротли в наше время это необходимый минимум. Отсутствие segfault'ов - это необходимый минимум. Если у вас со сторонними модулями сыпятся segfault'ы - нужно либо выключить сторонние модули, либо разобраться и устранить эти segfault'ы. Самый правильный способ, чтобы разобраться, если вы не умеете читать код и смотреть stack backtrace'ы - это выключить все сторонние модули, убедиться в отсутствии проблемы, потом включать их по одному и/или дихотомией, и тем самым определить модуль, вызывающий проблему. И дальше уже разбираться с конкретным модулем, либо самостоятельно, либо жалуясь разработчикам этого модуля. Тут, впрочем, скорее всего всё равно придётся учиться как минимум включать запись core-файлов (в этом треде хватает подробностей), а также выучить команду "gdb /path/to/nginx /path/to/core" и "backtrace" в нём. Что касается Brotli, то там, насколько я понимаю, в реальной жизни примерно одно преимущество: он чуть быстрее, чем gzip, при сравнимом уровне сжатия, и чуть лучше жмёт при том же потреблении процессора[1]. И с памятью, как я понимаю, при этом хуже, чем у gzip. Даже в условиях идеальной работы библиотеки и модуля - ну такое, на "необходимый минимум" не тянет. [1] https://paulcalvano.com/2018-07-25-brotli-compression-how-much-will-it-reduce-your-content/ -- Maxim Dounin http://mdounin.ru/ From root на dl.sm.ua Fri Sep 23 06:39:11 2022 From: root на dl.sm.ua (Dmytro Lavryk) Date: Fri, 23 Sep 2022 10:39:11 +0400 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVt?= =?UTF-8?B?cCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/ve+/vSAxMQ==?= In-Reply-To: References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> Message-ID: <18369125173.d3b50a25364071.2400391395613483160@dl.sm.ua> В наше время, к сожалению, "необходимый минимум" определяется не техническими деталями, а заклинаниями "SEO-шников", "менеджеров по продвижению" и прочих магов. ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Fri Sep 23 07:14:48 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Fri, 23 Sep 2022 12:14:48 +0500 Subject: =?UTF-8?B?UmU6INCf0YPRgdGC0L7QuSBjb3JlZHVtcCDvv73vv73Qu9GPINGB0LjQs9C90LDQu++/vQ==?= =?UTF-8?B?77+9IDEx?= In-Reply-To: <18369125173.d3b50a25364071.2400391395613483160@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> <18369125173.d3b50a25364071.2400391395613483160@dl.sm.ua> Message-ID: Спасибо им за то, что обеспечивают работой On Fri, Sep 23, 2022, 11:39 AM Dmytro Lavryk wrote: > В наше время, к сожалению, "необходимый минимум" определяется не > техническими деталями, а заклинаниями "SEO-шников", "менеджеров по > продвижению" и прочих магов. > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Fri Sep 23 11:24:27 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 23 Sep 2022 14:24:27 +0300 Subject: =?utf-8?B?0J/Rg9GB0YLQvtC5IGNvcmVkdW1w?= =?utf-8?B?IO+/ve+/vdC70Y8g0YHQuNCz0L3QsNC777+977+9?= 11 In-Reply-To: <18369125173.d3b50a25364071.2400391395613483160@dl.sm.ua> References: <83516e432d5ee62b259d5ab1ea8c8663.NginxMailingListRussian@forum.nginx.org> <183639d042b.bd5f9976281128.5288261677010942049@dl.sm.ua> <18366a246e8.114da0aa4343830.3216417927781725132@dl.sm.ua> <18369125173.d3b50a25364071.2400391395613483160@dl.sm.ua> Message-ID: Hello! On Fri, Sep 23, 2022 at 10:39:11AM +0400, Dmytro Lavryk wrote: > В наше время, к сожалению, "необходимый минимум" определяется не > техническими деталями, а заклинаниями "SEO-шников", "менеджеров > по продвижению" и прочих магов. Мне кажется, вы некорректно используете слова. Подобные требования стоит называть нетехническими требованиями вашего руководства, а не "необходимым минимумом". Так или иначе, это не мешает выключить Brotli на время и проверить, пропадут ли от этого segfault'ы - от этого наверняка ничего не сломается, а с некоторой вероятностью станет даже лучше, и при этом вы получите информацию, которая поможет вам разобраться с вашей проблемой. Странно этого не делать, основываясь на нетехнических требованиях руководства. -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Mon Sep 26 22:48:16 2022 From: nginx-forum на forum.nginx.org (oradba25) Date: Mon, 26 Sep 2022 18:48:16 -0400 Subject: =?UTF-8?Q?=D0=94=D0=B2=D0=B0=20=D1=80=D0=B0=D0=B7=D0=BD=D1=8B=D1=85?= =?UTF-8?Q?=20=D1=81=D0=B5=D1=80=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0?= =?UTF-8?Q?=D1=82=D0=B0=20=D0=BD=D0=B0=20=D1=85=D0=BE=D1=81=D1=82?= Message-ID: <4f5e7d4da26a9831be261706473a2cb3.NginxMailingListRussian@forum.nginx.org> Добрый день В документации есть фраза, что "Начиная с версии 1.11.0 эта директива [ssl_certificate] может быть указана несколько раз для загрузки сертификатов разных типов, например RSA и ECDSA" Вопрос -- можно ли использовать при этом цепочки разных ЦА, например GlobalSign и МинЦифры Для чего, понятно, в связи с текущими событиями плавно перейти на Российские сертификаты Или это можно сделать каким-либо другим способом не дублируя конфигурацию в разных виртуальных серверах? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295305,295305#msg-295305 From chipitsine на gmail.com Tue Sep 27 08:20:38 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 27 Sep 2022 13:20:38 +0500 Subject: =?UTF-8?B?UmU6INCU0LLQsCDRgNCw0LfQvdGL0YUg0YHQtdGA0YLQuNGE0LjQutCw0YLQsCDQvdCwIA==?= =?UTF-8?B?0YXQvtGB0YI=?= In-Reply-To: <4f5e7d4da26a9831be261706473a2cb3.NginxMailingListRussian@forum.nginx.org> References: <4f5e7d4da26a9831be261706473a2cb3.NginxMailingListRussian@forum.nginx.org> Message-ID: а минцифры случайно кросс сертификат для globalsign не делает ? вт, 27 сент. 2022 г. в 03:48, oradba25 : > Добрый день > > В документации есть фраза, что "Начиная с версии 1.11.0 эта директива > [ssl_certificate] может быть указана несколько раз для загрузки > сертификатов > разных типов, например RSA и ECDSA" > > Вопрос -- можно ли использовать при этом цепочки разных ЦА, например > GlobalSign и МинЦифры > > Для чего, понятно, в связи с текущими событиями плавно перейти на > Российские > сертификаты > > Или это можно сделать каким-либо другим способом не дублируя конфигурацию в > разных виртуальных серверах? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,295305,295305#msg-295305 > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Tue Sep 27 20:43:10 2022 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 27 Sep 2022 23:43:10 +0300 Subject: =?koi8-r?B?5NfBINLB2s7ZyCDTxdLUycbJ?= =?koi8-r?B?y8HUwSDOwSDIz9PU?= In-Reply-To: <4f5e7d4da26a9831be261706473a2cb3.NginxMailingListRussian@forum.nginx.org> References: <4f5e7d4da26a9831be261706473a2cb3.NginxMailingListRussian@forum.nginx.org> Message-ID: Hello! On Mon, Sep 26, 2022 at 06:48:16PM -0400, oradba25 wrote: > Добрый день > > В документации есть фраза, что "Начиная с версии 1.11.0 эта директива > [ssl_certificate] может быть указана несколько раз для загрузки сертификатов > разных типов, например RSA и ECDSA" > > Вопрос -- можно ли использовать при этом цепочки разных ЦА, например > GlobalSign и МинЦифры > > Для чего, понятно, в связи с текущими событиями плавно перейти на Российские > сертификаты > > Или это можно сделать каким-либо другим способом не дублируя конфигурацию в > разных виртуальных серверах? Выбор между RSA- и ECDSA-сертификатами делается на основе поддерживаемых клиентом шифронаборов: если для соединения будет выбран шифронабор с аутентификацией через ECDSA, то будет использован ECDSA-сертификат, а если с аутентификацией через RSA - то RSA-сертификат. При этом сертификаты предполагаются одинаковыми с точки зрения доверия клиентов. Для выбора между "российскими сертификатами" и нормальными на сервере нужно знать, примет ли клиент "российский сертификат", или же доверяет только тем корневым CA, наличия которых можно ожидать в стандартных браузерах. Такой информации в рамках установления SSL-соединения на сервере просто нет. Соответственно выбор придётся делать на основе отдельного имени сервера, если вы хотите выбор. -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Thu Sep 29 00:48:19 2022 From: nginx-forum на forum.nginx.org (oradba25) Date: Wed, 28 Sep 2022 20:48:19 -0400 Subject: =?UTF-8?Q?Re:=20=D0=94=D0=B2=D0=B0=20=D1=80=D0=B0=D0=B7=D0=BD=D1=8B?= =?UTF-8?Q?=D1=85=20=D1=81=D0=B5=D1=80=D1=82=D0=B8=D1=84=D0=B8=D0=BA?= =?UTF-8?Q?=D0=B0=D1=82=D0=B0=20=D0=BD=D0=B0=20=D1=85=D0=BE=D1=81=D1?= =?UTF-8?Q?=82?= In-Reply-To: References: Message-ID: <958ef8eb0979fe9774b033f6c26299d7.NginxMailingListRussian@forum.nginx.org> А можно подробней, что такое кросс-сертификат? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295305,295341#msg-295341 From chipitsine на gmail.com Thu Sep 29 03:31:41 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 29 Sep 2022 09:31:41 +0600 Subject: =?UTF-8?B?UmU6INCU0LLQsCDRgNCw0LfQvdGL0YUg0YHQtdGA0YLQuNGE0LjQutCw0YLQsCDQvdCwIA==?= =?UTF-8?B?0YXQvtGB0YI=?= In-Reply-To: <958ef8eb0979fe9774b033f6c26299d7.NginxMailingListRussian@forum.nginx.org> References: <958ef8eb0979fe9774b033f6c26299d7.NginxMailingListRussian@forum.nginx.org> Message-ID: Это сертификат globalsign, подписанный сертификатом Минсвязи. Имея кросс, можно выстроить цепочки доверия до обоих корней On Thu, Sep 29, 2022, 6:48 AM oradba25 wrote: > А можно подробней, что такое кросс-сертификат? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,295305,295341#msg-295341 > > _______________________________________________ > nginx-ru mailing list -- nginx-ru на nginx.org > To unsubscribe send an email to nginx-ru-leave на nginx.org > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Fri Sep 30 10:24:48 2022 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Fri, 30 Sep 2022 15:24:48 +0500 Subject: =?UTF-8?B?UmU6INCU0LLQsCDRgNCw0LfQvdGL0YUg0YHQtdGA0YLQuNGE0LjQutCw0YLQsCDQvdCwIA==?= =?UTF-8?B?0YXQvtGB0YI=?= In-Reply-To: References: <958ef8eb0979fe9774b033f6c26299d7.NginxMailingListRussian@forum.nginx.org> Message-ID: я подумал, вам скорее всего нужен был бы сертификат минсвязи, подписанный globalsign-ом. и такого в природе нет с вероятностью примерно 100% чт, 29 сент. 2022 г. в 08:31, Илья Шипицин : > Это сертификат globalsign, подписанный сертификатом Минсвязи. Имея кросс, > можно выстроить цепочки доверия до обоих корней > > On Thu, Sep 29, 2022, 6:48 AM oradba25 > wrote: > >> А можно подробней, что такое кросс-сертификат? >> >> Posted at Nginx Forum: >> https://forum.nginx.org/read.php?21,295305,295341#msg-295341 >> >> _______________________________________________ >> nginx-ru mailing list -- nginx-ru на nginx.org >> To unsubscribe send an email to nginx-ru-leave на nginx.org >> > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: