From chipitsine на gmail.com Wed Mar 6 09:02:03 2024 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 6 Mar 2024 10:02:03 +0100 Subject: NGINX as a WebSocket Proxy In-Reply-To: <81245ee0-4b27-4f85-8829-41210eaaada1@csdoc.com> References: <81245ee0-4b27-4f85-8829-41210eaaada1@csdoc.com> Message-ID: это очень странная статья. скажем так, между строк ПОДРАЗУМЕВАЕТСЯ, что ' '' close;' по причине того, что мы наверняка не знаем, есть ли keepalive в описании бекенде. по факту сокеты вроде и работают, но рвутся после каждого запроса. мы по этим же граблям прошлись в свое время чт, 29 февр. 2024 г. в 20:30, Gena Makhomed : > Здравствуйте, All! > > В статье https://www.nginx.com/blog/websocket-nginx/ > рекомендуется такой код: > > http { > map $http_upgrade $connection_upgrade { > default upgrade; > '' close; > } > > upstream websocket { > server 192.168.100.10:8010; > } > > server { > listen 8020; > location / { > proxy_pass http://websocket; > proxy_http_version 1.1; > proxy_set_header Upgrade $http_upgrade; > proxy_set_header Connection $connection_upgrade; > proxy_set_header Host $host; > } > } > } > > При этом в других статьях - для включения keep-alive > рекомендуется такой код: > > proxy_http_version 1.1; > proxy_set_header Connection ""; > > для того, чтобы режим Keep-alive работал между nginx и backend. > > Keep-alive connections are enabled by default in HTTP/1.1 while not in > HTTP/1.0. HTTP/1.0 was designed to close the connection after every > request between client and server. > > может быть в статье на сайте рекомендуется не самая оптимальная > настройка и лучше было бы сделать так: > > # cat /etc/nginx/nginx.conf > > http { > > map $http_upgrade $connection_upgrade { > default Upgrade; > '' ''; > } > > proxy_http_version 1.1; > proxy_set_header Upgrade $http_upgrade; > proxy_set_header Connection $connection_upgrade; > proxy_set_header Host $host; > } > > > в таком случае и вебсокеты смогут работать по любому урлу > и при этом keep-alive подключения к backend тоже будут работать. > > upstream node { > server 127.0.0.1:3000; > keepalive 64; > } > > > ведь нет же никаких причин разрешать вебсокеты только > по какому-то явно прописанному в конфиге урлу, > а по всем остальным урлам - запрещать? > > -- > Best regards, > Gena > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > https://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From eugene.prokopiev на gmail.com Wed Mar 13 06:00:07 2024 From: eugene.prokopiev на gmail.com (Eugene Prokopiev) Date: Wed, 13 Mar 2024 09:00:07 +0300 Subject: lock in nginx/njs Message-ID: Здравствуйте! Скажите, нет ли чего-нибудь похожего на https://github.com/openresty/lua-resty-lock/ в nginx/njs? Или может есть другой способ разрешить выполнять запросы с одинаковым $uri строго по очереди (один выполняется, остальные ждут)? -- WBR, Eugene Prokopiev From xeioex на nginx.com Wed Mar 13 06:11:08 2024 From: xeioex на nginx.com (Dmitry Volyntsev) Date: Tue, 12 Mar 2024 23:11:08 -0700 Subject: lock in nginx/njs In-Reply-To: References: Message-ID: On 12.03.2024 23:00, Eugene Prokopiev wrote: > Здравствуйте! > > Скажите, нет ли чего-нибудь похожего на > https://github.com/openresty/lua-resty-lock/ в nginx/njs? > Или может есть другой способ разрешить выполнять запросы с одинаковым > $uri строго по очереди (один выполняется, остальные ждут)? > А чем вас https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock не устраивает? Или более подробно опишите свою задачу From eugene.prokopiev на gmail.com Wed Mar 13 07:07:43 2024 From: eugene.prokopiev на gmail.com (Eugene Prokopiev) Date: Wed, 13 Mar 2024 10:07:43 +0300 Subject: lock in nginx/njs In-Reply-To: References: Message-ID: ср, 13 мар. 2024 г. в 09:11, Dmitry Volyntsev : > А чем вас > https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock > не устраивает? > Или более подробно опишите свою задачу Мне не нужно кэшировать результаты запросов Но если запросы POST /one/0.txt и POST /two/1.txt можно выполнять параллельно, то запросы POST /one/0.txt и POST /one/1.txt нужно ставить в очередь (на основании "каталога" в $uri) и выполнять один за другим, т.к. бакенд за proxy_pass не может корректно выполнять их одновременно -- WBR, Eugene Prokopiev From andrey на kopeyko.ru Wed Mar 13 08:01:39 2024 From: andrey на kopeyko.ru (Andrey A. Kopeyko) Date: Wed, 13 Mar 2024 11:01:39 +0300 Subject: lock in nginx/njs In-Reply-To: References: Message-ID: <0DB93C64-9E1F-49B4-B14C-955964483A10@kopeyko.ru> Нужная вам функциональность есть в mod_accel. Но придётся через промежуточный apache проксировать. 13 марта 2024 г. 10:07:43 GMT+03:00, Eugene Prokopiev пишет: >ср, 13 мар. 2024 г. в 09:11, Dmitry Volyntsev : > >> А чем вас >> https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock >> не устраивает? >> Или более подробно опишите свою задачу > >Мне не нужно кэшировать результаты запросов > >Но если запросы POST /one/0.txt и POST /two/1.txt можно выполнять >параллельно, то запросы POST /one/0.txt и POST /one/1.txt нужно >ставить в очередь (на основании "каталога" в $uri) и выполнять один за >другим, т.к. бакенд за proxy_pass не может корректно выполнять их >одновременно > >-- >WBR, >Eugene Prokopiev >_______________________________________________ >nginx-ru mailing list >nginx-ru на nginx.org >https://mailman.nginx.org/mailman/listinfo/nginx-ru -- Простите за краткость, создано в K-9 Mail. ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From eugene.prokopiev на gmail.com Wed Mar 13 10:12:45 2024 From: eugene.prokopiev на gmail.com (Eugene Prokopiev) Date: Wed, 13 Mar 2024 13:12:45 +0300 Subject: lock in nginx/njs In-Reply-To: <0DB93C64-9E1F-49B4-B14C-955964483A10@kopeyko.ru> References: <0DB93C64-9E1F-49B4-B14C-955964483A10@kopeyko.ru> Message-ID: ср, 13 мар. 2024 г. в 11:02, Andrey A. Kopeyko : > > Нужная вам функциональность есть в mod_accel. > > Но придётся через промежуточный apache проксировать. Ого, ну при таком раскладе проще взять openresty (тем более, что у меня запросы, которые нужно блокировать, не совсем идентичные) -- WBR, Eugene Prokopiev From kvt на kvtsoftware.com Wed Mar 13 11:39:22 2024 From: kvt на kvtsoftware.com (kvt на kvtsoftware.com) Date: Wed, 13 Mar 2024 14:39:22 +0300 Subject: lock in nginx/njs In-Reply-To: References: <0DB93C64-9E1F-49B4-B14C-955964483A10@kopeyko.ru> Message-ID: <182141710329846@mail.yandex.ru> Вложение в формате HTML было извлечено… URL: From ano на bestmx.net Tue Mar 19 08:16:58 2024 From: ano на bestmx.net (Andrey Oktyabrskiy) Date: Tue, 19 Mar 2024 11:16:58 +0300 Subject: lock in nginx/njs In-Reply-To: References: Message-ID: On 13.03.2024 09:00, Eugene Prokopiev wrote: > Здравствуйте! > > Скажите, нет ли чего-нибудь похожего на > https://github.com/openresty/lua-resty-lock/ в nginx/njs? > Или может есть другой способ разрешить выполнять запросы с одинаковым > $uri строго по очереди (один выполняется, остальные ждут)? > Без шансов. Я задавал этот вопос несколько лет назад. Единственный способ выполнять подзапросы последовательно - вложенные подзапросы. Очень серьёзное ограничение, не позволяющее использовать njs везде, где хотелось бы. From xcripz на gmail.com Wed Mar 27 13:27:05 2024 From: xcripz на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JPRgNC40LPQvtGA0YzQtdCy?=) Date: Wed, 27 Mar 2024 16:27:05 +0300 Subject: =?UTF-8?B?RndkOiDQn9GA0L7QstC10YDQutCwINGB0LLRj9C30LrQuCDRgdC10YDRgtC40YTQuNC6?= =?UTF-8?B?0LDRgivQutC70Y7Rhw==?= In-Reply-To: References: Message-ID: Здравствуйте. Обнаружил необычное (на мой взгяд поведение) - если "смешать" криптографические алгоритмы (сертификат ECDSA, ключ RSA или наоборот) то nginx не ругается при релоаде и применяет конфигурацию (при выполнении nginx -t тоже нет ошибок). (абсурдность самой ситуации можно не обсуждать, но к сожалению бывает и такое) Это ожидаемое поведение или похоже на баг? Проверял на разных версиях и ОС, но на всякий случай прикладываю: *snake на carbon:~$ nginx -Vnginx version: nginx/1.24.0built by gcc 10.2.1 20210110 (Debian 10.2.1-6) built with OpenSSL 1.1.1n 15 Mar 2022 (running with OpenSSL 1.1.1f 31 Mar 2020)TLS SNI support enabledconfigure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --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 --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -ffile-prefix-map=/data/builder/debuild/nginx-1.24.0/debian/debuild-base/nginx-1.24.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'* ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Wed Mar 27 13:57:36 2024 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 27 Mar 2024 14:57:36 +0100 Subject: =?UTF-8?B?UmU6INCf0YDQvtCy0LXRgNC60LAg0YHQstGP0LfQutC4INGB0LXRgNGC0LjRhNC40LrQsA==?= =?UTF-8?B?0YIr0LrQu9GO0Yc=?= In-Reply-To: References: Message-ID: это не абсурдная идея, это фича такая. вы можете практически произвольный набор сертификатов отдавать в цепочке. мы например, отдавали кросс-сертификаты. они не обязаны как-то логически связываться с закрытым ключом ср, 27 мар. 2024 г. в 14:27, Иван Григорьев : > Здравствуйте. > > Обнаружил необычное (на мой взгяд поведение) - если "смешать" > криптографические алгоритмы (сертификат ECDSA, ключ RSA или наоборот) то > nginx не ругается при релоаде и применяет конфигурацию (при выполнении > nginx -t тоже нет ошибок). > > (абсурдность самой ситуации можно не обсуждать, но к сожалению бывает и > такое) > > Это ожидаемое поведение или похоже на баг? > > Проверял на разных версиях и ОС, но на всякий случай прикладываю: > > > > > > *snake на carbon:~$ nginx -Vnginx version: nginx/1.24.0built by gcc 10.2.1 > 20210110 (Debian 10.2.1-6) built with OpenSSL 1.1.1n 15 Mar 2022 (running > with OpenSSL 1.1.1f 31 Mar 2020)TLS SNI support enabledconfigure > arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx > --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf > --error-log-path=/var/log/nginx/error.log > --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid > --lock-path=/var/run/nginx.lock > --http-client-body-temp-path=/var/cache/nginx/client_temp > --http-proxy-temp-path=/var/cache/nginx/proxy_temp > --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp > --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp > --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx > --with-compat --with-file-aio --with-threads --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 --with-http_v2_module --with-mail > --with-mail_ssl_module --with-stream --with-stream_realip_module > --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g > -O2 > -ffile-prefix-map=/data/builder/debuild/nginx-1.24.0/debian/debuild-base/nginx-1.24.0=. > -fstack-protector-strong -Wformat -Werror=format-security > -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now > -Wl,--as-needed -pie'* > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > https://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: