From nginx-forum на nginx.us Thu Oct 1 21:42:27 2015 From: nginx-forum на nginx.us (OZzzy) Date: Thu, 01 Oct 2015 17:42:27 -0400 Subject: Debug log In-Reply-To: References: Message-ID: <4b726af8100b686974cd7272be412952.NginxMailingListRussian@forum.nginx.org> Спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261932,261969#msg-261969 From nginx-forum на nginx.us Thu Oct 1 23:14:16 2015 From: nginx-forum на nginx.us (OZzzy) Date: Thu, 01 Oct 2015 19:14:16 -0400 Subject: failed (111 connection refused) Message-ID: <20ae04e161dbb2fd98be3b3c356da3a9.NginxMailingListRussian@forum.nginx.org> Логи: nginx 2015/10/02 01:31:57 [debug] 26283#0: *211 http process request line 2015/10/02 01:31:57 [debug] 26283#0: *211 http request line: "GET /iweb/roles/ HTTP/1.1" 2015/10/02 01:31:57 [debug] 26283#0: *211 http uri: "/iweb/roles/" 2015/10/02 01:31:57 [debug] 26283#0: *211 http args: "" 2015/10/02 01:31:57 [debug] 26283#0: *211 http exten: "" 2015/10/02 01:31:57 [debug] 26283#0: *211 http process request header line 2015/10/02 01:31:57 [debug] 26283#0: *211 http header: "Host: 95.65.37.90:44410" 2015/10/02 01:31:57 [debug] 26283#0: *211 http header: "Connection: keep-alive" 2015/10/02 01:31:57 [debug] 26283#0: *211 http header: "Cache-Control: max-age=0" 2015/10/02 01:31:57 [debug] 26283#0: *211 http header: "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" 2015/10/02 01:31:57 [debug] 26283#0: *211 http header: "Upgrade-Insecure-Requests: 1" 2015/10/02 01:31:57 [debug] 26283#0: *211 http header: "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36" 2015/10/02 01:31:57 [debug] 26283#0: *211 http header: "Accept-Encoding: gzip, deflate, sdch" 2015/10/02 01:31:57 [debug] 26283#0: *211 http header: "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" 2015/10/02 01:31:57 [debug] 26283#0: *211 http header done 2015/10/02 01:31:57 [debug] 26283#0: *211 event timer del: 7: 629766226 2015/10/02 01:31:57 [debug] 26283#0: *211 rewrite phase: 0 2015/10/02 01:31:57 [debug] 26283#0: *211 test location: "/iweb/" 2015/10/02 01:31:57 [debug] 26283#0: *211 using configuration "/iweb/" 2015/10/02 01:31:57 [debug] 26283#0: worker cycle 2015/10/02 01:31:57 [debug] 26283#0: accept mutex locked 2015/10/02 01:31:57 [debug] 26283#0: epoll timer: 59999 2015/10/02 01:31:57 [debug] 26283#0: epoll: fd:7 ev:0004 d:08ADC64C 2015/10/02 01:31:57 [debug] 26283#0: epoll: fd:19 ev:201D d:08ADC724 2015/10/02 01:31:57 [debug] 26283#0: epoll_wait() error on fd:19 ev:201D 2015/10/02 01:31:57 [debug] 26283#0: timer delta: 1 ------------------------------------------------------- iweb 015/10/02 01:31:57 [error] 26283#0: *211 connect() failed (111: Connection refused) while connecting to upstream, client: 212.28.83.142, server: , request: "GET /iweb/roles/ HTTP/1.1", upstream: "http://127.0.0.1:8080/iweb/roles/", host: "95.65.37.90:44410" ------------------------------------------------------ httpd [Thu Oct 01 22:53:31 2015] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations ------------------------------------------------------ Подскажите как исправить Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261970,261970#msg-261970 From nginx-forum на nginx.us Sat Oct 3 18:18:18 2015 From: nginx-forum на nginx.us (bagas) Date: Sat, 03 Oct 2015 14:18:18 -0400 Subject: nginx testcookie Message-ID: <7e6d3d169034abda7f6a2a9696fe76a0.NginxMailingListRussian@forum.nginx.org> Народ добрый вечер. Кто использует для отсечения ддос атака моудль нгинс testcookie? есть некторые непонятки, не пойму логики. настраиваю по этой инструкции http://habrahabr.ru/post/139931/ # uname -rms FreeBSD 10.2-RELEASE-p4 amd64 Нгинс собран с модулем testcookie # nginx -V nginx version: nginx/1.8.0 built by clang 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512 built with OpenSSL 1.0.1p-freebsd 9 Jul 2015 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=/mnt/log/nginx/nginx-error.log --user=www --group=www --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=/mnt/log/nginx/nginx-access.log --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --add-module=/usr/sources/kyprizel-testcookie-nginx-module-fa546e2 конфиг nginx.conf http { testcookie off; testcookie_name ddos; testcookie_secret a1bes8r0f7bj228r2e16f4b2djslfka39ds5962; testcookie_session $remote_addr; testcookie_arg attempt; testcookie_max_attempts 3; testcookie_fallback /cookies.html?backurl=http://$host$request_uri; testcookie_get_only on; testcookie_redirect_via_refresh on; testcookie_refresh_encrypt_cookie on; testcookie_refresh_encrypt_cookie_key random; testcookie_refresh_encrypt_cookie_iv random; include /usr/local/etc/nginx/testcookie_whitelist.conf; testcookie_refresh_template ' Для нашего сервиса нужно включить куки в вашем браузере.
При выключенных куках браузера, у вас есть несколько попыток, после вы будите заблокированы.

For our service you need to enable cookies in your browser.
If you turn off cookies the browser, you have a few attempts before you\'ll blocked.
'; .... виртуал хост . пока на тестовом сервере тестирую. location = /cookies.html { root /usr/local/www/def; } location = /aes.min.js { gzip on; gzip_min_length 1000; gzip_types text/plain; root /usr/local/www/def; } location / { testcookie on; root /usr/local/www/munin; ... Лог. 2.2.2.2 - [03/Oct/2015:20:39:29 +0300] "GET /cookies.html?backurl=http://9.0.9.0/?attempt=3 HTTP/1.1" 200 "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" 2.2.2.2 - [03/Oct/2015:20:39:29 +0300] "GET /favicon.ico HTTP/1.1" 200 "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" 2.2.2.2 - [03/Oct/2015:20:39:29 +0300] "GET /cookies.html?backurl=http://9.0.9.0/?attempt=3 HTTP/1.1" 200 "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" 2.2.2.2 - [03/Oct/2015:20:39:29 +0300] "GET /favicon.ico HTTP/1.1" 200 "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" 2.2.2.2 - [03/Oct/2015:20:39:30 +0300] "GET /cookies.html?backurl=http://9.0.9.0/?attempt=3 HTTP/1.1" 200 "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" 2.2.2.2 - [03/Oct/2015:20:39:30 +0300] "GET /favicon.ico HTTP/1.1" 200 "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" 2.2.2.2 - [03/Oct/2015:20:39:30 +0300] "GET /cookies.html?backurl=http://9.0.9.0/?attempt=3 HTTP/1.1" 200 "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" 2.2.2.2 - [03/Oct/2015:20:39:30 +0300] "GET /favicon.ico HTTP/1.1" 200 "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" Я логики не пойму этого модуля, как мне отслеживать ботов при этом? Если включить куки, то сайт конечно грузится, либо если добавить себя в исключения. Если же с отключенными куками как видно в логах опера, то сразу без предупреждения вылетает cookies.html, и код ответа 200. Подскажите пожалуйста что я делаю не так в настройке этого модуля? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261991,261991#msg-261991 From postmaster на softsearch.ru Sat Oct 3 18:54:47 2015 From: postmaster на softsearch.ru (=?Windows-1251?B?zOj14OjrIMzu7eD4uOI=?=) Date: Sat, 3 Oct 2015 21:54:47 +0300 Subject: nginx testcookie In-Reply-To: <7e6d3d169034abda7f6a2a9696fe76a0.NginxMailingListRussian@forum.nginx.org> References: <7e6d3d169034abda7f6a2a9696fe76a0.NginxMailingListRussian@forum.nginx.org> Message-ID: <1659973420.20151003215447@softsearch.ru> Здравствуйте, bagas. > Народ добрый вечер. > Кто использует для отсечения ддос атака моудль нгинс testcookie? > есть некторые непонятки, не пойму логики. > настраиваю по этой инструкции > http://habrahabr.ru/post/139931/ Боты часто умеют и куки и редиректы и Javascript и всё прочее. Посмотрите на chromium - это встраиваемый браузер. В боты его тоже успешно встраивают и так имитируют обычных юзеров. Если досят конкретно Ваш сайт, то этот модуль Вам не поможет, ибо всё описанное в статье обходится. -- С уважением, Михаил mailto:postmaster на softsearch.ru From valintinr на tangramltd.com Sat Oct 3 20:26:06 2015 From: valintinr на tangramltd.com (=?UTF-8?B?0JLQsNC70LXQvdGC0LjQvSDQoNC+0YHQsNCy0LjRhtC60LjQuQ==?=) Date: Sat, 3 Oct 2015 23:26:06 +0300 Subject: nginx testcookie In-Reply-To: <7e6d3d169034abda7f6a2a9696fe76a0.NginxMailingListRussian@forum.nginx.org> References: <7e6d3d169034abda7f6a2a9696fe76a0.NginxMailingListRussian@forum.nginx.org> Message-ID: <561039DE.20309@tangramltd.com> Посмотрите senginx и их модуль robot_mitigation (это переписан на С модуль Roboo). http://www.senginx.org/en/index.php/HTTP_Robot_Mitigation#robot_mitigation_mode Можно фильтровать флэшом, если бот который Вас атакует такое умеет то видимо уже самодельными решениями не обойтись. 03.10.2015 21:18, bagas пишет: > Народ добрый вечер. > Кто использует для отсечения ддос атака моудль нгинс testcookie? > есть некторые непонятки, не пойму логики. > настраиваю по этой инструкции > http://habrahabr.ru/post/139931/ > > # uname -rms > FreeBSD 10.2-RELEASE-p4 amd64 > > Нгинс собран с модулем testcookie > > # nginx -V > nginx version: nginx/1.8.0 > built by clang 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512 > built with OpenSSL 1.0.1p-freebsd 9 Jul 2015 > 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=/mnt/log/nginx/nginx-error.log --user=www --group=www > --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=/mnt/log/nginx/nginx-access.log > --with-http_gzip_static_module --with-http_stub_status_module --with-pcre > --add-module=/usr/sources/kyprizel-testcookie-nginx-module-fa546e2 > > > конфиг nginx.conf > http { > testcookie off; > testcookie_name ddos; > testcookie_secret a1bes8r0f7bj228r2e16f4b2djslfka39ds5962; > testcookie_session $remote_addr; > testcookie_arg attempt; > testcookie_max_attempts 3; > testcookie_fallback /cookies.html?backurl=http://$host$request_uri; > testcookie_get_only on; > testcookie_redirect_via_refresh on; > testcookie_refresh_encrypt_cookie on; > testcookie_refresh_encrypt_cookie_key random; > testcookie_refresh_encrypt_cookie_iv random; > include /usr/local/etc/nginx/testcookie_whitelist.conf; > testcookie_refresh_template ' > > > Для нашего сервиса нужно включить куки в вашем браузере.
> При выключенных куках браузера, у вас есть несколько попыток, после вы > будите заблокированы.
>
> For our service you need to enable cookies in your browser.
> If you turn off cookies the browser, you have a few attempts before you\'ll > blocked.
> '; > .... > > > виртуал хост . > пока на тестовом сервере тестирую. > > > location = /cookies.html { > root /usr/local/www/def; > } > > location = /aes.min.js { > gzip on; > gzip_min_length 1000; > gzip_types text/plain; > root /usr/local/www/def; > } > > location / { > testcookie on; > root /usr/local/www/munin; > ... > > > Лог. > > 2.2.2.2 - [03/Oct/2015:20:39:29 +0300] "GET > /cookies.html?backurl=http://9.0.9.0/?attempt=3 HTTP/1.1" 200 "Opera/9.80 > (X11; Linux x86_64) Presto/2.12.388 Version/12.16" > 2.2.2.2 - [03/Oct/2015:20:39:29 +0300] "GET /favicon.ico HTTP/1.1" 200 > "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" > 2.2.2.2 - [03/Oct/2015:20:39:29 +0300] "GET > /cookies.html?backurl=http://9.0.9.0/?attempt=3 HTTP/1.1" 200 "Opera/9.80 > (X11; Linux x86_64) Presto/2.12.388 Version/12.16" > 2.2.2.2 - [03/Oct/2015:20:39:29 +0300] "GET /favicon.ico HTTP/1.1" 200 > "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" > 2.2.2.2 - [03/Oct/2015:20:39:30 +0300] "GET > /cookies.html?backurl=http://9.0.9.0/?attempt=3 HTTP/1.1" 200 "Opera/9.80 > (X11; Linux x86_64) Presto/2.12.388 Version/12.16" > 2.2.2.2 - [03/Oct/2015:20:39:30 +0300] "GET /favicon.ico HTTP/1.1" 200 > "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" > 2.2.2.2 - [03/Oct/2015:20:39:30 +0300] "GET > /cookies.html?backurl=http://9.0.9.0/?attempt=3 HTTP/1.1" 200 "Opera/9.80 > (X11; Linux x86_64) Presto/2.12.388 Version/12.16" > 2.2.2.2 - [03/Oct/2015:20:39:30 +0300] "GET /favicon.ico HTTP/1.1" 200 > "Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16" > > > Я логики не пойму этого модуля, как мне отслеживать ботов при этом? > Если включить куки, то сайт конечно грузится, либо если добавить себя в > исключения. > Если же с отключенными куками как видно в логах опера, то сразу без > предупреждения вылетает cookies.html, и код ответа 200. > Подскажите пожалуйста что я делаю не так в настройке этого модуля? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261991,261991#msg-261991 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на nginx.us Sun Oct 4 05:54:37 2015 From: nginx-forum на nginx.us (bagas) Date: Sun, 04 Oct 2015 01:54:37 -0400 Subject: nginx testcookie In-Reply-To: <1659973420.20151003215447@softsearch.ru> References: <1659973420.20151003215447@softsearch.ru> Message-ID: <968489d5eb9daef12519d103e4c55a1e.NginxMailingListRussian@forum.nginx.org> Хмм, я не думаю что прям все боты могут и редирект и куки шифрованные подделывать, в 95% случаев думаю этого бдит достаточно. Но хотелось бы настроить и понять как модуль testcookie. И что я делаю не так в настройке этого модуля. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261991,261995#msg-261995 From nginx-ru на sadok.spb.ru Sun Oct 4 08:28:16 2015 From: nginx-ru на sadok.spb.ru (Dmitry Ivanov) Date: Sun, 4 Oct 2015 11:28:16 +0300 Subject: nginx testcookie In-Reply-To: <968489d5eb9daef12519d103e4c55a1e.NginxMailingListRussian@forum.nginx.org> References: <1659973420.20151003215447@softsearch.ru> <968489d5eb9daef12519d103e4c55a1e.NginxMailingListRussian@forum.nginx.org> Message-ID: <1985184364.20151004112816@sadok.spb.ru> Здравствуйте, bagas. Вы писали 4 октября 2015 г., 8:54:37: > Хмм, я не думаю что прям все боты могут и редирект и куки шифрованные Умеют, умеют... Мы в свое время замахались решать это на уровне приложений и сдали проблему сетевикам наверху. Они там уже как-то сами.. -- С уважением, Dmitry nginx-ru на sadok.spb.ru From nginx-forum на nginx.us Sun Oct 4 12:50:40 2015 From: nginx-forum на nginx.us (bagas) Date: Sun, 04 Oct 2015 08:50:40 -0400 Subject: nginx testcookie In-Reply-To: <1985184364.20151004112816@sadok.spb.ru> References: <1985184364.20151004112816@sadok.spb.ru> Message-ID: <5c2d3b9d863baa45d2f4c1a2575e880a.NginxMailingListRussian@forum.nginx.org> Ясно, хотелось бы разоабратся. Но мало информации и примеров мало по этому модулю. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261991,262000#msg-262000 From maybe на arjlover.net Mon Oct 5 11:40:00 2015 From: maybe на arjlover.net (Anton Kuznetsov) Date: Mon, 5 Oct 2015 13:40:00 +0200 Subject: =?UTF-8?B?0JrQsNC6INGB0LTQtdC70LDRgtGMINC00LLQsCDQstC70L7QttC10L3QvdGL0YUg?= =?UTF-8?B?0YPRgdC70L7QstC40Y8g0LIgbWFwINC40LvQuCBpZg==?= Message-ID: Добрый день! Есть server {} общий для http & https Появилась необходимость для 2 стран сделать его только на https с обязательным редиректом. Но всех остальных так же обязательно оставить на http. Так не хочется дублировать этот server {} длинный. А сделать редиректы внутри одного - истина где-то рядом, но никак не дотянуться... Попытался сделать как в лучших домах: http{ map "$scheme:$geoip_country_code" $tossl { "https:RU" "1"; "https:UA" "1"; "http:RU" "2"; "http:UA" "2"; }} server{} if ($tossl = "1") {rewrite ^(.*)$ https://example.com$1 permanent;} Но вот второе правило должно работать от обратного. Надо заредиректить всех кто не "2", но внутри одного server{} это так же будет и 1. А как в map пометить все страны кроме этих двух, но с учетом схемы? Нужна снова последовательная вложенность if. Есть известный костыль: if ( $geoip_country_code !~ "RU|UA") { set $lock1 1; } if ( $scheme = "https" ) { set $lock2 1; } set $lock3 "$lock1$lock2"; if ( $lock3 = "11" ) { rewrite ^/(.*)$ http://example.com/$1 last ; } Но он такой уродский... -- Best regards, Anton Kuznetsov. -------------- next part -------------- An HTML attachment was scrubbed... URL: From livingdeadzerg на yandex.ru Mon Oct 5 13:18:38 2015 From: livingdeadzerg на yandex.ru (navern) Date: Mon, 05 Oct 2015 16:18:38 +0300 Subject: nginx testcookie In-Reply-To: <1985184364.20151004112816@sadok.spb.ru> References: <1659973420.20151003215447@softsearch.ru> <968489d5eb9daef12519d103e4c55a1e.NginxMailingListRussian@forum.nginx.org> <1985184364.20151004112816@sadok.spb.ru> Message-ID: <561278AE.5010700@yandex.ru> On 04.10.2015 11:28, Dmitry Ivanov wrote: > Здравствуйте, bagas. > > Вы писали 4 октября 2015 г., 8:54:37: > >> Хмм, я не думаю что прям все боты могут и редирект и куки шифрованные > Умеют, умеют... Мы в свое время замахались решать это на уровне > приложений и сдали проблему сетевикам наверху. Они там уже как-то > сами.. > Не у всех есть сетевики наверху, чтобы решить подобные проблемы:) Да, конечно, например phantomjs достучится до браузера несмотря на куки. Но школьника запустившего wrk или ab, для флуда на сайт подобные решения с куками успешно остановят. В принципе модуль testcookie не обязательно нужен, можно проверять наличие необходимой куки на уровне nginx(if блоки или lua). Мне часто подобная защита помогала от тупого флуда. From ek на nginx.com Mon Oct 5 20:59:51 2015 From: ek на nginx.com (Ekaterina Kukushkina) Date: Mon, 5 Oct 2015 23:59:51 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdC00LXQu9Cw0YLRjCDQtNCy0LAg0LLQu9C+0LbQtdC90L0=?= =?UTF-8?B?0YvRhSDRg9GB0LvQvtCy0LjRjyDQsiBtYXAg0LjQu9C4IGlm?= In-Reply-To: References: Message-ID: <0EB46E38-B04A-4F78-9B65-9D723D9B7021@nginx.com> Добрый день. А можно еще раз? А то непонятно. То "для 2 стран сделать на https с обязательным редиректом", то "надо заредиректить всех кто не 2". А если отлвечься от непонятного описания, то такие условные мапы можно делать двумя способами. 1) с использованием регулярных выражений. Частично похоже на обработку регулярных выражений в локейшенах - сначала проверяется полное соответствие строковых значений, если ничего не совпало - проверяются регулярные выражения до первого совпадения. В данном примере, если схема - https, а код RU или UA, то $redirect_var будет равно "0", для всех остальных https значение будет "1" map "$scheme:$geoip_country_code" $redirect_var { https:RU 0; https:UA 0; ~https: 1; } 2) без использования регулярных выражений (ищется полное соответствие независимо от его расположения в map) map $scheme $redirect_var { https $check_country; } map $geoip_country_code $check_country { RU 0; UA 0; default 1; } А дальше уже можно писать if ($redirect_var) { ...; }. Это условие будет срабатывать в том случае, если перменная $redirect_var существует и не равна нулю. Т.е. для http - эта переменная не определена, поэтому условие на выполняется для https (RU|UA) - эта переменная равна "0", поэтому условие не выполняется остальные https - эта перменная равно "1", условие выполнится. > On 05 Oct 2015, at 14:40, Anton Kuznetsov wrote: > > Добрый день! > > Есть server {} общий для http & https > > Появилась необходимость для 2 стран сделать его только на https с обязательным редиректом. Но всех остальных так же обязательно оставить на http. Так не хочется дублировать этот server {} длинный. А сделать редиректы внутри одного - истина где-то рядом, но никак не дотянуться... > Попытался сделать как в лучших домах: > > http{ > map "$scheme:$geoip_country_code" $tossl { > "https:RU" "1"; > "https:UA" "1"; > "http:RU" "2"; > "http:UA" "2"; > }} > > server{} > if ($tossl = "1") {rewrite ^(.*)$ https://example.com$1 permanent;} > > Но вот второе правило должно работать от обратного. Надо заредиректить всех кто не "2", но внутри одного server{} это так же будет и 1. А как в map пометить все страны кроме этих двух, но с учетом схемы? Нужна снова последовательная вложенность if. > > Есть известный костыль: > > if ( $geoip_country_code !~ "RU|UA") { set $lock1 1; } > if ( $scheme = "https" ) { set $lock2 1; } > set $lock3 "$lock1$lock2"; > if ( $lock3 = "11" ) { rewrite ^/(.*)$ http://example.com/$1 last ; } > > Но он такой уродский... > > -- > Best regards, > Anton Kuznetsov. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Ekaterina Kukushkina From maybe на arjlover.net Tue Oct 6 16:47:54 2015 From: maybe на arjlover.net (Anton Kuznetsov) Date: Tue, 6 Oct 2015 18:47:54 +0200 Subject: proxy_cache & gzip In-Reply-To: References: <20150817172929.GD37350@mdounin.ru> Message-ID: А можно ли все таки в ключ кэширования добавить переменную, но не $http_accept_encoding, потому что там слишком много вариантов, а проверить - есть ли внутри нее указан gzip, то $cache_encoding=gzip и его в ключ. Получится всего две версии кэша. 2015-08-17 19:34 GMT+02:00 Eugene Toropov : > Понятно, спасибо. Хотел убедиться, что ничего нельзя сделать на своей > стороне, ибо настройки бэкенда не доступны, но теперь будем спрашивать с > апстрима. > > Евгений > ​ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kuznetsov. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sejo412 на gmail.com Tue Oct 6 23:20:38 2015 From: sejo412 на gmail.com (=?UTF-8?B?0KHQuNC90LjRhtC60LjQuSDQn9Cw0LLQtdC7INCV0LLQs9C10L3RjNC10LLQuNGH?=) Date: Wed, 7 Oct 2015 02:20:38 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdC00LXQu9Cw0YLRjCDQtNCy0LAg0LLQu9C+0LbQtdC90L0=?= =?UTF-8?B?0YvRhSDRg9GB0LvQvtCy0LjRjyDQsiBtYXAg0LjQu9C4IGlm?= In-Reply-To: <0EB46E38-B04A-4F78-9B65-9D723D9B7021@nginx.com> References: <0EB46E38-B04A-4F78-9B65-9D723D9B7021@nginx.com> Message-ID: >> 1) с использованием регулярных выражений. Частично похоже на обработку регулярных выражений в локейшенах - сначала проверяется полное соответствие строковых значений, если ничего не совпало - проверяются регулярные выражения до первого совпадения. Екатерина, вы меня сейчас спасли от эпик-фэйла, спасибо ) почему-то был уверен, что приоритет у самого длинного регекспа, а не первого совпадения. откуда взялось это заблуждение - понятия не имею (посыпаю голову пеплом) P.S.: Люди, будьте внимательны, готовя рецепты/манифесты для всяких паппетов/шефов - хэши там сортируются черти как. -- С уважением, Синицкий Павел Евгеньевич тел. +79647994159 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-ru на sadok.spb.ru Wed Oct 7 03:41:21 2015 From: nginx-ru на sadok.spb.ru (Dmitry Ivanov) Date: Wed, 7 Oct 2015 06:41:21 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdC00LXQu9Cw0YLRjCDQtNCy0LAg0LLQu9C+0LbQtdC90L0=?= =?UTF-8?B?0YvRhSDRg9GB0LvQvtCy0LjRjyDQsiBtYXAg0LjQu9C4IGlm?= In-Reply-To: References: <0EB46E38-B04A-4F78-9B65-9D723D9B7021@nginx.com> Message-ID: <1713809890.20151007064121@sadok.spb.ru> Здравствуйте, Синицкий. Вы писали 7 октября 2015 г., 2:20:38: > P.S.: Люди, будьте внимательны, готовя рецепты/манифесты для всяких > паппетов/шефов - хэши там сортируются черти как. Хэши и не должны сортироваться, если их специально не попросить. Т.е. никакого FIFO внутри не предусмотрено. -- С уважением, Dmitry nginx-ru на sadok.spb.ru From chipitsine на gmail.com Wed Oct 7 07:06:28 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 7 Oct 2015 12:06:28 +0500 Subject: =?UTF-8?B?0LTQuNCw0L/QsNC30L7QvSDQv9C+0YDRgtC+0LIg0LIg0LzQvtC00YPQu9C1IHN0?= =?UTF-8?B?cmVhbSA/?= Message-ID: Добрый день! для проксирования ftp-соединений на haproxy мы используем listen с диапазоном портов: listen ftp-data2-pasv.xxx.xxx.ru 1.1.1.1:30001-50000 можно ли заложить подобную функциональность в модуль stream ? Илья Шипицин ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From maxim на nginx.com Wed Oct 7 07:10:27 2015 From: maxim на nginx.com (Maxim Konovalov) Date: Wed, 7 Oct 2015 10:10:27 +0300 Subject: =?UTF-8?B?UmU6INC00LjQsNC/0LDQt9C+0L0g0L/QvtGA0YLQvtCyINCyINC80L7QtNGD0Ls=?= =?UTF-8?B?0LUgc3RyZWFtID8=?= In-Reply-To: References: Message-ID: <5614C563.4050600@nginx.com> On 10/7/15 10:06 AM, Илья Шипицин wrote: > Добрый день! > > для проксирования ftp-соединений на haproxy мы используем listen с > диапазоном портов: > > listen ftp-data2-pasv.xxx.xxx.ru > 1.1.1.1:30001-50000 > > можно ли заложить подобную функциональность в модуль stream ? > Подумаем. -- Maxim Konovalov From nginx-forum на nginx.us Wed Oct 7 15:46:41 2015 From: nginx-forum на nginx.us (buxley) Date: Wed, 07 Oct 2015 11:46:41 -0400 Subject: Accidental timeout request Message-ID: Добрый день! Есть файловое хранилище. Организовано из 2х узлов - кеширующего фронтенда и бекенда где лежат файлики. Столкнулись со следующей аномалией. Рандомные реквесты время от времени отваливаются по таймауту. Найти закономерность не получилось. Один и тот же реквест может отработать, а может и не отработать. В архиве (https://habrastorage.org/storage/stuff/tech/nginxlog.tgz) примеры дебага удачных и неудачных запросов с бекенда и фронтенда к одному и тому же файлу. -- Дмитрий Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262053,262053#msg-262053 From juriy.foboss на gmail.com Thu Oct 8 09:09:20 2015 From: juriy.foboss на gmail.com (Juriy Strashnov) Date: Thu, 8 Oct 2015 12:09:20 +0300 Subject: =?UTF-8?B?InByb3h5X2NhY2hlX3ZhbGlkIDQwMCIgLS0g0LLQvtC30LzQvtC20L3QviDQu9C4?= =?UTF-8?B?Pw==?= Message-ID: Коллеги, всем привет! Возникла нужда кратковременно кешировать ответы backend'a. Проблема в том, что надо не только код 200, но и 400. Попробовал так (в лоб): proxy_cache_path /var/cache/nginx/apicache levels=1:2 keys_zone=apicache:10m; location /api { <...> proxy_cache apicache; proxy_cache_use_stale error timeout updating; proxy_cache_lock on; proxy_cache_valid any 30s; * proxy_cache_valid 400 30s;* proxy_cache_methods POST; proxy_cache_key "$request_uri|$request_body"; proxy_ignore_headers X-Accel-Expires Expires Cache-Control; add_header X-Cached $upstream_cache_status; } Не помогло! Если на код 200 в ответе появляется заголовок: HTTP/1.1 200 OK Server: nginx Date: Thu, 08 Oct 2015 08:54:38 GMT Content-Length: 0 Connection: keep-alive *X-Cached: HIT* то на 400 его уже нет: HTTP/1.1 400 Bad Request Server: nginx Date: Thu, 08 Oct 2015 08:54:30 GMT Content-Length: 0 Connection: keep-alive ЧЯДНТ? -- Best regards, Juriy Strashnov Please consider the environment before printing this email. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pluknet на nginx.com Thu Oct 8 10:21:36 2015 From: pluknet на nginx.com (Sergey Kandaurov) Date: Thu, 8 Oct 2015 13:21:36 +0300 Subject: =?UTF-8?B?UmU6ICJwcm94eV9jYWNoZV92YWxpZCA0MDAiIC0tINCy0L7Qt9C80L7QttC90L4g?= =?UTF-8?B?0LvQuD8=?= In-Reply-To: References: Message-ID: <8AB5AC63-2A6A-44FF-A565-5BE24565C524@nginx.com> On Oct 8, 2015, at 12:09 PM, Juriy Strashnov wrote: > Коллеги, всем привет! > > Возникла нужда кратковременно кешировать ответы backend'a. Проблема в том, что надо не только код 200, но и 400. > > Попробовал так (в лоб): > > proxy_cache_path /var/cache/nginx/apicache levels=1:2 keys_zone=apicache:10m; > > location /api { > <...> > > proxy_cache apicache; > proxy_cache_use_stale error timeout updating; > proxy_cache_lock on; > proxy_cache_valid any 30s; > proxy_cache_valid 400 30s; > proxy_cache_methods POST; > proxy_cache_key "$request_uri|$request_body"; > > proxy_ignore_headers X-Accel-Expires Expires Cache-Control; > > add_header X-Cached $upstream_cache_status; > } > > Не помогло! Если на код 200 в ответе появляется заголовок: > > HTTP/1.1 200 OK > Server: nginx > Date: Thu, 08 Oct 2015 08:54:38 GMT > Content-Length: 0 > Connection: keep-alive > X-Cached: HIT > > то на 400 его уже нет: Используйте параметр always, подробности тут: http://nginx.org/r/add_header/ru См. также debug log на предмет сообщений “file cache send”. -- Sergey Kandaurov From juriy.foboss на gmail.com Thu Oct 8 10:34:12 2015 From: juriy.foboss на gmail.com (Juriy Strashnov) Date: Thu, 8 Oct 2015 13:34:12 +0300 Subject: =?UTF-8?B?UmU6ICJwcm94eV9jYWNoZV92YWxpZCA0MDAiIC0tINCy0L7Qt9C80L7QttC90L4g?= =?UTF-8?B?0LvQuD8=?= In-Reply-To: <8AB5AC63-2A6A-44FF-A565-5BE24565C524@nginx.com> References: <8AB5AC63-2A6A-44FF-A565-5BE24565C524@nginx.com> Message-ID: Спасибо большое! Не догадался, что кеш работает, а заголовок не пишет. add_header X-Cached $upstream_cache_status always; начало вставлять заголовок и в 400е ответы. HTTP/1.1 400 Bad Request Server: nginx Date: Thu, 08 Oct 2015 10:29:40 GMT Content-Length: 0 Connection: keep-alive *X-Cached: HIT* 2015-10-08 13:21 GMT+03:00 Sergey Kandaurov : > On Oct 8, 2015, at 12:09 PM, Juriy Strashnov > wrote: > > Коллеги, всем привет! > > > > Возникла нужда кратковременно кешировать ответы backend'a. Проблема в > том, что надо не только код 200, но и 400. > > > > Попробовал так (в лоб): > > > > proxy_cache_path /var/cache/nginx/apicache levels=1:2 > keys_zone=apicache:10m; > > > > location /api { > > <...> > > > > proxy_cache apicache; > > proxy_cache_use_stale error timeout updating; > > proxy_cache_lock on; > > proxy_cache_valid any 30s; > > proxy_cache_valid 400 30s; > > proxy_cache_methods POST; > > proxy_cache_key "$request_uri|$request_body"; > > > > proxy_ignore_headers X-Accel-Expires Expires Cache-Control; > > > > add_header X-Cached $upstream_cache_status; > > } > > > > Не помогло! Если на код 200 в ответе появляется заголовок: > > > > HTTP/1.1 200 OK > > Server: nginx > > Date: Thu, 08 Oct 2015 08:54:38 GMT > > Content-Length: 0 > > Connection: keep-alive > > X-Cached: HIT > > > > то на 400 его уже нет: > > Используйте параметр always, подробности тут: > http://nginx.org/r/add_header/ru > > См. также debug log на предмет сообщений “file cache send”. > > -- > Sergey Kandaurov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Juriy Strashnov Mob. +7 (953) 742-1550 E-mail: j.strashnov на me.com Please consider the environment before printing this email. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Fri Oct 9 10:36:48 2015 From: nginx-forum на nginx.us (Autopilot) Date: Fri, 09 Oct 2015 06:36:48 -0400 Subject: =?UTF-8?B?0LfQsNC/0YDQtdGCINGE0LDQu9GM0YjQuNCy0YvRhSBHb29nbGVib3Q=?= Message-ID: <2829fed14f0a315af1a9a2efffb9ede9.NginxMailingListRussian@forum.nginx.org> Недавно подопечные сервера начали перегружаться по DDoS, как правило, с одного ip из примерно 3000 шел один запрос на произвольную страницу одного из сайтов сервера с user agent Googlebot. IP не принадлежал сетям Google. Появилась идея опознать бота и разрешить доступ только для сетей google. Конструкция вида if ($http_user_agent ~* googlebot ) { deny all; allow GOOGLENETS;} не разрешается. На основе ветки http://forum.nginx.org/read.php?2,202715,202715#msg-202715 и статьи хабра был составлен рецепт http { #... geo $bot_ip { default 0; 216.239.32.0/19 1; 64.233.160.0/19 1; 66.249.80.0/20 1; 66.249.64.0/19 1; 72.14.192.0/18 1; 209.85.128.0/17 1; 66.102.0.0/20 1; 74.125.0.0/16 1; 64.18.0.0/20 1; 207.126.144.0/20 1; 173.194.0.0/16 1; } map $http_user_agent $is_bot { default 0; ~Googlebot 1; } map "$is_bot:$bot_ip" $fake_bot { default 0; "1:0" 1; } # ... server { #... if ($fake_bot) { return 418; } #... } #... } Код ошибки выбран для парсинга логов на предмет новых ip гугла. Привел тут как пример решения задачи и для поиска более оптимальных решений Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262080,262080#msg-262080 From nginx-forum на nginx.us Fri Oct 9 21:28:53 2015 From: nginx-forum на nginx.us (st00007) Date: Fri, 09 Oct 2015 17:28:53 -0400 Subject: =?UTF-8?B?bW9kIHJld3JpdGUg0L3QtSDQv9C+0LvRg9GH0LDQtdGC0YHRjyDQv9GA0LjQutGA?= =?UTF-8?B?0YPRgtC40YLRjCwg0L/RgNC+0YjRgyDQv9C+0LzQvtGH0Yw=?= Message-ID: <2669a84715adffd0c4cd0efec9739954.NginxMailingListRussian@forum.nginx.org> Знающие люди, помогите пожалуйста прикрутить mod_rewrite в nginx, и не ругайте пожалуйста если не корректно спрашиваю (очень хочу разобраться с вопросом) тут написано как привинтить mod_rewrite в nginx http://it.vakorin.net/%D0%B5%D1%81%D0%BB%D0%B8-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-mod_rewrite-%D0%B2-nginx-apache/ когда добавляю строки location / { root /var/www/example.com; index index.php; try_files $uri $uri/ /index.php; } в nginx.conf, расположеный на сервере сайт перестает работать установлен nginx на ubuntu server 14.04, apach не установлен (я так понимаю что то должно стоять одно или nginx или apach) ниже привожу nginx.conf ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; ## # nginx-naxsi config ## # Uncomment it if you installed nginx-naxsi ## #include /etc/nginx/naxsi_core.rules; ## # nginx-passenger config ## # Uncomment it if you installed nginx-passenger ## #passenger_root /usr; #passenger_ruby /usr/bin/ruby; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIDPLUS"; # # server { # listen localhost:110; # protocol pop3; # proxy on; # } # # server { # listen localhost:143; # protocol imap; # proxy on; # } #} ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- я так понимаю чтобы добиться результата описанного в приведенной выше статье, необходимо установить апач и сделать что то еще?) опыта работы с nginx раньше не было, гуру IT-Инженирии подскажите пожалуйста как реализовать заветное решение? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262085,262085#msg-262085 From chipitsine на gmail.com Sat Oct 10 08:50:24 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Sat, 10 Oct 2015 13:50:24 +0500 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgiDRhNCw0LvRjNGI0LjQstGL0YUgR29vZ2xlYm90?= In-Reply-To: <2829fed14f0a315af1a9a2efffb9ede9.NginxMailingListRussian@forum.nginx.org> References: <2829fed14f0a315af1a9a2efffb9ede9.NginxMailingListRussian@forum.nginx.org> Message-ID: говорят, что поисковики таким образом могут находить поисковый спам (т.е. ситуацию, когда контент, отдаваемый роботу, отличается от пользовательского). возможно, это сам гугл и был 9 октября 2015 г., 15:36 пользователь Autopilot написал: > Недавно подопечные сервера начали перегружаться по DDoS, как правило, с > одного ip из примерно 3000 шел один запрос на произвольную страницу одного > из сайтов сервера с user agent Googlebot. IP не принадлежал сетям Google. > Появилась идея опознать бота и разрешить доступ только для сетей google. > Конструкция вида if ($http_user_agent ~* googlebot ) { deny all; allow > GOOGLENETS;} не разрешается. На основе ветки > http://forum.nginx.org/read.php?2,202715,202715#msg-202715 и статьи хабра > был составлен рецепт > > http { > #... > geo $bot_ip { > default 0; > 216.239.32.0/19 1; > 64.233.160.0/19 1; > 66.249.80.0/20 1; > 66.249.64.0/19 1; > 72.14.192.0/18 1; > 209.85.128.0/17 1; > 66.102.0.0/20 1; > 74.125.0.0/16 1; > 64.18.0.0/20 1; > 207.126.144.0/20 1; > 173.194.0.0/16 1; > } > > map $http_user_agent $is_bot { > default 0; > ~Googlebot 1; > } > > map "$is_bot:$bot_ip" $fake_bot { > default 0; > "1:0" 1; > } > # ... > server { > #... > if ($fake_bot) { > return 418; > } > #... > } > #... > } > > Код ошибки выбран для парсинга логов на предмет новых ip гугла. > > Привел тут как пример решения задачи и для поиска более оптимальных решений > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,262080,262080#msg-262080 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From andrey на kopeyko.ru Sat Oct 10 13:07:33 2015 From: andrey на kopeyko.ru (Andrey Kopeyko) Date: Sat, 10 Oct 2015 16:07:33 +0300 (MSK) Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgiDRhNCw0LvRjNGI0LjQstGL0YUgR29vZ2xlYm90?= In-Reply-To: References: <2829fed14f0a315af1a9a2efffb9ede9.NginxMailingListRussian@forum.nginx.org> Message-ID: On Sat, 10 Oct 2015, Илья Шипицин wrote: > говорят, что поисковики таким образом могут находить поисковый спам (т.е. > ситуацию, когда контент, отдаваемый роботу, отличается от > пользовательского). > возможно, это сам гугл и был Так и есть - большие поисковики регулярно "перепроверяют" проиндексированные сайты, заходя из не-своих сетей. Но при этом они строго играют в "тайного покупателя" - т.е. полностью отдают все присущие данному UA заголовки и никакими специфическими заголовками себя не выдают ;-) -- Best regards, Andrey Kopeyko From corochoone на gmail.com Sat Oct 10 21:08:10 2015 From: corochoone на gmail.com (=?UTF-8?B?0JLQuNC60YLQvtGAINCS0LjRgdC70L7QsdC+0LrQvtCy?=) Date: Sun, 11 Oct 2015 00:08:10 +0300 Subject: =?UTF-8?B?0JrQsNC6INC/0YDQsNCy0LjQu9GM0L3QviDRgdC+0LLQvNC10YHRgtC40YLRjCBs?= =?UTF-8?B?aW1pdF9yZXEg0Lgg0L7Qs9GA0LDQvdC40YfQtdC90LjQtSDQv9C+IElQPw==?= Message-ID: Есть некий список адресов. Для этого списка необходимо отдавать страницы без ограничений, для всех остальных нужно сделать ограничение limit_req. Непонятно как это правильно сделать с учётом того, что limit_req внутри if не работает. На одном из форумов предлагается такое решение: geo $nolimit { default 0; 10.0.0.0/24 1; 192.168.0.0/24 1; } limit_req_zone $binary_remote_addr zone=ratezone:10m rate=5r/s; server { ... location / { error_page 418 = @nolimit; if ($limit) { return 418; } limit_req zone=ratezone burst=10 nodelay; # ... } location @nolimit { # ... no limit_req here } } но насколько это правильно, делать такое перенаправление? Есть ли какие-то другие способы? -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Sun Oct 11 15:08:13 2015 From: nginx-forum на nginx.us (vitcool) Date: Sun, 11 Oct 2015 11:08:13 -0400 Subject: =?UTF-8?B?Q2F1Y2hvIFJlc2luIDMueCDQuCBuZ2lueCB3aW5kb3dzIHNlcnZlciAyMDEyIC0g?= =?UTF-8?B?0LHRi9C70Lgg0LvQuCDQv9GA0L7QsdC70LXQvNGLINGDINC60L7Qs9C+INC9?= =?UTF-8?B?0LjQsdGD0LTRjD8=?= Message-ID: Добрый день! планирую поставить на фронтенд ngnix 1.9.5 в качестве прокси перед сервлет контейнером resin 3.0.3 (версия старая но очень стабильная) + делегировать ему отдачу статики (картинки + xml + js + css). Нагрузка на продакшене около 800 ..1000 одновременных коннектов по 80-му порту. иногда скачет до 1200...1300 и сейчас все это обрабатывает Caucho Resin первый вопрос: буду рад любой информации касательно засад и проблем с nginx на виндоус серверах 2008 и 2012 которые меня ждут второй вопрос в следующем: насколько я слышал у nginx для виндоус есть ограничение на 1024 подключений для каждого его вокера и в случае 4 ядер это получается всего 4096 коннектов. Это действительно так? Я перерыл инет, но нигде не нашел информации что это ограничение было решено в последней версии. По ряду причин, использовать Cent os или другой вид nix я не могу, только windows server 2008/2012 Буду благодарен за ответы! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262102,262102#msg-262102 From nginx-forum на nginx.us Sun Oct 11 15:27:30 2015 From: nginx-forum на nginx.us (vitcool) Date: Sun, 11 Oct 2015 11:27:30 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgiDRhNCw0LvRjNGI0LjQstGL0YUgR29vZ2xlYm90?= In-Reply-To: <2829fed14f0a315af1a9a2efffb9ede9.NginxMailingListRussian@forum.nginx.org> References: <2829fed14f0a315af1a9a2efffb9ede9.NginxMailingListRussian@forum.nginx.org> Message-ID: <089d1a0130a9cdaa6bdd2997e4e5cb84.NginxMailingListRussian@forum.nginx.org> может быть ответ не в тему, но те же поисковики предлагают использовать reverse dns для определения кто пришел. все же заголовок agent может быть скомпроментированным. а скомпроментировать записи DNS это подороже затраты Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262080,262103#msg-262103 From gmm на csdoc.com Sun Oct 11 16:57:16 2015 From: gmm на csdoc.com (Gena Makhomed) Date: Sun, 11 Oct 2015 19:57:16 +0300 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: References: Message-ID: <561A94EC.3060403@csdoc.com> On 11.10.2015 18:08, vitcool wrote: > первый вопрос: буду рад любой информации касательно засад и проблем с nginx > на виндоус серверах 2008 и 2012 которые меня ждут http://nginx.org/en/docs/windows.html > второй вопрос в следующем: насколько я слышал у nginx для виндоус есть > ограничение на 1024 подключений для каждого его вокера и > в случае 4 ядер это получается всего 4096 коннектов. Это действительно так? "Although several workers can be started, only one of them actually does any work". В статье http://habrahabr.ru/post/260133/ написано, как можно обойти лимит в 1024 одновременных соединений, но в целом виндовс - это не совсем серверная платформа. А после того, что они сделали в Windows 10 http://habrahabr.ru/company/pt/blog/264763/ - то даже и на десктопе винду использовать будет нельзя. > По ряду причин, использовать Cent os или другой вид nix я не могу, только > windows server 2008/2012 Операционные системы на frontend и backend вполне могут быть разными, на frontend - nginx под Linux или BSD, а на backend - java под Windows. Если нет отдельных физических машин - нормальную операционную систему для nginx можно запустить внутри виртуальной машины на Windows Server. -- Best regards, Gena From voron на amhost.net Sun Oct 11 20:25:14 2015 From: voron на amhost.net (Alex Vorona) Date: Sun, 11 Oct 2015 23:25:14 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9GA0LDQstC40LvRjNC90L4g0YHQvtCy0LzQtdGB0YLQuNGC?= =?UTF-8?B?0YwgbGltaXRfcmVxINC4INC+0LPRgNCw0L3QuNGH0LXQvdC40LUg0L/QviBJ?= =?UTF-8?B?UD8=?= In-Reply-To: References: Message-ID: <561AC5AA.50306@amhost.net> 11.10.15 00:08, Виктор Вислобоков пишет: > Есть некий список адресов. Для этого списка необходимо отдавать страницы > без ограничений, для всех остальных нужно сделать ограничение limit_req. > Непонятно как это правильно сделать с учётом того, что limit_req внутри if > не работает. > > На одном из форумов предлагается такое решение: > > geo $nolimit { > default 0; > 10.0.0.0/24 1; > 192.168.0.0/24 1; > } > limit_req_zone $binary_remote_addr zone=ratezone:10m rate=5r/s; Попробуйте geo $nolimit { default $binary_remote_addr; 10.0.0.0/24 ""; 192.168.0.0/24 ""; } limit_req_zone $nolimit zone=ratezone:10m rate=5r/s; Судя по http://nginx.org/r/limit_req_zone/en "Requests with an empty key value are not accounted." запросы с пустыми ключами должны работать без ограничений. From corochoone на gmail.com Mon Oct 12 07:35:13 2015 From: corochoone на gmail.com (=?UTF-8?B?0JLQuNC60YLQvtGAINCS0LjRgdC70L7QsdC+0LrQvtCy?=) Date: Mon, 12 Oct 2015 10:35:13 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9GA0LDQstC40LvRjNC90L4g0YHQvtCy0LzQtdGB0YLQuNGC?= =?UTF-8?B?0YwgbGltaXRfcmVxINC4INC+0LPRgNCw0L3QuNGH0LXQvdC40LUg0L/QviBJ?= =?UTF-8?B?UD8=?= In-Reply-To: <561AC5AA.50306@amhost.net> References: <561AC5AA.50306@amhost.net> Message-ID: Огромное спасибо, Алексей. Действительно, всё работает! С уважением, Виктор 11 октября 2015 г., 23:25 пользователь Alex Vorona написал: > 11.10.15 00:08, Виктор Вислобоков пишет: > >> Есть некий список адресов. Для этого списка необходимо отдавать страницы >> без ограничений, для всех остальных нужно сделать ограничение limit_req. >> Непонятно как это правильно сделать с учётом того, что limit_req внутри if >> не работает. >> >> На одном из форумов предлагается такое решение: >> >> geo $nolimit { >> default 0; >> 10.0.0.0/24 1; >> 192.168.0.0/24 1; >> } >> limit_req_zone $binary_remote_addr zone=ratezone:10m rate=5r/s; >> > > Попробуйте > > geo $nolimit { > default $binary_remote_addr; > 10.0.0.0/24 ""; > 192.168.0.0/24 ""; > } > limit_req_zone $nolimit zone=ratezone:10m rate=5r/s; > > Судя по http://nginx.org/r/limit_req_zone/en "Requests with an empty key > value are not accounted." запросы с пустыми ключами должны работать без > ограничений. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Mon Oct 12 08:39:53 2015 From: nginx-forum на nginx.us (Autopilot) Date: Mon, 12 Oct 2015 04:39:53 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgiDRhNCw0LvRjNGI0LjQstGL0YUgR29vZ2xlYm90?= In-Reply-To: <089d1a0130a9cdaa6bdd2997e4e5cb84.NginxMailingListRussian@forum.nginx.org> References: <2829fed14f0a315af1a9a2efffb9ede9.NginxMailingListRussian@forum.nginx.org> <089d1a0130a9cdaa6bdd2997e4e5cb84.NginxMailingListRussian@forum.nginx.org> Message-ID: Каким образом сделать это в nginx для 3000 ip "на лету"? Атака носит быстрый лавинный характер - за полчаса Load Average доходит до сотни. Посмотрел логи - запрет пришелся на rss агрегатор из Hetzner - прикидывается гулом. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262080,262110#msg-262110 From nginx-forum на nginx.us Tue Oct 13 06:13:04 2015 From: nginx-forum на nginx.us (rba) Date: Tue, 13 Oct 2015 02:13:04 -0400 Subject: =?UTF-8?Q?PUT_=D0=B8_POST_module_handler?= Message-ID: <01fa1f0b0ddb8f019315b0d657fd85c1.NginxMailingListRussian@forum.nginx.org> Здравствуйте. Почитал форум, посмотрел исходники и сообразил до некоторого порядка обработки данных запросов. Остались некоторые вопросы. Понимаю что ответы можно найти в исходниках(echo,dav и.т.д.) но силы и терпение на исходе поэтому прошу помощи. На малых запросах всё работает, вопросы связаны с тем что будет на больших запросах при реальной нагрузке /********************************************************** Вопросы в контексте кода модуля типа «hello word» **********************************************************/ #include #include #include static ngx_command_t ngx_http_rbsample_commands[] = { { ngx_string("rbsample_pqtest"), NGX_HTTP_LOC_CONF|NGX_CONF_NOARGS, ngx_http_rbsample, 0, 0, NULL }, ngx_null_command }; static ngx_http_module_t ngx_http_rbsample_module_ctx = { NULL, ... NULL }; ngx_module_t ngx_http_rbsample_module = { NGX_MODULE_V1, &ngx_http_rbsample_module_ctx, /* module context */ ngx_http_rbsample_commands, /* module directives */ NGX_HTTP_MODULE, /* module type */ NULL, /* init master */ ... NULL, /* exit master */ NGX_MODULE_V1_PADDING }; static ngx_int_t ngx_http_rbsample_other_handler(ngx_http_request_t *r) {/*...*/} static void ngx_http_rbsample_debug(ngx_http_request_t *r, u_char *buffer, int nbytes) {//Это заглушка, в будущем некоторая неблокирующая функция отправляющая в специфичный бэкенд /********************************************************** 1. ngx_log_debug1 вроде выводит buffer и без завершения \0 или стоит дополнять конструкцией типа u_char *p; p = ngx_pnalloc(r->pool, nbytes+1); p = ngx_cpymem(p, buffer, nbytes+1); p[nbytes+1]='\0'; ...и выводить p **********************************************************/ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 2. put/post: \"%s\"", buffer); } static void ngx_http_rbsample_post_handler(ngx_http_request_t *r) { size_t len; ngx_buf_t *buf; ngx_chain_t *cl; if (r->request_body == NULL && r->request_body->temp_file == NULL) { ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 999. error put/post!!!!"); ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); return; } ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 1. put/post!!!!"); /********************************************************** 2. Не блокернёт ли следующий цикл воркер непрерывным чтением большого буфера, если ngx_http_rbsample_debug(сейчас заглушка) не блокирующая, или желательно после каждого cl->next как-то отдавать управление? 3. Будет ли порядок обработки тем же, если nginx положит тело запроса в файл? 4. Как можно отдать управление воркеру(что вернуть из текущего хэндлера) и отложить обработку ngx_http_rbsample_debug, не трогая буфер, не завершая запрос и не передавая обработку остальным хэндлерам в текущем запросе? 4.1. Чтобы в новом витке воркера вернуться к текущему запросу и cl, нужно его(cl) выносить в глобальное пространство(есть ли какие-то особенности в nginx?) или есть иные принятые в nginx способы? **********************************************************/ cl = r->request_body->bufs; do { buf = cl->buf; len = buf->last - buf->pos; ngx_http_rbsample_debug(r, buf->pos, len); cl = cl->next; } while (cl); if(!r->request_body->rest) { ngx_http_finalize_request(r, 0);; } return; } static ngx_int_t ngx_http_rbsample_handler(ngx_http_request_t *r) { ngx_int_t rc; ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "rbsample 0. ngx_http_rbsample_handler!"); if(r->method == NGX_HTTP_PUT || r->method == NGX_HTTP_POST) { r->request_body_in_file_only = 0; r->request_body_in_single_buf=1; /********************************************************* 5. Корректно ли так подключать обработчик POST/PUT в таком контексте, или лучше его делать фазовым? **********************************************************/ rc = ngx_http_read_client_request_body(r, ngx_http_rbsample_post_handler); if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { return rc; } return NGX_DONE; } return ngx_http_rbsample_other_handler(r); } static char * ngx_http_rbsample(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { ngx_http_core_loc_conf_t *clcf; clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module); clcf->handler = ngx_http_rbsample_handler; return NGX_CONF_OK; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262136,262136#msg-262136 From nginx-forum на nginx.us Tue Oct 13 08:51:38 2015 From: nginx-forum на nginx.us (varan) Date: Tue, 13 Oct 2015 04:51:38 -0400 Subject: =?UTF-8?B?VXBzdHJlYW0uINCg0LDQsdC+0YLQsNC10YIg0LvQuCB3ZWlnaHQg0LXRgdC70Lgg?= =?UTF-8?B?0LHQsNC70LDQvdGB0LjRgNC+0LLQsNGC0Ywg0L/QviBoYXNoINC40LvQuCBp?= =?UTF-8?B?cCBoYXNoPw==?= Message-ID: <29a2394ebe4d1644881fbe2a78f0bab9.NginxMailingListRussian@forum.nginx.org> Я так понимаю, что параметр weight у сервера задает вес сервера в случайном распределении. Но если распределение не случайное, а по ip_hash или hash, будет ли weight работать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262139,262139#msg-262139 From nginx-forum на nginx.us Tue Oct 13 10:42:33 2015 From: nginx-forum на nginx.us (vitcool) Date: Tue, 13 Oct 2015 06:42:33 -0400 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: <561A94EC.3060403@csdoc.com> References: <561A94EC.3060403@csdoc.com> Message-ID: Gena Makhomed Wrote: ------------------------------------------------------- > On 11.10.2015 18:08, vitcool wrote: > > > первый вопрос: буду рад любой информации касательно засад и проблем > с nginx > > на виндоус серверах 2008 и 2012 которые меня ждут > > http://nginx.org/en/docs/windows.html это я читал. я спрашивал про еще какие либо грабли. одну граблю я кажется уже нашел: nginx все время отдает заголовок date равным дате его запуска. > > второй вопрос в следующем: насколько я слышал у nginx для виндоус > есть > > ограничение на 1024 подключений для каждого его вокера и > > в случае 4 ядер это получается всего 4096 коннектов. Это > действительно так? > > "Although several workers can be started, > only one of them actually does any work". > > В статье http://habrahabr.ru/post/260133/ написано, > как можно обойти лимит в 1024 одновременных соединений, для меня ручная сборка это не выход. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262102,262142#msg-262142 From nginx-forum на nginx.us Tue Oct 13 10:50:28 2015 From: nginx-forum на nginx.us (vitcool) Date: Tue, 13 Oct 2015 06:50:28 -0400 Subject: =?UTF-8?B?0KHRgtGA0LDQvdC90L7RgdGC0Ywg0YEgaGVhZGVyIERBVEU=?= Message-ID: nginx используется как прокси. бекенд отдает ему все заголовки, как то Date, last-Modif, Expires и т.п. при этом nginx меняет заголовок Date и все время отдает в нем дату и время своего запуска. исходные данные: windows 2012 server (+ тесты на vps windows) nginx 1.9.5 backend'ы - resin web server + свои собственные web сервера конфиг:nginx gzip on; gzip_min_length 1100; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain application/xml application/x-javascript text/javascript text/css; gzip_disable "msie6"; gzip_comp_level 4; server { listen 80; server_name my.server.ru; location / { proxy_pass http://another.server.ru; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } # Static files location location ~*^.+\.(jpg|jpeg|gif|png|css|zip|doc|xls|pdf|ppt|bmp|rtf|ico|js|woff|svg|cur|ttf|xml|xsl|eot)$ { expires 7d; root path_to_root; } } в чем может быть проблема? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262143,262143#msg-262143 From alex.hha на gmail.com Tue Oct 13 10:51:42 2015 From: alex.hha на gmail.com (Alex Domoradov) Date: Tue, 13 Oct 2015 13:51:42 +0300 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: References: <561A94EC.3060403@csdoc.com> Message-ID: > планирую поставить на фронтенд ngnix 1.9.5 в качестве прокси перед сервлет контейнером resin 3.0.3 (версия старая но очень стабильная) + делегировать ему отдачу статики (картинки + xml + js + css). > ​для меня ручная сборка это не выход а зачем в таком конфиге ставить nginx именно на windows? В чем так сказать профит? 2015-10-13 13:42 GMT+03:00 vitcool : > Gena Makhomed Wrote: > ------------------------------------------------------- > > On 11.10.2015 18:08, vitcool wrote: > > > > > первый вопрос: буду рад любой информации касательно засад и проблем > > с nginx > > > на виндоус серверах 2008 и 2012 которые меня ждут > > > > http://nginx.org/en/docs/windows.html > > это я читал. я спрашивал про еще какие либо грабли. одну граблю я кажется > уже нашел: > nginx все время отдает заголовок date равным дате его запуска. > > > > > второй вопрос в следующем: насколько я слышал у nginx для виндоус > > есть > > > ограничение на 1024 подключений для каждого его вокера и > > > в случае 4 ядер это получается всего 4096 коннектов. Это > > действительно так? > > > > "Although several workers can be started, > > only one of them actually does any work". > > > > В статье http://habrahabr.ru/post/260133/ написано, > > как можно обойти лимит в 1024 одновременных соединений, > > ​​ > для меня ручная сборка это не выход. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,262102,262142#msg-262142 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Tue Oct 13 10:52:50 2015 From: nginx-forum на nginx.us (vitcool) Date: Tue, 13 Oct 2015 06:52:50 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgiDRhNCw0LvRjNGI0LjQstGL0YUgR29vZ2xlYm90?= In-Reply-To: References: <2829fed14f0a315af1a9a2efffb9ede9.NginxMailingListRussian@forum.nginx.org> <089d1a0130a9cdaa6bdd2997e4e5cb84.NginxMailingListRussian@forum.nginx.org> Message-ID: <5614477b5402e80bf43f412768f61e9b.NginxMailingListRussian@forum.nginx.org> тут не подскажу вот на стороне бекенда это можно сделать легко может выставить кастом заголовок и сообщить об этом nginx чтобы он сформировал некий блек лист айпи ? если он умеет конечно такое Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262080,262145#msg-262145 From nginx-forum на nginx.us Tue Oct 13 10:54:43 2015 From: nginx-forum на nginx.us (vitcool) Date: Tue, 13 Oct 2015 06:54:43 -0400 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: References: Message-ID: <730a923a77341b55e5048b52fbbe1e6d.NginxMailingListRussian@forum.nginx.org> ALex_hha Wrote: ------------------------------------------------------- > > планирую поставить на фронтенд ngnix 1.9.5 в качестве прокси перед > сервлет > контейнером resin 3.0.3 (версия старая но очень стабильная) + > делегировать > ему отдачу статики (картинки + xml + js + css). > > > ​для меня ручная сборка это не выход > > а зачем в таком конфиге ставить nginx именно на windows? В чем так > сказать > профит? на ней есть свободные ресурсы и быстрый канал. плюс она стоит практически в той же стойке что и сервер с бекендами Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262102,262146#msg-262146 From nginx-forum на nginx.us Tue Oct 13 12:08:31 2015 From: nginx-forum на nginx.us (amatol15) Date: Tue, 13 Oct 2015 08:08:31 -0400 Subject: =?UTF-8?B?L3Vzci9zaGFyZS9uZ2lueC8g0LHQvtC70YzRiNC+0Lkg0YDQsNC30LzQtdGA0LA=?= Message-ID: <32666e2a0c2d126f3329bababe973d99.NginxMailingListRussian@forum.nginx.org> Добрый день В каталоге /usr/share/nginx файл "on" весит 40 гиг, что это за файл? и можно ли его удалять. Спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262148,262148#msg-262148 From maxim на nginx.com Tue Oct 13 12:10:34 2015 From: maxim на nginx.com (Maxim Konovalov) Date: Tue, 13 Oct 2015 15:10:34 +0300 Subject: =?UTF-8?B?UmU6IC91c3Ivc2hhcmUvbmdpbngvINCx0L7Qu9GM0YjQvtC5INGA0LDQt9C80LU=?= =?UTF-8?B?0YDQsA==?= In-Reply-To: <32666e2a0c2d126f3329bababe973d99.NginxMailingListRussian@forum.nginx.org> References: <32666e2a0c2d126f3329bababe973d99.NginxMailingListRussian@forum.nginx.org> Message-ID: <561CF4BA.3050609@nginx.com> On 10/13/15 3:08 PM, amatol15 wrote: > Добрый день > В каталоге /usr/share/nginx файл "on" весит 40 гиг, что это за файл? и можно > ли его удалять. Спасибо > Это ваш access_log. -- Maxim Konovalov From nginx-forum на nginx.us Tue Oct 13 12:15:45 2015 From: nginx-forum на nginx.us (amatol15) Date: Tue, 13 Oct 2015 08:15:45 -0400 Subject: =?UTF-8?B?UmU6IC91c3Ivc2hhcmUvbmdpbngvINCx0L7Qu9GM0YjQvtC5INGA0LDQt9C80LU=?= =?UTF-8?B?0YDQsA==?= In-Reply-To: <561CF4BA.3050609@nginx.com> References: <561CF4BA.3050609@nginx.com> Message-ID: <730ec2fbf75ba04799902250981b1108.NginxMailingListRussian@forum.nginx.org> Спасибо То есть я, могу остановить nginx, удалить файл и запустить nginx, проблем не будет? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262148,262151#msg-262151 From nginx-ru на sadok.spb.ru Tue Oct 13 12:20:07 2015 From: nginx-ru на sadok.spb.ru (Dmitry Ivanov) Date: Tue, 13 Oct 2015 15:20:07 +0300 Subject: =?UTF-8?B?UmU6IC91c3Ivc2hhcmUvbmdpbngvINCx0L7Qu9GM0YjQvtC5INGA0LDQt9C80LU=?= =?UTF-8?B?0YDQsA==?= In-Reply-To: <730ec2fbf75ba04799902250981b1108.NginxMailingListRussian@forum.nginx.org> References: <561CF4BA.3050609@nginx.com> <730ec2fbf75ba04799902250981b1108.NginxMailingListRussian@forum.nginx.org> Message-ID: <1419928293.20151013152007@sadok.spb.ru> Здравствуйте, amatol15. Вы писали 13 октября 2015 г., 15:15:45: > Спасибо > То есть я, могу остановить nginx, удалить файл и запустить nginx, проблем не > будет? Можно просто # :> /path/to/file -- С уважением, Dmitry nginx-ru на sadok.spb.ru From maxim на nginx.com Tue Oct 13 12:29:11 2015 From: maxim на nginx.com (Maxim Konovalov) Date: Tue, 13 Oct 2015 15:29:11 +0300 Subject: =?UTF-8?B?UmU6IC91c3Ivc2hhcmUvbmdpbngvINCx0L7Qu9GM0YjQvtC5INGA0LDQt9C80LU=?= =?UTF-8?B?0YDQsA==?= In-Reply-To: <730ec2fbf75ba04799902250981b1108.NginxMailingListRussian@forum.nginx.org> References: <561CF4BA.3050609@nginx.com> <730ec2fbf75ba04799902250981b1108.NginxMailingListRussian@forum.nginx.org> Message-ID: <561CF917.2000201@nginx.com> On 10/13/15 3:15 PM, amatol15 wrote: > Спасибо > То есть я, могу остановить nginx, удалить файл и запустить nginx, проблем не > будет? > Можно так. Но лучше сразу привести конфигурацию в порядок: http://nginx.org/r/access_log/ru http://nginx.org/ru/docs/beginners_guide.html#control -- Maxim Konovalov From juri на dmitrijev.com Tue Oct 13 12:34:25 2015 From: juri на dmitrijev.com (juri на dmitrijev.com) Date: Tue, 13 Oct 2015 08:34:25 -0400 Subject: =?UTF-8?B?SFRUUDIg0YHQvdC40LbQsNC10YIg0YHQutC+0YDQvtGB0YLRjCDQt9Cw0LPRgNGD?= =?UTF-8?B?0LfQutC4INGB0YLQsNGC0LjRh9C10YHQutC40YUg0YTQsNC50LvQvtCy?= Message-ID: Добрый день, хотел бы уточнить следующий вопрос: c устоновкой nginx 1.9.5 (на debian 8) и переключением на http2 заметил такую особенность (конфиг по умолчанию), запросы прекрасно параллелятся, но при этом скорость загрузки каждого отдельного статического файла (в моём случае картинок) падает. Является ли это особенностью протокола или всё-таки проблемой реализации в nginx? Выглядит все приблизительно следующим образом: http/1.1 http://snag.gy/LgpJ5.jpg http/2.0 http://snag.gy/i8Q1g.jpg Сначала думал, что браузер (chrome 45) по-своему использует протокол. Попробовал напрямую через curl, картина такая же: http/1.1 0.188 0.188 0.187 0.186 0.191 0.199 0.186 0.193 0.196 0.192 http/2.0 0.253 0.248 0.251 0.258 0.253 0.253 0.258 0.279 0.253 0.256 From mdounin на mdounin.ru Tue Oct 13 12:36:50 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 13 Oct 2015 15:36:50 +0300 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtGMINGBIGhlYWRlciBEQVRF?= In-Reply-To: References: Message-ID: <20151013123650.GX30105@mdounin.ru> Hello! On Tue, Oct 13, 2015 at 06:50:28AM -0400, vitcool wrote: > nginx используется как прокси. бекенд отдает ему все заголовки, как то Date, > last-Modif, Expires и т.п. > при этом nginx меняет заголовок Date и все время отдает в нем дату и время > своего запуска. В заголовке Date должно возвращаться текущее время на сервере. То, что nginx его меняет - это правильно, так и должно быть. Если вместо текущего времени там действительно время запуска nginx'а - тогда стоит начинать волноваться. -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Tue Oct 13 12:37:30 2015 From: nginx-forum на nginx.us (amatol15) Date: Tue, 13 Oct 2015 08:37:30 -0400 Subject: =?UTF-8?B?UmU6IC91c3Ivc2hhcmUvbmdpbngvINCx0L7Qu9GM0YjQvtC5INGA0LDQt9C80LU=?= =?UTF-8?B?0YDQsA==?= In-Reply-To: <561CF917.2000201@nginx.com> References: <561CF917.2000201@nginx.com> Message-ID: <6330c7f0e22c08e573053541e4db1c77.NginxMailingListRussian@forum.nginx.org> Спасибо Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262148,262156#msg-262156 From mdounin на mdounin.ru Tue Oct 13 12:45:21 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 13 Oct 2015 15:45:21 +0300 Subject: =?UTF-8?B?UmU6IFVwc3RyZWFtLiDQoNCw0LHQvtGC0LDQtdGCINC70Lggd2VpZ2h0INC10YE=?= =?UTF-8?B?0LvQuCDQsdCw0LvQsNC90YHQuNGA0L7QstCw0YLRjCDQv9C+IGhhc2gg0Lg=?= =?UTF-8?B?0LvQuCBpcCBoYXNoPw==?= In-Reply-To: <29a2394ebe4d1644881fbe2a78f0bab9.NginxMailingListRussian@forum.nginx.org> References: <29a2394ebe4d1644881fbe2a78f0bab9.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151013124521.GZ30105@mdounin.ru> Hello! On Tue, Oct 13, 2015 at 04:51:38AM -0400, varan wrote: > Я так понимаю, что параметр weight у сервера задает вес сервера в случайном > распределении. Но если распределение не случайное, а по ip_hash или hash, > будет ли weight работать? Да. -- Maxim Dounin http://nginx.org/ From sytar.alex на gmail.com Tue Oct 13 13:07:41 2015 From: sytar.alex на gmail.com (Aleksandr Sytar) Date: Tue, 13 Oct 2015 16:07:41 +0300 Subject: =?UTF-8?B?UmU6IEhUVFAyINGB0L3QuNC20LDQtdGCINGB0LrQvtGA0L7RgdGC0Ywg0LfQsNCz?= =?UTF-8?B?0YDRg9C30LrQuCDRgdGC0LDRgtC40YfQtdGB0LrQuNGFINGE0LDQudC70L4=?= =?UTF-8?B?0LI=?= In-Reply-To: References: Message-ID: 13 октября 2015 г., 15:34 пользователь написал: > запросы прекрасно параллелятся, но при этом скорость загрузки каждого > отдельного статического файла (в моём случае картинок) падает. Очевидно что все упирается в пропускную способность канала ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From denis.kot на gmail.com Tue Oct 13 13:16:17 2015 From: denis.kot на gmail.com (Denis Kot) Date: Tue, 13 Oct 2015 15:16:17 +0200 Subject: =?UTF-8?B?0LHRgNCw0YLRjCDRhNCw0LnQuyDRgtC+0LvRjNC60L4g0LjQtyDQutC10YjQsA==?= Message-ID: Привет. Есть хранилище файлов, которое отдает файлы по http. Есть так же некоторое количество клиентов, которые обращаются в одному и тому же файлу в одно время. Т.к. хранилище в данный момент сильно нагружено хочется его разгрузить установив перед ним кеширующий nginx. Если запросы к файлу идут один за одним, то все нормально, ответ берется из кеша. Но если запросы приходят одновременно, то nginx за файлом ходит к хранилищу (по крайней мере заголовок X-Cache-Status показывает MISS). Хочется этого избежать и сделать так, что бы файл из хранилища тянулся только один раз, а потом отдавался из кеша. Например ставить клиентов в очередь пока nginx не закеширует файл. Можно ли такое сделать? Denis Kot Skype: kot.denis -------------- next part -------------- An HTML attachment was scrubbed... URL: From vbart на nginx.com Tue Oct 13 13:21:49 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 13 Oct 2015 16:21:49 +0300 Subject: =?UTF-8?B?UmU6IEhUVFAyINGB0L3QuNC20LDQtdGCINGB0LrQvtGA0L7RgdGC0Ywg0LfQsNCz?= =?UTF-8?B?0YDRg9C30LrQuCDRgdGC0LDRgtC40YfQtdGB0LrQuNGFINGE0LDQudC70L4=?= =?UTF-8?B?0LI=?= In-Reply-To: References: Message-ID: <3755923.tFqAUMDxZf@vbart-workstation> On Tuesday 13 October 2015 08:34:25 juri на dmitrijev.com wrote: > Добрый день, > > хотел бы уточнить следующий вопрос: c устоновкой nginx 1.9.5 (на debian > 8) и переключением на http2 заметил такую особенность (конфиг по > умолчанию), запросы прекрасно параллелятся, но при этом скорость > загрузки каждого отдельного статического файла (в моём случае картинок) > падает. Является ли это особенностью протокола или всё-таки проблемой > реализации в nginx? Выглядит все приблизительно следующим образом: > > http/1.1 > > http://snag.gy/LgpJ5.jpg > > http/2.0 > > http://snag.gy/i8Q1g.jpg > > Сначала думал, что браузер (chrome 45) по-своему использует протокол. > Попробовал напрямую через curl, картина такая же: > > http/1.1 > > 0.188 > 0.188 > 0.187 > 0.186 > 0.191 > 0.199 > 0.186 > 0.193 > 0.196 > 0.192 > > > http/2.0 > > 0.253 > 0.248 > 0.251 > 0.258 > 0.253 > 0.253 > 0.258 > 0.279 > 0.253 > 0.256 > [..] Накладных расходов на передачу данных в HTTP/2 больше, плюс пресловутый flow control может легко стать лимитирующим фактором. Хотя цифры и не должны так уж сильно отличаться. Но из сообщения непонятно, сравниваете ли вы с HTTP/1.1 поверх TLS или без. -- Валентин Бартенев From nginx-forum на nginx.us Tue Oct 13 13:23:02 2015 From: nginx-forum на nginx.us (vitcool) Date: Tue, 13 Oct 2015 09:23:02 -0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtGMINGBIGhlYWRlciBEQVRF?= In-Reply-To: <20151013123650.GX30105@mdounin.ru> References: <20151013123650.GX30105@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Tue, Oct 13, 2015 at 06:50:28AM -0400, vitcool wrote: > > > nginx используется как прокси. бекенд отдает ему все заголовки, как > то Date, > > last-Modif, Expires и т.п. > > при этом nginx меняет заголовок Date и все время отдает в нем дату и > время > > своего запуска. > > В заголовке Date должно возвращаться текущее время на сервере. несомненно > То, что nginx его меняет - это правильно, так и должно быть. Если > вместо текущего времени там действительно время запуска nginx'а - > тогда стоит начинать волноваться. вот именно это и происходит. дата и время все время одно и тоже. как вчера запустил - так и оно и выдается до сих пор. это означает что не только браузеры, но и поисковые системы сойдут с ума. причем я убирал этот заголовок в ответе у бекенда. а он все равно один и тот же напомню - речь про виндоус платформы. на иксах не тестировал. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262143,262164#msg-262164 From vbart на nginx.com Tue Oct 13 13:23:07 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 13 Oct 2015 16:23:07 +0300 Subject: =?UTF-8?B?UmU6INCx0YDQsNGC0Ywg0YTQsNC50Lsg0YLQvtC70YzQutC+INC40Lcg0LrQtdGI?= =?UTF-8?B?0LA=?= In-Reply-To: References: Message-ID: <1477573.qGLGCatFzY@vbart-workstation> On Tuesday 13 October 2015 15:16:17 Denis Kot wrote: > Привет. > > Есть хранилище файлов, которое отдает файлы по http. > Есть так же некоторое количество клиентов, которые обращаются в одному и > тому же файлу в одно время. Т.к. хранилище в данный момент сильно нагружено > хочется его разгрузить установив перед ним кеширующий nginx. > Если запросы к файлу идут один за одним, то все нормально, ответ берется из > кеша. Но если запросы приходят одновременно, то nginx за файлом ходит к > хранилищу (по крайней мере заголовок X-Cache-Status показывает MISS). > Хочется этого избежать и сделать так, что бы файл из хранилища тянулся > только один раз, а потом отдавался из кеша. Например ставить клиентов в > очередь пока nginx не закеширует файл. > > Можно ли такое сделать? > http://nginx.org/r/proxy_cache_lock/ru -- Валентин Бартенев From alex.hha на gmail.com Tue Oct 13 13:44:06 2015 From: alex.hha на gmail.com (Alex Domoradov) Date: Tue, 13 Oct 2015 16:44:06 +0300 Subject: =?UTF-8?B?UmU6IC91c3Ivc2hhcmUvbmdpbngvINCx0L7Qu9GM0YjQvtC5INGA0LDQt9C80LU=?= =?UTF-8?B?0YDQsA==?= In-Reply-To: <6330c7f0e22c08e573053541e4db1c77.NginxMailingListRussian@forum.nginx.org> References: <561CF917.2000201@nginx.com> <6330c7f0e22c08e573053541e4db1c77.NginxMailingListRussian@forum.nginx.org> Message-ID: оффтоп > Можно просто > # :> /path/to/file а зачем ставить : перед >, всегда делал просто > /path/to/file. On Tue, Oct 13, 2015 at 3:37 PM, amatol15 wrote: > Спасибо > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,262148,262156#msg-262156 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From dmitry.goryainov на gmail.com Tue Oct 13 23:46:12 2015 From: dmitry.goryainov на gmail.com (Dmitry) Date: Wed, 14 Oct 2015 02:46:12 +0300 Subject: =?UTF-8?B?UmU6IC91c3Ivc2hhcmUvbmdpbngvINCx0L7Qu9GM0YjQvtC5INGA0LDQt9C80LU=?= =?UTF-8?B?0YDQsA==?= In-Reply-To: References: <561CF917.2000201@nginx.com> <6330c7f0e22c08e573053541e4db1c77.NginxMailingListRussian@forum.nginx.org> Message-ID: "пять копеек" к совету привести конфигурацию в порядок. стоит хотя бы включить ротацию логов через logrotate https://www.opennet.ru/base/sys/logrotate_howto.txt.html 2015-10-13 16:44 GMT+03:00 Alex Domoradov : > оффтоп > > > Можно просто > > # :> /path/to/file > > а зачем ставить : перед >, всегда делал просто > /path/to/file. > > On Tue, Oct 13, 2015 at 3:37 PM, amatol15 wrote: > >> Спасибо >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,262148,262156#msg-262156 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Dmitry Goryainov -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Wed Oct 14 07:34:32 2015 From: nginx-forum на nginx.us (rba) Date: Wed, 14 Oct 2015 03:34:32 -0400 Subject: =?UTF-8?Q?Re=3A_PUT_=D0=B8_POST_module_handler?= In-Reply-To: <01fa1f0b0ddb8f019315b0d657fd85c1.NginxMailingListRussian@forum.nginx.org> References: <01fa1f0b0ddb8f019315b0d657fd85c1.NginxMailingListRussian@forum.nginx.org> Message-ID: Как я понял в post_handler вместо цикла должно получиться что-то типа: При пустом звене цепочки как-то передать из колбэка с return void в хэндлер - NGX_OK для финализации запроса Если в цепочке есть не пустой буфер - отправить буфер в бэкэнд и в случае успеха очистить звено через ngx_free_chain Снова передать из колбэка с return void в хэндлер NGX_DONE/NGX_AGAIN(разницу еще не понял?) и при следующей итерации воркера будет вновь вызвана функция колбека из ngx_http_read_client_request_body Для отработки следующего буфера из не освобожденного звена цепочки. Но не уловил как из колбека с return void сказать хэндлеру NGX_DONE/NGX_AGAIN/NGX_OK ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262136,262192#msg-262192 From nginx-forum на nginx.us Wed Oct 14 08:55:05 2015 From: nginx-forum на nginx.us (rba) Date: Wed, 14 Oct 2015 04:55:05 -0400 Subject: =?UTF-8?Q?Re=3A_PUT_=D0=B8_POST_module_handler?= In-Reply-To: References: <01fa1f0b0ddb8f019315b0d657fd85c1.NginxMailingListRussian@forum.nginx.org> Message-ID: Переписал код и уменьшил client_body_buffer_size, в результате мелкие запросы проходят, но запросы побольше заканчиваются сообщением о epool, подскажите куда копать? лог... client request body is buffered to a temporary ... ...http client request body... ... 2015/10/14 14:45:32 [debug] 15847#0: *1 RBSAMPLE 1. put/post!!!! 2015/10/14 14:45:32 [debug] 15847#0: *1 RBSAMPLE 1.1 put/post chain 140725089748632 addr 2015/10/14 14:45:32 [debug] 15847#0: *1 RBSAMPLE 2. put/post!!!! 2015/10/14 14:45:32 [debug] 15848#0: epoll add event: fd:7 op:1 ev:00002001 И дальше не идёт !!! Переписал так: static void ngx_http_rbsample_debug(ngx_http_request_t *r, u_char *buffer, int nbytes) { ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 2. put/post!!!!"); ngx_log_debug1(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 3. put/post: \"%s\"", buffer); } static void ngx_http_rbsample_post_handler(ngx_http_request_t *r) { size_t len; ngx_buf_t *buf; ngx_chain_t *cl; if (r->request_body == NULL && r->request_body->temp_file == NULL) { ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 999. put/post!!!!"); ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); return; } ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 1. put/post!!!!"); cl = r->request_body->bufs; buf = cl->buf; len = buf->last - buf->pos; ngx_log_debug1(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 1.1 put/post chain %i addr", &cl); ngx_http_rbsample_debug(r, buf->pos, len); if(!r->request_body->rest && !cl->next) { ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 4. put/post finalize!!!!"); ngx_http_finalize_request(r, 0);; } if(cl->next){ ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 3.1 put/post free chain!!!!"); ngx_free_chain(r->pool, cl); } return; } static ngx_int_t ngx_http_rbsample_handler(ngx_http_request_t *r) { ngx_int_t rc; ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "rbsample 0. ngx_http_rbsample_handler!"); if(r->method == NGX_HTTP_PUT || r->method == NGX_HTTP_POST) { rc = ngx_http_read_client_request_body(r, ngx_http_rbsample_post_handler); if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { return rc; } return NGX_DONE; } return ngx_http_rbsample_other_handler(r); } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262136,262193#msg-262193 From juri на dmitrijev.com Wed Oct 14 09:03:42 2015 From: juri на dmitrijev.com (Juri Dmitrijev) Date: Wed, 14 Oct 2015 11:03:42 +0200 Subject: =?UTF-8?B?UmU6IFJlOiBIVFRQMiDRgdC90LjQttCw0LXRgiDRgdC60L7RgNC+0YHRgtGMINC3?= =?UTF-8?B?0LDQs9GA0YPQt9C60Lgg0YHRgtCw0YLQuNGH0LXRgdC60LjRhSDRhNCw0Lk=?= =?UTF-8?B?0LvQvtCy?= In-Reply-To: <3755923.tFqAUMDxZf@vbart-workstation> References: <3755923.tFqAUMDxZf@vbart-workstation> Message-ID: <561E1A6E.6060803@dmitrijev.com> >Но из сообщения непонятно, сравниваете ли вы с HTTP/1.1 поверх TLS или без. HTTP/1.1 через TLS. Единственное отличие - параметр http2 в директиве listen. Похоже проблема действительно в протоколе. Пробовал с клиентами не поддерживающими http2, и с другим вебсервером (h2o), поведение такое же: TTFB ниже, а скорость загрузки выше. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From denis.kot на gmail.com Wed Oct 14 09:11:52 2015 From: denis.kot на gmail.com (Denis Kot) Date: Wed, 14 Oct 2015 11:11:52 +0200 Subject: =?UTF-8?B?UmU6INCx0YDQsNGC0Ywg0YTQsNC50Lsg0YLQvtC70YzQutC+INC40Lcg0LrQtdGI?= =?UTF-8?B?0LA=?= In-Reply-To: <1477573.qGLGCatFzY@vbart-workstation> References: <1477573.qGLGCatFzY@vbart-workstation> Message-ID: Спасибо. Появилась другая проблема. Если proxy_cache_lock_timeout оставить по умолчанию 5s, и файл очень большой (например 600 мб) то клиенты получают битые файлы. Nginx возвращает ответ 200, но размер файла в логе для каждого клиента разный, хотя это один и тот же файл. Версия nginx/1.4.6 (Ubuntu). Denis Kot Skype: kot.denis 13 октября 2015 г., 15:23 пользователь Валентин Бартенев написал: > On Tuesday 13 October 2015 15:16:17 Denis Kot wrote: > > Привет. > > > > Есть хранилище файлов, которое отдает файлы по http. > > Есть так же некоторое количество клиентов, которые обращаются в одному и > > тому же файлу в одно время. Т.к. хранилище в данный момент сильно > нагружено > > хочется его разгрузить установив перед ним кеширующий nginx. > > Если запросы к файлу идут один за одним, то все нормально, ответ берется > из > > кеша. Но если запросы приходят одновременно, то nginx за файлом ходит к > > хранилищу (по крайней мере заголовок X-Cache-Status показывает MISS). > > Хочется этого избежать и сделать так, что бы файл из хранилища тянулся > > только один раз, а потом отдавался из кеша. Например ставить клиентов в > > очередь пока nginx не закеширует файл. > > > > Можно ли такое сделать? > > > > http://nginx.org/r/proxy_cache_lock/ru > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From juri на dmitrijev.com Wed Oct 14 10:23:25 2015 From: juri на dmitrijev.com (Juri Dmitrijev) Date: Wed, 14 Oct 2015 12:23:25 +0200 Subject: =?UTF-8?B?UmU6IFJlOiBIVFRQMiDRgdC90LjQttCw0LXRgiDRgdC60L7RgNC+0YHRgtGMINC3?= =?UTF-8?B?0LDQs9GA0YPQt9C60Lgg0YHRgtCw0YLQuNGH0LXRgdC60LjRhSDRhNCw0Lk=?= =?UTF-8?B?0LvQvtCy?= In-Reply-To: References: Message-ID: <561E2D1D.7070405@dmitrijev.com> > Очевидно что все упирается в пропускную способность канала Это навряд ли. Тестировал на одном файле тоже. From greyhard на gmail.com Wed Oct 14 11:06:38 2015 From: greyhard на gmail.com (=?UTF-8?B?0JTQtdC90LjRgSDQmNC70YzQuNC90YvRhQ==?=) Date: Wed, 14 Oct 2015 14:06:38 +0300 Subject: =?UTF-8?B?0J/RgNC+0LHQu9C10LzQsCDRgSBTU0k=?= Message-ID: Здравствуйте. Не могу понять в чем дело, сломал всю голову Не работает ssi даже Переехал с одного сервера на другой , раньше стоял debian и nginx из пакетов nginx version: nginx/1.2.1 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-auth-pam --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/chunkin-nginx-module --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/headers-more-nginx-module --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-development-kit --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-echo --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-http-push --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-lua --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-module --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-progress --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upstream-fair --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-dav-ext-module и сейчас установил nginx из пакетов nginx version: nginx/1.6.2 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/headers-more-nginx-module --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-auth-pam --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-cache-purge --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-dav-ext-module --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-development-kit --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-echo --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx-fancyindex --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-http-push --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-lua --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upload-progress --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upstream-fair --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx_http_substitutions_filter_module Подскажите куда копать ? даже собранный nginx 1.8 не обрабатывает ssi, и в error.log не сыпятся ошибки. Не могу найти что могло измениться между версиями -- С уважением. Ильиных Денис Программист Компания "GT-Shop.ru" Телефон: +7(963) 995-7616 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kpoxa на kpoxa.net Wed Oct 14 11:42:43 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 14 Oct 2015 14:42:43 +0300 Subject: =?UTF-8?B?0J7Qs9GA0LDQvdC40YfQtdC90LjQtSDQvdCwINGH0LjRgdC70L4g0LjRgdGF0L4=?= =?UTF-8?B?0LTRj9GJ0LjRhSDRgdC+0LXQtNC40L3QtdC90LjQuQ==?= Message-ID: Добрый день. Использую stream для проброса соединений из вне + ssl прокси в дмз. Столкнулся со стандартным ограничением на число исходящих соединений на сервере в число доступных портов, в результате получаю ошибки вида: 2015/10/14 14:11:13 [crit] 11309#0: *28092735 connect() to 10.13.179.38:50003 failed (99: Cannot assign requested address) while connecting to upstream, client: 15.15.72.69, server: 15.15.72.198:443, upstream: " 10.13.179.38:50003", bytes from/to client:0/0, bytes from/to upstream:0/0 В документации не нашел каких-либо способов обойти данное ограничение средствами nginx, например использовать пул адресов для коннектов к бэкэндам. -- Рустам. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nefer05 на gmail.com Wed Oct 14 11:57:32 2015 From: nefer05 на gmail.com (=?UTF-8?B?0KDQvtC80LDQvSDQnNC+0YHQutCy0LjRgtC40L0=?=) Date: Wed, 14 Oct 2015 14:57:32 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgU1NJ?= In-Reply-To: References: Message-ID: А где у вас в параметрах сборки SSI? On Wed, Oct 14, 2015 at 2:06 PM, Денис Ильиных wrote: > Здравствуйте. Не могу понять в чем дело, сломал всю голову > > Не работает ssi даже > > > Переехал с одного сервера на другой , раньше стоял debian и nginx из > пакетов > > nginx version: nginx/1.2.1 > > TLS SNI support enabled > > configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf > --error-log-path=/var/log/nginx/error.log > --http-client-body-temp-path=/var/lib/nginx/body > --http-fastcgi-temp-path=/var/lib/nginx/fastcgi > --http-log-path=/var/log/nginx/access.log > --http-proxy-temp-path=/var/lib/nginx/proxy > --http-scgi-temp-path=/var/lib/nginx/scgi > --http-uwsgi-temp-path=/var/lib/nginx/uwsgi > --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid > --with-pcre-jit --with-debug --with-http_addition_module > --with-http_dav_module --with-http_flv_module --with-http_geoip_module > --with-http_gzip_static_module --with-http_image_filter_module > --with-http_mp4_module --with-http_perl_module > --with-http_random_index_module --with-http_realip_module > --with-http_secure_link_module --with-http_stub_status_module > --with-http_ssl_module --with-http_sub_module --with-http_xslt_module > --with-ipv6 --with-sha1=/usr/include/openssl > --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-auth-pam > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/chunkin-nginx-module > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/headers-more-nginx-module > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-development-kit > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-echo > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-http-push > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-lua > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-module > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-progress > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upstream-fair > --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-dav-ext-module > > и сейчас установил nginx из пакетов > > nginx version: nginx/1.6.2 > > TLS SNI support enabled > > configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong > -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' > --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx > --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log > --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock > --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body > --http-fastcgi-temp-path=/var/lib/nginx/fastcgi > --http-proxy-temp-path=/var/lib/nginx/proxy > --http-scgi-temp-path=/var/lib/nginx/scgi > --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit > --with-ipv6 --with-http_ssl_module --with-http_stub_status_module > --with-http_realip_module --with-http_auth_request_module > --with-http_addition_module --with-http_dav_module --with-http_flv_module > --with-http_geoip_module --with-http_gzip_static_module > --with-http_image_filter_module --with-http_mp4_module > --with-http_perl_module --with-http_random_index_module > --with-http_secure_link_module --with-http_spdy_module > --with-http_sub_module --with-http_xslt_module --with-mail > --with-mail_ssl_module > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/headers-more-nginx-module > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-auth-pam > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-cache-purge > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-dav-ext-module > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-development-kit > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-echo > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx-fancyindex > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-http-push > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-lua > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upload-progress > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upstream-fair > --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx_http_substitutions_filter_module > > > Подскажите куда копать ? даже собранный nginx 1.8 не обрабатывает ssi, и в > error.log не сыпятся ошибки. > > Не могу найти что могло измениться между версиями > -- > С уважением. > Ильиных Денис > Программист > Компания "GT-Shop.ru" > Телефон: +7(963) 995-7616 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Wed Oct 14 12:05:38 2015 From: nginx-forum на nginx.us (vitcool) Date: Wed, 14 Oct 2015 08:05:38 -0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtGMINGBIGhlYWRlciBEQVRF?= In-Reply-To: References: Message-ID: <08be9134f186984099084c4559262306.NginxMailingListRussian@forum.nginx.org> неужели никто не сталкивался с таким странным поведением? даже ума не приложу в какую сторону копать. если бы это было только на 1 сервере, а на другом нет - то было бы проще а так такая ситуация возникает и на VPS server 2008 и на моей девелоперской машине windows 7 и на чистом windows server 2012 r2 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262143,262203#msg-262203 From greyhard на gmail.com Wed Oct 14 12:13:02 2015 From: greyhard на gmail.com (=?UTF-8?B?0JTQtdC90LjRgSDQmNC70YzQuNC90YvRhQ==?=) Date: Wed, 14 Oct 2015 15:13:02 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgU1NJ?= In-Reply-To: References: Message-ID: я не могу найти эту опцию. Возникла другая ситуация если Апач отдает кастомную страницу 404 "404 Not Found" то ssi обрабатывается если же отдает обычную страницу 200 ОК то ssi игнорируется 2015-10-14 14:57 GMT+03:00 Роман Москвитин : > А где у вас в параметрах сборки SSI? > > On Wed, Oct 14, 2015 at 2:06 PM, Денис Ильиных wrote: > >> Здравствуйте. Не могу понять в чем дело, сломал всю голову >> >> Не работает ssi даже >> >> >> Переехал с одного сервера на другой , раньше стоял debian и nginx из >> пакетов >> >> nginx version: nginx/1.2.1 >> >> TLS SNI support enabled >> >> configure arguments: --prefix=/etc/nginx >> --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log >> --http-client-body-temp-path=/var/lib/nginx/body >> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi >> --http-log-path=/var/log/nginx/access.log >> --http-proxy-temp-path=/var/lib/nginx/proxy >> --http-scgi-temp-path=/var/lib/nginx/scgi >> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi >> --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid >> --with-pcre-jit --with-debug --with-http_addition_module >> --with-http_dav_module --with-http_flv_module --with-http_geoip_module >> --with-http_gzip_static_module --with-http_image_filter_module >> --with-http_mp4_module --with-http_perl_module >> --with-http_random_index_module --with-http_realip_module >> --with-http_secure_link_module --with-http_stub_status_module >> --with-http_ssl_module --with-http_sub_module --with-http_xslt_module >> --with-ipv6 --with-sha1=/usr/include/openssl >> --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-auth-pam >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/chunkin-nginx-module >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/headers-more-nginx-module >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-development-kit >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-echo >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-http-push >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-lua >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-module >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-progress >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upstream-fair >> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-dav-ext-module >> >> и сейчас установил nginx из пакетов >> >> nginx version: nginx/1.6.2 >> >> TLS SNI support enabled >> >> configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong >> -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' >> --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx >> --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log >> --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock >> --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body >> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi >> --http-proxy-temp-path=/var/lib/nginx/proxy >> --http-scgi-temp-path=/var/lib/nginx/scgi >> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit >> --with-ipv6 --with-http_ssl_module --with-http_stub_status_module >> --with-http_realip_module --with-http_auth_request_module >> --with-http_addition_module --with-http_dav_module --with-http_flv_module >> --with-http_geoip_module --with-http_gzip_static_module >> --with-http_image_filter_module --with-http_mp4_module >> --with-http_perl_module --with-http_random_index_module >> --with-http_secure_link_module --with-http_spdy_module >> --with-http_sub_module --with-http_xslt_module --with-mail >> --with-mail_ssl_module >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/headers-more-nginx-module >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-auth-pam >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-cache-purge >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-dav-ext-module >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-development-kit >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-echo >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx-fancyindex >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-http-push >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-lua >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upload-progress >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upstream-fair >> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx_http_substitutions_filter_module >> >> >> Подскажите куда копать ? даже собранный nginx 1.8 не обрабатывает ssi, и >> в error.log не сыпятся ошибки. >> >> Не могу найти что могло измениться между версиями >> -- >> С уважением. >> Ильиных Денис >> Программист >> Компания "GT-Shop.ru" >> Телефон: +7(963) 995-7616 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением. Ильиных Денис Программист Компания "GT-Shop.ru" Телефон: +7(963) 995-7616 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From greyhard на gmail.com Wed Oct 14 12:16:13 2015 From: greyhard на gmail.com (=?UTF-8?B?0JTQtdC90LjRgSDQmNC70YzQuNC90YvRhQ==?=) Date: Wed, 14 Oct 2015 15:16:13 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgU1NJ?= In-Reply-To: References: Message-ID: фильтр работает , но не могу понять что ему не нравится 2015/10/14 14:14:20 [debug] 3156#0: *3 http ssi filter "/body-kits/side-skirts/Toyota/Supra/1992-2002/38552/?" 2015/10/14 14:14:20 [debug] 3156#0: *3 saved: 0 state: 0 2015/10/14 14:14:20 [debug] 3156#0: *3 parse: -2, looked: 0 000000000098DC4F-000000000098EB70 2015/10/14 14:14:20 [debug] 3156#0: *3 saved: 0 2015/10/14 14:14:20 [debug] 3156#0: *3 saved: 0 state: 0 2015/10/14 14:14:20 [debug] 3156#0: *3 parse: -2, looked: 0 0000000000B3D080-0000000000B3E5F1 2015/10/14 14:14:20 [debug] 3156#0: *3 saved: 0 2015/10/14 14:14:20 [debug] 3156#0: *3 ssi out: 000000000098F078 000000000098DC4F 2015/10/14 14:14:20 [debug] 3156#0: *3 ssi out: 000000000098F0D8 0000000000B3D080 14 октября 2015 г., 15:13 пользователь Денис Ильиных написал: > я не могу найти эту опцию. > Возникла другая ситуация если Апач отдает кастомную страницу 404 "404 Not > Found" то ssi обрабатывается > если же отдает обычную страницу 200 ОК то ssi игнорируется > > 2015-10-14 14:57 GMT+03:00 Роман Москвитин : > >> А где у вас в параметрах сборки SSI? >> >> On Wed, Oct 14, 2015 at 2:06 PM, Денис Ильиных >> wrote: >> >>> Здравствуйте. Не могу понять в чем дело, сломал всю голову >>> >>> Не работает ssi даже >>> >>> >>> Переехал с одного сервера на другой , раньше стоял debian и nginx из >>> пакетов >>> >>> nginx version: nginx/1.2.1 >>> >>> TLS SNI support enabled >>> >>> configure arguments: --prefix=/etc/nginx >>> --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log >>> --http-client-body-temp-path=/var/lib/nginx/body >>> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi >>> --http-log-path=/var/log/nginx/access.log >>> --http-proxy-temp-path=/var/lib/nginx/proxy >>> --http-scgi-temp-path=/var/lib/nginx/scgi >>> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi >>> --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid >>> --with-pcre-jit --with-debug --with-http_addition_module >>> --with-http_dav_module --with-http_flv_module --with-http_geoip_module >>> --with-http_gzip_static_module --with-http_image_filter_module >>> --with-http_mp4_module --with-http_perl_module >>> --with-http_random_index_module --with-http_realip_module >>> --with-http_secure_link_module --with-http_stub_status_module >>> --with-http_ssl_module --with-http_sub_module --with-http_xslt_module >>> --with-ipv6 --with-sha1=/usr/include/openssl >>> --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-auth-pam >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/chunkin-nginx-module >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/headers-more-nginx-module >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-development-kit >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-echo >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-http-push >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-lua >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-module >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-progress >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upstream-fair >>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-dav-ext-module >>> >>> и сейчас установил nginx из пакетов >>> >>> nginx version: nginx/1.6.2 >>> >>> TLS SNI support enabled >>> >>> configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong >>> -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' >>> --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx >>> --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log >>> --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock >>> --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body >>> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi >>> --http-proxy-temp-path=/var/lib/nginx/proxy >>> --http-scgi-temp-path=/var/lib/nginx/scgi >>> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit >>> --with-ipv6 --with-http_ssl_module --with-http_stub_status_module >>> --with-http_realip_module --with-http_auth_request_module >>> --with-http_addition_module --with-http_dav_module --with-http_flv_module >>> --with-http_geoip_module --with-http_gzip_static_module >>> --with-http_image_filter_module --with-http_mp4_module >>> --with-http_perl_module --with-http_random_index_module >>> --with-http_secure_link_module --with-http_spdy_module >>> --with-http_sub_module --with-http_xslt_module --with-mail >>> --with-mail_ssl_module >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/headers-more-nginx-module >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-auth-pam >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-cache-purge >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-dav-ext-module >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-development-kit >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-echo >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx-fancyindex >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-http-push >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-lua >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upload-progress >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upstream-fair >>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx_http_substitutions_filter_module >>> >>> >>> Подскажите куда копать ? даже собранный nginx 1.8 не обрабатывает ssi, и >>> в error.log не сыпятся ошибки. >>> >>> Не могу найти что могло измениться между версиями >>> -- >>> С уважением. >>> Ильиных Денис >>> Программист >>> Компания "GT-Shop.ru" >>> Телефон: +7(963) 995-7616 >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > С уважением. > Ильиных Денис > Программист > Компания "GT-Shop.ru" > Телефон: +7(963) 995-7616 > -- С уважением. Ильиных Денис Программист Компания "GT-Shop.ru" Телефон: +7(963) 995-7616 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From public-mail на alekciy.ru Wed Oct 14 12:41:19 2015 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Wed, 14 Oct 2015 16:41:19 +0400 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: Message-ID: Добавить на бэкенд еще один IP и указать его как еще один upstream. 14 октября 2015 г., 15:42 пользователь kpoxa написал: > Добрый день. > > Использую stream для проброса соединений из вне + ssl прокси в дмз. > > Столкнулся со стандартным ограничением на число исходящих соединений на > сервере в число доступных портов, в результате получаю ошибки вида: > > 2015/10/14 14:11:13 [crit] 11309#0: *28092735 connect() to > 10.13.179.38:50003 failed (99: Cannot assign requested address) while > connecting to upstream, client: 15.15.72.69, server: 15.15.72.198:443, > upstream: " 10.13.179.38:50003", bytes from/to client:0/0, bytes from/to > upstream:0/0 > > В документации не нашел каких-либо способов обойти данное ограничение > средствами nginx, например использовать пул адресов для коннектов к > бэкэндам. > > -- > Рустам. > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From greyhard на gmail.com Wed Oct 14 12:54:39 2015 From: greyhard на gmail.com (=?UTF-8?B?0JTQtdC90LjRgSDQmNC70YzQuNC90YvRhQ==?=) Date: Wed, 14 Oct 2015 15:54:39 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgU1NJ?= In-Reply-To: References: Message-ID: проверил через php-fpm Итог если отдаем HTML через php-fpm через fastcgi_pass с ответом 200 OK то ssi инструкции не обрабатываются если отдаем HTML через apache через proxy_pass с ответом 200 OK то ssi инструкции не обрабатываются если отдаем статику (.html) через nginx то ssi обрабатывается с ошибками, при этом инструкции из HTML удаляются если же отдаем страницу из Apache с кодом ответа 404 Not Found то ssi инструкции отрабатывают как надо 14 октября 2015 г., 15:16 пользователь Денис Ильиных написал: > фильтр работает , но не могу понять что ему не нравится > > 2015/10/14 14:14:20 [debug] 3156#0: *3 http ssi filter > "/body-kits/side-skirts/Toyota/Supra/1992-2002/38552/?" > > 2015/10/14 14:14:20 [debug] 3156#0: *3 saved: 0 state: 0 > > 2015/10/14 14:14:20 [debug] 3156#0: *3 parse: -2, looked: 0 > 000000000098DC4F-000000000098EB70 > > 2015/10/14 14:14:20 [debug] 3156#0: *3 saved: 0 > > 2015/10/14 14:14:20 [debug] 3156#0: *3 saved: 0 state: 0 > > 2015/10/14 14:14:20 [debug] 3156#0: *3 parse: -2, looked: 0 > 0000000000B3D080-0000000000B3E5F1 > > 2015/10/14 14:14:20 [debug] 3156#0: *3 saved: 0 > > 2015/10/14 14:14:20 [debug] 3156#0: *3 ssi out: 000000000098F078 > 000000000098DC4F > > 2015/10/14 14:14:20 [debug] 3156#0: *3 ssi out: 000000000098F0D8 > 0000000000B3D080 > > 14 октября 2015 г., 15:13 пользователь Денис Ильиных > написал: > > я не могу найти эту опцию. >> Возникла другая ситуация если Апач отдает кастомную страницу 404 "404 Not >> Found" то ssi обрабатывается >> если же отдает обычную страницу 200 ОК то ssi игнорируется >> >> 2015-10-14 14:57 GMT+03:00 Роман Москвитин : >> >>> А где у вас в параметрах сборки SSI? >>> >>> On Wed, Oct 14, 2015 at 2:06 PM, Денис Ильиных >>> wrote: >>> >>>> Здравствуйте. Не могу понять в чем дело, сломал всю голову >>>> >>>> Не работает ssi даже >>>> >>>> >>>> Переехал с одного сервера на другой , раньше стоял debian и nginx из >>>> пакетов >>>> >>>> nginx version: nginx/1.2.1 >>>> >>>> TLS SNI support enabled >>>> >>>> configure arguments: --prefix=/etc/nginx >>>> --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log >>>> --http-client-body-temp-path=/var/lib/nginx/body >>>> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi >>>> --http-log-path=/var/log/nginx/access.log >>>> --http-proxy-temp-path=/var/lib/nginx/proxy >>>> --http-scgi-temp-path=/var/lib/nginx/scgi >>>> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi >>>> --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid >>>> --with-pcre-jit --with-debug --with-http_addition_module >>>> --with-http_dav_module --with-http_flv_module --with-http_geoip_module >>>> --with-http_gzip_static_module --with-http_image_filter_module >>>> --with-http_mp4_module --with-http_perl_module >>>> --with-http_random_index_module --with-http_realip_module >>>> --with-http_secure_link_module --with-http_stub_status_module >>>> --with-http_ssl_module --with-http_sub_module --with-http_xslt_module >>>> --with-ipv6 --with-sha1=/usr/include/openssl >>>> --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-auth-pam >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/chunkin-nginx-module >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/headers-more-nginx-module >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-development-kit >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-echo >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-http-push >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-lua >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-module >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upload-progress >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-upstream-fair >>>> --add-module=/tmp/buildd/nginx-1.2.1/debian/modules/nginx-dav-ext-module >>>> >>>> и сейчас установил nginx из пакетов >>>> >>>> nginx version: nginx/1.6.2 >>>> >>>> TLS SNI support enabled >>>> >>>> configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong >>>> -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' >>>> --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx >>>> --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log >>>> --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock >>>> --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body >>>> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi >>>> --http-proxy-temp-path=/var/lib/nginx/proxy >>>> --http-scgi-temp-path=/var/lib/nginx/scgi >>>> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit >>>> --with-ipv6 --with-http_ssl_module --with-http_stub_status_module >>>> --with-http_realip_module --with-http_auth_request_module >>>> --with-http_addition_module --with-http_dav_module --with-http_flv_module >>>> --with-http_geoip_module --with-http_gzip_static_module >>>> --with-http_image_filter_module --with-http_mp4_module >>>> --with-http_perl_module --with-http_random_index_module >>>> --with-http_secure_link_module --with-http_spdy_module >>>> --with-http_sub_module --with-http_xslt_module --with-mail >>>> --with-mail_ssl_module >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/headers-more-nginx-module >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-auth-pam >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-cache-purge >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-dav-ext-module >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-development-kit >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-echo >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx-fancyindex >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-http-push >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-lua >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upload-progress >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/nginx-upstream-fair >>>> --add-module=/tmp/buildd/nginx-1.6.2/debian/modules/ngx_http_substitutions_filter_module >>>> >>>> >>>> Подскажите куда копать ? даже собранный nginx 1.8 не обрабатывает ssi, >>>> и в error.log не сыпятся ошибки. >>>> >>>> Не могу найти что могло измениться между версиями >>>> -- >>>> С уважением. >>>> Ильиных Денис >>>> Программист >>>> Компания "GT-Shop.ru" >>>> Телефон: +7(963) 995-7616 >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> >> -- >> С уважением. >> Ильиных Денис >> Программист >> Компания "GT-Shop.ru" >> Телефон: +7(963) 995-7616 >> > > > > -- > С уважением. > Ильиных Денис > Программист > Компания "GT-Shop.ru" > Телефон: +7(963) 995-7616 > -- С уважением. Ильиных Денис Программист Компания "GT-Shop.ru" Телефон: +7(963) 995-7616 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Wed Oct 14 12:58:22 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 14 Oct 2015 15:58:22 +0300 Subject: =?UTF-8?Q?Re=3A_PUT_=D0=B8_POST_module_handler?= In-Reply-To: <01fa1f0b0ddb8f019315b0d657fd85c1.NginxMailingListRussian@forum.nginx.org> References: <01fa1f0b0ddb8f019315b0d657fd85c1.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151014125822.GA30105@mdounin.ru> Hello! On Tue, Oct 13, 2015 at 02:13:04AM -0400, rba wrote: > Здравствуйте. > Почитал форум, посмотрел исходники и сообразил до некоторого порядка > обработки данных запросов. Остались некоторые вопросы. Понимаю что ответы > можно найти в исходниках(echo,dav и.т.д.) но силы и терпение на исходе > поэтому прошу помощи. Я бы не рекомендовал ничего искать в исходниках "echo", там у автора подход "если оно работает, то и хорошо". Имеет смысл для начала смотреть в исходники самого nginx'а и стандартных модулей. [...] > static void > ngx_http_rbsample_debug(ngx_http_request_t *r, u_char *buffer, int nbytes) > {//Это заглушка, в будущем некоторая неблокирующая функция отправляющая в > специфичный бэкенд > /********************************************************** > 1. ngx_log_debug1 вроде выводит buffer и без завершения \0 или стоит > дополнять конструкцией типа > u_char *p; > p = ngx_pnalloc(r->pool, nbytes+1); > p = ngx_cpymem(p, buffer, nbytes+1); > p[nbytes+1]='\0'; > ...и выводить p > **********************************************************/ > ngx_log_debug1(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 2. > put/post: \"%s\"", buffer); Стоит переписать на использование %*s или ngx_str_t + %V. Формат %s подразумевает null-терминированную строку, и без завершающего \0 оно рано или поздно развалится. Очевидно, что просто %s не может работать даже теоретически - длину строки вы не передаёте, и если она не null-терминирована, то узнать, где она кончается, невозможно. > } > > static void > ngx_http_rbsample_post_handler(ngx_http_request_t *r) > { > size_t len; > ngx_buf_t *buf; > ngx_chain_t *cl; > > if (r->request_body == NULL && r->request_body->temp_file == NULL) { > ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE > 999. error put/post!!!!"); > ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); > return; > } > ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 1. > put/post!!!!"); > > /********************************************************** > 2. Не блокернёт ли следующий цикл воркер непрерывным чтением большого > буфера, если ngx_http_rbsample_debug(сейчас заглушка) не блокирующая, > или желательно после каждого cl->next как-то отдавать управление? Пока вы не вернёте управление - воркер, по очевидным причинам, больше ничего делать не может. Соответственно, если процесс обработки может занимать заметное время - это придётся как-то решать (или мириться). > 3. Будет ли порядок обработки тем же, если nginx положит тело запроса в > файл? В этом случае тела запроса, очевидно, не будет в памяти. В r->request_body->bufs будет лежать соответствующий буфер в файле. Придётся научиться с ними работать. > 4. Как можно отдать управление воркеру(что вернуть из текущего хэндлера) и > отложить обработку ngx_http_rbsample_debug, не трогая буфер, не завершая > запрос и не передавая обработку остальным хэндлерам в текущем запросе? Понятия "остальных хендлеров" в случае чтения тела запроса не существует, единственный обработчик - ваш. При этом завершение запроса возможно только в том случае, если вы сами позовёте ngx_http_finalize_request(). Пока не позвали - вы отвечаете за дальнейшую обработку запроса. Например, в этот момент можно начать что-то делать в другом соединении, и возобновлять работу запроса по событиям от него. Так, в частности, работает модуль upstream, который используют proxy/fastcgi/memcached. > 4.1. Чтобы в новом витке воркера вернуться к текущему запросу и cl, нужно > его(cl) выносить в глобальное пространство(есть ли какие-то особенности в > nginx?) или есть иные принятые в nginx способы? Для сохранения данных модулей в nginx'е есть контексты модулей, см. ngx_http_set_ctx(). [...] > static ngx_int_t > ngx_http_rbsample_handler(ngx_http_request_t *r) > { > ngx_int_t rc; > ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "rbsample 0. > ngx_http_rbsample_handler!"); > > if(r->method == NGX_HTTP_PUT || r->method == NGX_HTTP_POST) { > r->request_body_in_file_only = 0; > r->request_body_in_single_buf=1; > > /********************************************************* > 5. Корректно ли так подключать обработчик POST/PUT в таком контексте, или > лучше его делать фазовым? > **********************************************************/ Корректно. Делать обработчик фазовым нужно в том случае, если вам нужно обрабатывать не все запросы и сосуществовать с другими модулями, как это делает модуль DAV. Если такой задачи нет и обработке подлежат все запросы - проще и правильнее сделать handler на уровне location. -- Maxim Dounin http://nginx.org/ From voron на amhost.net Wed Oct 14 12:59:23 2015 From: voron на amhost.net (Alex Vorona) Date: Wed, 14 Oct 2015 15:59:23 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: Message-ID: <561E51AB.8090003@amhost.net> Похоже проблемы с настройками ОС http://nginx.org/en/docs/freebsd_tuning.html net.inet.ip.portrange.randomized=0 net.inet.ip.portrange.first=1024 net.inet.ip.portrange.last=65535 Для Linux sysctl net.ipv4.ip_local_port_range From kpoxa на kpoxa.net Wed Oct 14 13:36:39 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 14 Oct 2015 16:36:39 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: <561E51AB.8090003@amhost.net> References: <561E51AB.8090003@amhost.net> Message-ID: Проблемы с настройками ОС нет, я ж написал, уперся в лимит портов, грубо говоря в 64 000 +-, а надо 200 тыс. Пробовал и с указанными вами переменными играться, и, например, наличие нескольких IP из одной подсети, исходящие соединяются не распределяются по IP самостоятельно, для этого надо делать какие-то телодвижения в коже, коих сейчас, видимо, нет. Поэтому у меня и вопрос - может быть они есть и я что-то упустил в доках? А если нет, то не планируются ли? Какой-нибудь downstream { out_ip ip1; out_ip ip2; } :) 2015-10-14 15:59 GMT+03:00 Alex Vorona : > Похоже проблемы с настройками ОС > http://nginx.org/en/docs/freebsd_tuning.html > net.inet.ip.portrange.randomized=0 > net.inet.ip.portrange.first=1024 > net.inet.ip.portrange.last=65535 > > Для Linux sysctl net.ipv4.ip_local_port_range > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From spuzirev на gmail.com Wed Oct 14 13:43:22 2015 From: spuzirev на gmail.com (=?UTF-8?B?0KHQtdGA0LPQtdC5INCf0YPQt9GL0YDRkdCy?=) Date: Wed, 14 Oct 2015 16:43:22 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> Message-ID: Можно использовать директиву proxy_bind http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_bind и наваять грязный хак наподобие: split_clients $connection $downstream { 50% 1; 50% 2; } upstream backend { server A; server B; } server { location /bla { rewrite /down$downstream$request_uri; } location /down1 { rewrite /down1(.*)$ $1 break; proxy_pass http://backend; proxy_bind 1.1.1.1; } location /down2 { rewrite /down2(.*)$ $1 break; proxy_pass http://backend; proxy_bind 2.2.2.2; } } 14 октября 2015 г., 16:36 пользователь kpoxa написал: > Проблемы с настройками ОС нет, я ж написал, уперся в лимит портов, грубо > говоря в 64 000 +-, а надо 200 тыс. Пробовал и с указанными вами > переменными играться, и, например, наличие нескольких IP из одной подсети, > исходящие соединяются не распределяются по IP самостоятельно, для этого > надо делать какие-то телодвижения в коже, коих сейчас, видимо, нет. Поэтому > у меня и вопрос - может быть они есть и я что-то упустил в доках? А если > нет, то не планируются ли? Какой-нибудь downstream { out_ip ip1; out_ip > ip2; } :) > > 2015-10-14 15:59 GMT+03:00 Alex Vorona : > >> Похоже проблемы с настройками ОС >> http://nginx.org/en/docs/freebsd_tuning.html >> net.inet.ip.portrange.randomized=0 >> net.inet.ip.portrange.first=1024 >> net.inet.ip.portrange.last=65535 >> >> Для Linux sysctl net.ipv4.ip_local_port_range >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Сергей Пузырёв тел.: +7-916-980-70-45 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From public-mail на alekciy.ru Wed Oct 14 13:43:55 2015 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Wed, 14 Oct 2015 17:43:55 +0400 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> Message-ID: >downstream { out_ip ip1; out_ip ip2; } :) Он есть http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_next_upstream только в данном случае это наверное не поможет, исходящее и до проксируемого бэкэнда оно не доходит. 14 октября 2015 г., 17:36 пользователь kpoxa написал: > Проблемы с настройками ОС нет, я ж написал, уперся в лимит портов, грубо > говоря в 64 000 +-, а надо 200 тыс. Пробовал и с указанными вами > переменными играться, и, например, наличие нескольких IP из одной подсети, > исходящие соединяются не распределяются по IP самостоятельно, для этого > надо делать какие-то телодвижения в коже, коих сейчас, видимо, нет. Поэтому > у меня и вопрос - может быть они есть и я что-то упустил в доках? А если > нет, то не планируются ли? Какой-нибудь downstream { out_ip ip1; out_ip > ip2; } :) > > 2015-10-14 15:59 GMT+03:00 Alex Vorona : > >> Похоже проблемы с настройками ОС >> http://nginx.org/en/docs/freebsd_tuning.html >> net.inet.ip.portrange.randomized=0 >> net.inet.ip.portrange.first=1024 >> net.inet.ip.portrange.last=65535 >> >> Для Linux sysctl net.ipv4.ip_local_port_range >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kpoxa на kpoxa.net Wed Oct 14 14:00:07 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 14 Oct 2015 17:00:07 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> Message-ID: Добрый день. Спасибо за попытку помочь, к сожалению proxy_bind в варианте с stream сервером можно использовать только один раз, т.к. в данном случае нет location как таковых, есть только очень длинные соединения с commet сервером, которые могут длиться днями, и это их нормальное поведение. Конфиг простой: stream { upstream ws { server 10.17.17.38:5003; } server { listen 15.15.72.198:443 ssl; #ssl params skipped; proxy_connect_timeout 30s; proxy_timeout 3600s; proxy_pass ws; error_log /var/log/nginx/websocket-ssl.log info; } } 14 октября 2015 г., 16:43 пользователь Сергей Пузырёв написал: > Можно использовать директиву proxy_bind > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_bind и > наваять грязный хак наподобие: > > split_clients $connection $downstream { > 50% 1; > 50% 2; > } > > upstream backend { > server A; > server B; > } > > server { > location /bla { > rewrite /down$downstream$request_uri; > } > location /down1 { > rewrite /down1(.*)$ $1 break; > proxy_pass http://backend; > proxy_bind 1.1.1.1; > } > location /down2 { > rewrite /down2(.*)$ $1 break; > proxy_pass http://backend; > proxy_bind 2.2.2.2; > } > } > > 14 октября 2015 г., 16:36 пользователь kpoxa написал: > >> Проблемы с настройками ОС нет, я ж написал, уперся в лимит портов, грубо >> говоря в 64 000 +-, а надо 200 тыс. Пробовал и с указанными вами >> переменными играться, и, например, наличие нескольких IP из одной подсети, >> исходящие соединяются не распределяются по IP самостоятельно, для этого >> надо делать какие-то телодвижения в коже, коих сейчас, видимо, нет. Поэтому >> у меня и вопрос - может быть они есть и я что-то упустил в доках? А если >> нет, то не планируются ли? Какой-нибудь downstream { out_ip ip1; out_ip >> ip2; } :) >> >> 2015-10-14 15:59 GMT+03:00 Alex Vorona : >> >>> Похоже проблемы с настройками ОС >>> http://nginx.org/en/docs/freebsd_tuning.html >>> net.inet.ip.portrange.randomized=0 >>> net.inet.ip.portrange.first=1024 >>> net.inet.ip.portrange.last=65535 >>> >>> Для Linux sysctl net.ipv4.ip_local_port_range >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > С уважением, > Сергей Пузырёв > тел.: +7-916-980-70-45 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From spuzirev на gmail.com Wed Oct 14 14:11:15 2015 From: spuzirev на gmail.com (=?UTF-8?B?0KHQtdGA0LPQtdC5INCf0YPQt9GL0YDRkdCy?=) Date: Wed, 14 Oct 2015 17:11:15 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> Message-ID: Можно сделать ещё намного более извращенную схему с перепроксированием по петле: upstream ws { server 10.17.17.38.5003; } upstream internal-ws { server 127.0.0.1:5001; server 127.0.0.2:5001; server 127.0.0.3:5001; } server { listen 15.15.72.198:443 ssl; proxy_connect_timeout 30s; proxy_timeout 3600s; proxy_pass internal-ws; error_log /var/log/nginx/websocket-ssl.log info; } server { listen 127.0.0.1:5001 proxy_pass ws; proxy_bind 1.1.1.1; } server { listen 127.0.0.2:5001; proxy_pass ws; proxy_bind 2.2.2.2; } server { listen 127.0.0.3:5001; proxy_pass ws; proxy_bind 3.3.3.3; } 14 октября 2015 г., 17:00 пользователь kpoxa написал: > Добрый день. > > Спасибо за попытку помочь, к сожалению proxy_bind в варианте с stream > сервером можно использовать только один раз, т.к. в данном случае нет > location как таковых, есть только очень длинные соединения с commet > сервером, которые могут длиться днями, и это их нормальное поведение. > Конфиг простой: > stream { > upstream ws { > server 10.17.17.38:5003; > } > > server { > listen 15.15.72.198:443 ssl; > #ssl params skipped; > proxy_connect_timeout 30s; > proxy_timeout 3600s; > proxy_pass ws; > error_log /var/log/nginx/websocket-ssl.log info; > } > } > > 14 октября 2015 г., 16:43 пользователь Сергей Пузырёв > написал: > > Можно использовать директиву proxy_bind >> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_bind и >> наваять грязный хак наподобие: >> >> split_clients $connection $downstream { >> 50% 1; >> 50% 2; >> } >> >> upstream backend { >> server A; >> server B; >> } >> >> server { >> location /bla { >> rewrite /down$downstream$request_uri; >> } >> location /down1 { >> rewrite /down1(.*)$ $1 break; >> proxy_pass http://backend; >> proxy_bind 1.1.1.1; >> } >> location /down2 { >> rewrite /down2(.*)$ $1 break; >> proxy_pass http://backend; >> proxy_bind 2.2.2.2; >> } >> } >> >> 14 октября 2015 г., 16:36 пользователь kpoxa написал: >> >>> Проблемы с настройками ОС нет, я ж написал, уперся в лимит портов, грубо >>> говоря в 64 000 +-, а надо 200 тыс. Пробовал и с указанными вами >>> переменными играться, и, например, наличие нескольких IP из одной подсети, >>> исходящие соединяются не распределяются по IP самостоятельно, для этого >>> надо делать какие-то телодвижения в коже, коих сейчас, видимо, нет. Поэтому >>> у меня и вопрос - может быть они есть и я что-то упустил в доках? А если >>> нет, то не планируются ли? Какой-нибудь downstream { out_ip ip1; out_ip >>> ip2; } :) >>> >>> 2015-10-14 15:59 GMT+03:00 Alex Vorona : >>> >>>> Похоже проблемы с настройками ОС >>>> http://nginx.org/en/docs/freebsd_tuning.html >>>> net.inet.ip.portrange.randomized=0 >>>> net.inet.ip.portrange.first=1024 >>>> net.inet.ip.portrange.last=65535 >>>> >>>> Для Linux sysctl net.ipv4.ip_local_port_range >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> >> -- >> С уважением, >> Сергей Пузырёв >> тел.: +7-916-980-70-45 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Сергей Пузырёв тел.: +7-916-980-70-45 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kpoxa на kpoxa.net Wed Oct 14 14:14:55 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 14 Oct 2015 17:14:55 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> Message-ID: коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в этом месте. Вот если бы можно было сделать upstream ws { server 10.17.17.38:5003 bind 10.17.17. 100; server 10.17.17.38:5003 bind 10.17.17. 101; server 10.17.17.38:5003 bind 10.17.17. 102; } но тут нужно внедрять это в код nginx. 14 октября 2015 г., 17:11 пользователь Сергей Пузырёв написал: > Можно сделать ещё намного более извращенную схему с перепроксированием по > петле: > > upstream ws { > server 10.17.17.38.5003; > } > > upstream internal-ws { > server 127.0.0.1:5001; > server 127.0.0.2:5001; > server 127.0.0.3:5001; > } > > server { > listen 15.15.72.198:443 ssl; > proxy_connect_timeout 30s; > proxy_timeout 3600s; > proxy_pass internal-ws; > error_log /var/log/nginx/websocket-ssl.log info; > } > > server { > listen 127.0.0.1:5001 > proxy_pass ws; > proxy_bind 1.1.1.1; > } > > server { > listen 127.0.0.2:5001; > proxy_pass ws; > proxy_bind 2.2.2.2; > } > > server { > listen 127.0.0.3:5001; > proxy_pass ws; > proxy_bind 3.3.3.3; > } > > 14 октября 2015 г., 17:00 пользователь kpoxa написал: > >> Добрый день. >> >> Спасибо за попытку помочь, к сожалению proxy_bind в варианте с stream >> сервером можно использовать только один раз, т.к. в данном случае нет >> location как таковых, есть только очень длинные соединения с commet >> сервером, которые могут длиться днями, и это их нормальное поведение. >> Конфиг простой: >> stream { >> upstream ws { >> server 10.17.17.38:5003; >> } >> >> server { >> listen 15.15.72.198:443 ssl; >> #ssl params skipped; >> proxy_connect_timeout 30s; >> proxy_timeout 3600s; >> proxy_pass ws; >> error_log /var/log/nginx/websocket-ssl.log info; >> } >> } >> >> 14 октября 2015 г., 16:43 пользователь Сергей Пузырёв > > написал: >> >> Можно использовать директиву proxy_bind >>> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_bind и >>> наваять грязный хак наподобие: >>> >>> split_clients $connection $downstream { >>> 50% 1; >>> 50% 2; >>> } >>> >>> upstream backend { >>> server A; >>> server B; >>> } >>> >>> server { >>> location /bla { >>> rewrite /down$downstream$request_uri; >>> } >>> location /down1 { >>> rewrite /down1(.*)$ $1 break; >>> proxy_pass http://backend; >>> proxy_bind 1.1.1.1; >>> } >>> location /down2 { >>> rewrite /down2(.*)$ $1 break; >>> proxy_pass http://backend; >>> proxy_bind 2.2.2.2; >>> } >>> } >>> >>> 14 октября 2015 г., 16:36 пользователь kpoxa написал: >>> >>>> Проблемы с настройками ОС нет, я ж написал, уперся в лимит портов, >>>> грубо говоря в 64 000 +-, а надо 200 тыс. Пробовал и с указанными вами >>>> переменными играться, и, например, наличие нескольких IP из одной подсети, >>>> исходящие соединяются не распределяются по IP самостоятельно, для этого >>>> надо делать какие-то телодвижения в коже, коих сейчас, видимо, нет. Поэтому >>>> у меня и вопрос - может быть они есть и я что-то упустил в доках? А если >>>> нет, то не планируются ли? Какой-нибудь downstream { out_ip ip1; out_ip >>>> ip2; } :) >>>> >>>> 2015-10-14 15:59 GMT+03:00 Alex Vorona : >>>> >>>>> Похоже проблемы с настройками ОС >>>>> http://nginx.org/en/docs/freebsd_tuning.html >>>>> net.inet.ip.portrange.randomized=0 >>>>> net.inet.ip.portrange.first=1024 >>>>> net.inet.ip.portrange.last=65535 >>>>> >>>>> Для Linux sysctl net.ipv4.ip_local_port_range >>>>> >>>>> _______________________________________________ >>>>> nginx-ru mailing list >>>>> nginx-ru на nginx.org >>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>> >>>> >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>> >>> >>> >>> >>> -- >>> С уважением, >>> Сергей Пузырёв >>> тел.: +7-916-980-70-45 >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > С уважением, > Сергей Пузырёв > тел.: +7-916-980-70-45 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgx на protva.ru Wed Oct 14 14:33:37 2015 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Wed, 14 Oct 2015 17:33:37 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> Message-ID: <20151014143336.GG31008@sie.protva.ru> On Wed, Oct 14, 2015 at 05:14:55PM +0300, kpoxa wrote: > коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в этом > месте. > Вот если бы можно было сделать > upstream ws { > server 10.17.17.38:5003 bind 10.17.17. 100; > server 10.17.17.38:5003 bind 10.17.17. 101; > server 10.17.17.38:5003 bind 10.17.17. 102; > } > но тут нужно внедрять это в код nginx. А что мешает поднять бэкенд на разных портах: 10.17.17.38:5003, 10.17.17.38:5004, ..:5005, и т.д.? Или на разных ip-адресах. -- Eugene Berdnikov From kpoxa на kpoxa.net Wed Oct 14 14:38:41 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 14 Oct 2015 17:38:41 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: <20151014143336.GG31008@sie.protva.ru> References: <561E51AB.8090003@amhost.net> <20151014143336.GG31008@sie.protva.ru> Message-ID: При чем тут где бэкэнд? Коннекты к любому количестве внешних портов будут идти всё равно он одного адреса, вопрос с исходящими соединениями на севрере с nginx, а не с входящими где бэкэнд, первые ограничиваются числом портов у используемого адреса, а вторые этого ограничения не имеют. 14 октября 2015 г., 17:33 пользователь Evgeniy Berdnikov написал: > On Wed, Oct 14, 2015 at 05:14:55PM +0300, kpoxa wrote: > > коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в > этом > > месте. > > Вот если бы можно было сделать > > upstream ws { > > server 10.17.17.38:5003 bind 10.17.17. 100; > > server 10.17.17.38:5003 bind 10.17.17. 101; > > server 10.17.17.38:5003 bind 10.17.17. 102; > > } > > но тут нужно внедрять это в код nginx. > > А что мешает поднять бэкенд на разных портах: 10.17.17.38:5003, > 10.17.17.38:5004, ..:5005, и т.д.? Или на разных ip-адресах. > -- > Eugene Berdnikov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From spuzirev на gmail.com Wed Oct 14 14:40:19 2015 From: spuzirev на gmail.com (=?UTF-8?B?0KHQtdGA0LPQtdC5INCf0YPQt9GL0YDRkdCy?=) Date: Wed, 14 Oct 2015 17:40:19 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> Message-ID: коннекты на 127.0.0.1 тоже конечны, но вы можете поднять много листенеров на разных портах и они у вас будут умножаться. 14 октября 2015 г., 17:14 пользователь kpoxa написал: > коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в этом > месте. > Вот если бы можно было сделать > upstream ws { > server 10.17.17.38:5003 bind 10.17.17. 100; > server 10.17.17.38:5003 bind 10.17.17. 101; > server 10.17.17.38:5003 bind 10.17.17. 102; > } > но тут нужно внедрять это в код nginx. > > 14 октября 2015 г., 17:11 пользователь Сергей Пузырёв > написал: > > Можно сделать ещё намного более извращенную схему с перепроксированием по >> петле: >> >> upstream ws { >> server 10.17.17.38.5003; >> } >> >> upstream internal-ws { >> server 127.0.0.1:5001; >> server 127.0.0.2:5001; >> server 127.0.0.3:5001; >> } >> >> server { >> listen 15.15.72.198:443 ssl; >> proxy_connect_timeout 30s; >> proxy_timeout 3600s; >> proxy_pass internal-ws; >> error_log /var/log/nginx/websocket-ssl.log info; >> } >> >> server { >> listen 127.0.0.1:5001 >> proxy_pass ws; >> proxy_bind 1.1.1.1; >> } >> >> server { >> listen 127.0.0.2:5001; >> proxy_pass ws; >> proxy_bind 2.2.2.2; >> } >> >> server { >> listen 127.0.0.3:5001; >> proxy_pass ws; >> proxy_bind 3.3.3.3; >> } >> >> 14 октября 2015 г., 17:00 пользователь kpoxa написал: >> >>> Добрый день. >>> >>> Спасибо за попытку помочь, к сожалению proxy_bind в варианте с stream >>> сервером можно использовать только один раз, т.к. в данном случае нет >>> location как таковых, есть только очень длинные соединения с commet >>> сервером, которые могут длиться днями, и это их нормальное поведение. >>> Конфиг простой: >>> stream { >>> upstream ws { >>> server 10.17.17.38:5003; >>> } >>> >>> server { >>> listen 15.15.72.198:443 ssl; >>> #ssl params skipped; >>> proxy_connect_timeout 30s; >>> proxy_timeout 3600s; >>> proxy_pass ws; >>> error_log /var/log/nginx/websocket-ssl.log info; >>> } >>> } >>> >>> 14 октября 2015 г., 16:43 пользователь Сергей Пузырёв < >>> spuzirev на gmail.com> написал: >>> >>> Можно использовать директиву proxy_bind >>>> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_bind и >>>> наваять грязный хак наподобие: >>>> >>>> split_clients $connection $downstream { >>>> 50% 1; >>>> 50% 2; >>>> } >>>> >>>> upstream backend { >>>> server A; >>>> server B; >>>> } >>>> >>>> server { >>>> location /bla { >>>> rewrite /down$downstream$request_uri; >>>> } >>>> location /down1 { >>>> rewrite /down1(.*)$ $1 break; >>>> proxy_pass http://backend; >>>> proxy_bind 1.1.1.1; >>>> } >>>> location /down2 { >>>> rewrite /down2(.*)$ $1 break; >>>> proxy_pass http://backend; >>>> proxy_bind 2.2.2.2; >>>> } >>>> } >>>> >>>> 14 октября 2015 г., 16:36 пользователь kpoxa написал: >>>> >>>>> Проблемы с настройками ОС нет, я ж написал, уперся в лимит портов, >>>>> грубо говоря в 64 000 +-, а надо 200 тыс. Пробовал и с указанными вами >>>>> переменными играться, и, например, наличие нескольких IP из одной подсети, >>>>> исходящие соединяются не распределяются по IP самостоятельно, для этого >>>>> надо делать какие-то телодвижения в коже, коих сейчас, видимо, нет. Поэтому >>>>> у меня и вопрос - может быть они есть и я что-то упустил в доках? А если >>>>> нет, то не планируются ли? Какой-нибудь downstream { out_ip ip1; out_ip >>>>> ip2; } :) >>>>> >>>>> 2015-10-14 15:59 GMT+03:00 Alex Vorona : >>>>> >>>>>> Похоже проблемы с настройками ОС >>>>>> http://nginx.org/en/docs/freebsd_tuning.html >>>>>> net.inet.ip.portrange.randomized=0 >>>>>> net.inet.ip.portrange.first=1024 >>>>>> net.inet.ip.portrange.last=65535 >>>>>> >>>>>> Для Linux sysctl net.ipv4.ip_local_port_range >>>>>> >>>>>> _______________________________________________ >>>>>> nginx-ru mailing list >>>>>> nginx-ru на nginx.org >>>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> nginx-ru mailing list >>>>> nginx-ru на nginx.org >>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>>> >>>> >>>> >>>> >>>> -- >>>> С уважением, >>>> Сергей Пузырёв >>>> тел.: +7-916-980-70-45 >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> >> -- >> С уважением, >> Сергей Пузырёв >> тел.: +7-916-980-70-45 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Сергей Пузырёв тел.: +7-916-980-70-45 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Wed Oct 14 14:42:44 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 14 Oct 2015 17:42:44 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgU1NJ?= In-Reply-To: References: Message-ID: <20151014144243.GC30105@mdounin.ru> Hello! On Wed, Oct 14, 2015 at 03:54:39PM +0300, Денис Ильиных wrote: > проверил через php-fpm > > Итог > > если отдаем HTML через php-fpm через fastcgi_pass с ответом 200 OK то ssi > инструкции не обрабатываются > если отдаем HTML через apache через proxy_pass с ответом 200 OK то ssi > инструкции не обрабатываются > > если отдаем статику (.html) через nginx то ssi обрабатывается с ошибками, > при этом инструкции из HTML удаляются > > если же отдаем страницу из Apache с кодом ответа 404 Not Found то ssi > инструкции отрабатывают как надо Симптомы позволяют предполжить, что у вас с бекенда идут сжатые данные - посмотрите внимательно на заголовки, которые возвращает бекенд, там должен быть ответ. Лечить - сконфигурив бекенд не делать так, либо явно удалив из запроса заголовок Accept-Encoding. [...] -- Maxim Dounin http://nginx.org/ From spuzirev на gmail.com Wed Oct 14 14:47:53 2015 From: spuzirev на gmail.com (=?UTF-8?B?0KHQtdGA0LPQtdC5INCf0YPQt9GL0YDRkdCy?=) Date: Wed, 14 Oct 2015 17:47:53 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> <20151014143336.GG31008@sie.protva.ru> Message-ID: Мне кажется, вы недопонимаете свою проблему. Нельзя иметь более 65000 соединений к одному удаленному порту одного удаленного IP-адреса с одного локального IP-адреса. Можно иметь 65000 соединений к одному удаленному порту одного удаленного IP-адреса с одного локального IP-адреса и еще 65000 соединений к другому удаленному порту этого же удаленного IP-адреса с того же локального IP-адреса. 14 октября 2015 г., 17:38 пользователь kpoxa написал: > При чем тут где бэкэнд? Коннекты к любому количестве внешних портов будут > идти всё равно он одного адреса, вопрос с исходящими соединениями на > севрере с nginx, а не с входящими где бэкэнд, первые ограничиваются числом > портов у используемого адреса, а вторые этого ограничения не имеют. > > 14 октября 2015 г., 17:33 пользователь Evgeniy Berdnikov > написал: > > On Wed, Oct 14, 2015 at 05:14:55PM +0300, kpoxa wrote: >> > коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в >> этом >> > месте. >> > Вот если бы можно было сделать >> > upstream ws { >> > server 10.17.17.38:5003 bind 10.17.17. 100; >> > server 10.17.17.38:5003 bind 10.17.17. 101; >> > server 10.17.17.38:5003 bind 10.17.17. 102; >> > } >> > но тут нужно внедрять это в код nginx. >> >> А что мешает поднять бэкенд на разных портах: 10.17.17.38:5003, >> 10.17.17.38:5004, ..:5005, и т.д.? Или на разных ip-адресах. >> -- >> Eugene Berdnikov >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Сергей Пузырёв тел.: +7-916-980-70-45 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kpoxa на kpoxa.net Wed Oct 14 15:01:28 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Wed, 14 Oct 2015 18:01:28 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> <20151014143336.GG31008@sie.protva.ru> Message-ID: Для исходящего соединения используется незанятая пара ip:port, порт берется свободный из диапазона доступных для этого портов, а ip берется первый, из ближней к целевому хосту сетевой карточки, если явно не задано иное, таким образом с одного ip адреса может быть всего 65000 коннектов во вне на любые разные ip и порты/ 14 октября 2015 г., 17:47 пользователь Сергей Пузырёв написал: > Мне кажется, вы недопонимаете свою проблему. > > Нельзя иметь более 65000 соединений к одному удаленному порту одного > удаленного IP-адреса с одного локального IP-адреса. > Можно иметь 65000 соединений к одному удаленному порту одного удаленного > IP-адреса с одного локального IP-адреса и еще 65000 соединений к другому > удаленному порту этого же удаленного IP-адреса с того же локального > IP-адреса. > > 14 октября 2015 г., 17:38 пользователь kpoxa написал: > >> При чем тут где бэкэнд? Коннекты к любому количестве внешних портов будут >> идти всё равно он одного адреса, вопрос с исходящими соединениями на >> севрере с nginx, а не с входящими где бэкэнд, первые ограничиваются числом >> портов у используемого адреса, а вторые этого ограничения не имеют. >> >> 14 октября 2015 г., 17:33 пользователь Evgeniy Berdnikov >> написал: >> >> On Wed, Oct 14, 2015 at 05:14:55PM +0300, kpoxa wrote: >>> > коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в >>> этом >>> > месте. >>> > Вот если бы можно было сделать >>> > upstream ws { >>> > server 10.17.17.38:5003 bind 10.17.17. >> >100; >>> > server 10.17.17.38:5003 bind 10.17.17. >> >101; >>> > server 10.17.17.38:5003 bind 10.17.17. >> >102; >>> > } >>> > но тут нужно внедрять это в код nginx. >>> >>> А что мешает поднять бэкенд на разных портах: 10.17.17.38:5003, >>> 10.17.17.38:5004, ..:5005, и т.д.? Или на разных ip-адресах. >>> -- >>> Eugene Berdnikov >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > С уважением, > Сергей Пузырёв > тел.: +7-916-980-70-45 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgx на protva.ru Wed Oct 14 15:04:39 2015 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Wed, 14 Oct 2015 18:04:39 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> <20151014143336.GG31008@sie.protva.ru> Message-ID: <20151014150439.GA21120@cio.protva.ru> On Wed, Oct 14, 2015 at 05:47:53PM +0300, Сергей Пузырёв wrote: > Мне кажется, вы недопонимаете свою проблему. > > Нельзя иметь более 65000 соединений к одному удаленному порту одного > удаленного IP-адреса с одного локального IP-адреса. > Можно иметь 65000 соединений к одному удаленному порту одного удаленного > IP-адреса с одного локального IP-адреса и еще 65000 соединений к другому > удаленному порту этого же удаленного IP-адреса с того же локального > IP-адреса. +1 Здесь возникает EADDRNOTAVAIL (99) при connect(2) вследствие того, что сервер, пытаясь создать tcp-соединение с квадруплетом параметров (src_ip, src_port, dst_ip, dst_port) исчерпывает диапазон src_port при фиксированных трёх других параметрах (src_ip=15.15.72.198, dst_ip=10.17.17.38, dst_port=5003). При вызове connect(2) ядро перебирает лишь возможные значения src_port и сталкивается с тем, что все квадруплеты уже заняты, потому и возвращает ошибку. Если увеличить число dst_port и/или dst_ip, то пространство состояний для возможных коннекций расширится. > 14 октября 2015 г., 17:38 пользователь kpoxa написал: > > > При чем тут где бэкэнд? Коннекты к любому количестве внешних портов будут > > идти всё равно он одного адреса, вопрос с исходящими соединениями на > > севрере с nginx, а не с входящими где бэкэнд, первые ограничиваются числом > > портов у используемого адреса, а вторые этого ограничения не имеют. > > > > 14 октября 2015 г., 17:33 пользователь Evgeniy Berdnikov > > написал: > > > > On Wed, Oct 14, 2015 at 05:14:55PM +0300, kpoxa wrote: > >> > коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в > >> этом > >> > месте. > >> > Вот если бы можно было сделать > >> > upstream ws { > >> > server 10.17.17.38:5003 bind 10.17.17. 100; > >> > server 10.17.17.38:5003 bind 10.17.17. 101; > >> > server 10.17.17.38:5003 bind 10.17.17. 102; > >> > } > >> > но тут нужно внедрять это в код nginx. > >> > >> А что мешает поднять бэкенд на разных портах: 10.17.17.38:5003, > >> 10.17.17.38:5004, ..:5005, и т.д.? Или на разных ip-адресах. > >> -- > >> Eugene Berdnikov > >> > >> _______________________________________________ > >> nginx-ru mailing list > >> nginx-ru на nginx.org > >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > -- > С уважением, > Сергей Пузырёв > тел.: +7-916-980-70-45 > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Eugene Berdnikov From mdounin на mdounin.ru Wed Oct 14 15:12:58 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 14 Oct 2015 18:12:58 +0300 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtGMINGBIGhlYWRlciBEQVRF?= In-Reply-To: References: <20151013123650.GX30105@mdounin.ru> Message-ID: <20151014151258.GD30105@mdounin.ru> Hello! On Tue, Oct 13, 2015 at 09:23:02AM -0400, vitcool wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Hello! > > > > On Tue, Oct 13, 2015 at 06:50:28AM -0400, vitcool wrote: > > > > > nginx используется как прокси. бекенд отдает ему все заголовки, как > > то Date, > > > last-Modif, Expires и т.п. > > > при этом nginx меняет заголовок Date и все время отдает в нем дату и > > время > > > своего запуска. > > > > В заголовке Date должно возвращаться текущее время на сервере. > > несомненно > > > То, что nginx его меняет - это правильно, так и должно быть. Если > > вместо текущего времени там действительно время запуска nginx'а - > > тогда стоит начинать волноваться. > > вот именно это и происходит. дата и время все время одно и тоже. как вчера > запустил - так и оно и выдается до сих пор. > это означает что не только браузеры, но и поисковые системы сойдут с ума. > > причем я убирал этот заголовок в ответе у бекенда. а он все равно один и тот > же > напомню - речь про виндоус платформы. на иксах не тестировал. Сборка nginx'а официальная, с nginx.org? Если нет, то имеет смысл проверить официальную. Если да, то имеет смысл: - Проверить, воспроизводится ли проблема на статических файлах и с минимальным конфигом. - Проверить, воспроизводится ли проблема на чистой тестовой виртуалке откуда-нибудь с modern.ie. - Прислать полный минимальный конфиг, с которым проблема воспроизводится, и debug log пары запросов, где была бы видна проблема. -- Maxim Dounin http://nginx.org/ From spuzirev на gmail.com Wed Oct 14 15:26:18 2015 From: spuzirev на gmail.com (=?UTF-8?B?0KHQtdGA0LPQtdC5INCf0YPQt9GL0YDRkdCy?=) Date: Wed, 14 Oct 2015 18:26:18 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <561E51AB.8090003@amhost.net> <20151014143336.GG31008@sie.protva.ru> Message-ID: http://stackoverflow.com/questions/2332741/what-is-the-theoretical-maximum-number-of-open-tcp-connections-that-a-modern-lin 14 октября 2015 г., 18:01 пользователь kpoxa написал: > Для исходящего соединения используется незанятая пара ip:port, порт > берется свободный из диапазона доступных для этого портов, а ip берется > первый, из ближней к целевому хосту сетевой карточки, если явно не задано > иное, таким образом с одного ip адреса может быть всего 65000 коннектов во > вне на любые разные ip и порты/ > > 14 октября 2015 г., 17:47 пользователь Сергей Пузырёв > написал: > > Мне кажется, вы недопонимаете свою проблему. >> >> Нельзя иметь более 65000 соединений к одному удаленному порту одного >> удаленного IP-адреса с одного локального IP-адреса. >> Можно иметь 65000 соединений к одному удаленному порту одного удаленного >> IP-адреса с одного локального IP-адреса и еще 65000 соединений к другому >> удаленному порту этого же удаленного IP-адреса с того же локального >> IP-адреса. >> >> 14 октября 2015 г., 17:38 пользователь kpoxa написал: >> >>> При чем тут где бэкэнд? Коннекты к любому количестве внешних портов >>> будут идти всё равно он одного адреса, вопрос с исходящими соединениями на >>> севрере с nginx, а не с входящими где бэкэнд, первые ограничиваются числом >>> портов у используемого адреса, а вторые этого ограничения не имеют. >>> >>> 14 октября 2015 г., 17:33 пользователь Evgeniy Berdnikov >>> написал: >>> >>> On Wed, Oct 14, 2015 at 05:14:55PM +0300, kpoxa wrote: >>>> > коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в >>>> этом >>>> > месте. >>>> > Вот если бы можно было сделать >>>> > upstream ws { >>>> > server 10.17.17.38:5003 bind 10.17.17. >>> >100; >>>> > server 10.17.17.38:5003 bind 10.17.17. >>> >101; >>>> > server 10.17.17.38:5003 bind 10.17.17. >>> >102; >>>> > } >>>> > но тут нужно внедрять это в код nginx. >>>> >>>> А что мешает поднять бэкенд на разных портах: 10.17.17.38:5003, >>>> 10.17.17.38:5004, ..:5005, и т.д.? Или на разных ip-адресах. >>>> -- >>>> Eugene Berdnikov >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> >> -- >> С уважением, >> Сергей Пузырёв >> тел.: +7-916-980-70-45 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Сергей Пузырёв тел.: +7-916-980-70-45 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vbart на nginx.com Wed Oct 14 15:47:18 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 14 Oct 2015 18:47:18 +0300 Subject: =?UTF-8?B?UmU6INCx0YDQsNGC0Ywg0YTQsNC50Lsg0YLQvtC70YzQutC+INC40Lcg0LrQtdGI?= =?UTF-8?B?0LA=?= In-Reply-To: References: <1477573.qGLGCatFzY@vbart-workstation> Message-ID: <206408473.NricIWP3fZ@vbart-workstation> On Wednesday 14 October 2015 11:11:52 Denis Kot wrote: > Спасибо. Появилась другая проблема. Если proxy_cache_lock_timeout оставить > по умолчанию 5s, и файл очень большой (например 600 мб) то клиенты получают > битые файлы. Nginx возвращает ответ 200, но размер файла в логе для каждого > клиента разный, хотя это один и тот же файл. Версия nginx/1.4.6 (Ubuntu). > [..] Так быть не должно и для начала имеет смысл обновиться до поддерживаемой версии. На данный момент это 1.8.0 или 1.9.5. -- Валентин Бартенев From vbart на nginx.com Wed Oct 14 15:59:27 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 14 Oct 2015 18:59:27 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: Message-ID: <5374243.9KV1dKTu05@vbart-workstation> On Wednesday 14 October 2015 18:01:28 kpoxa wrote: > Для исходящего соединения используется незанятая пара ip:port, порт берется > свободный из диапазона доступных для этого портов, а ip берется первый, из > ближней к целевому хосту сетевой карточки, если явно не задано иное, таким > образом с одного ip адреса может быть всего 65000 коннектов во вне на любые > разные ip и порты/ > [..] Вы заблуждаетесь. Нет проблемы с использованием одной и той же комбинации ip-порт для соединения с разными ip или разными портами на одном ip. -- Валентин Бартенев From greyhard на gmail.com Wed Oct 14 16:07:35 2015 From: greyhard на gmail.com (=?UTF-8?B?0JTQtdC90LjRgSDQmNC70YzQuNC90YvRhQ==?=) Date: Wed, 14 Oct 2015 19:07:35 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgU1NJ?= In-Reply-To: <20151014144243.GC30105@mdounin.ru> References: <20151014144243.GC30105@mdounin.ru> Message-ID: Спасибо ) вылетело из головы что такое возможно ) смутило то что я сам это сжатие не настраивал. А оно было включено по умолчанию 14 октября 2015 г., 17:42 пользователь Maxim Dounin написал: > Hello! > > On Wed, Oct 14, 2015 at 03:54:39PM +0300, Денис Ильиных wrote: > > > проверил через php-fpm > > > > Итог > > > > если отдаем HTML через php-fpm через fastcgi_pass с ответом 200 OK то ssi > > инструкции не обрабатываются > > если отдаем HTML через apache через proxy_pass с ответом 200 OK то ssi > > инструкции не обрабатываются > > > > если отдаем статику (.html) через nginx то ssi обрабатывается с ошибками, > > при этом инструкции из HTML удаляются > > > > если же отдаем страницу из Apache с кодом ответа 404 Not Found то ssi > > инструкции отрабатывают как надо > > Симптомы позволяют предполжить, что у вас с бекенда идут сжатые > данные - посмотрите внимательно на заголовки, которые возвращает > бекенд, там должен быть ответ. Лечить - сконфигурив бекенд не > делать так, либо явно удалив из запроса заголовок Accept-Encoding. > > [...] > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением. Ильиных Денис Программист Компания "GT-Shop.ru" Телефон: +7(963) 995-7616 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Wed Oct 14 16:18:38 2015 From: nginx-forum на nginx.us (vitcool) Date: Wed, 14 Oct 2015 12:18:38 -0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtGMINGBIGhlYWRlciBEQVRF?= In-Reply-To: <20151014151258.GD30105@mdounin.ru> References: <20151014151258.GD30105@mdounin.ru> Message-ID: Спасибо за ответ. методом исключения нашел строку в конфиге # Уменьшает разрешение таймеров времени в рабочих процессах, за счёт чего уменьшается число # системных вызовов gettimeofday(), что приводит к увеличению производительности timer_resolution 100ms; если комментировать timer_resolution 100ms - то все окей полез искать информацию по этой опции Maxim Dounin Wrote: > Сборка nginx'а официальная, с nginx.org? PS: да, брал с с nginx.org Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262143,262229#msg-262229 From mdounin на mdounin.ru Wed Oct 14 17:17:58 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 14 Oct 2015 20:17:58 +0300 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtGMINGBIGhlYWRlciBEQVRF?= In-Reply-To: References: <20151014151258.GD30105@mdounin.ru> Message-ID: <20151014171758.GK30105@mdounin.ru> Hello! On Wed, Oct 14, 2015 at 12:18:38PM -0400, vitcool wrote: > Спасибо за ответ. > > методом исключения нашел строку в конфиге > # Уменьшает разрешение таймеров времени в рабочих процессах, за счёт чего > уменьшается число > # системных вызовов gettimeofday(), что приводит к увеличению > производительности > timer_resolution 100ms; > > если комментировать timer_resolution 100ms - то все окей > полез искать информацию по этой опции Спасибо, выглядит как недоработка - timer_resolution под Windows работать не может, но обновление времени отключает. Стоит сделать, чтобы ругалось. -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Wed Oct 14 17:23:27 2015 From: nginx-forum на nginx.us (vitcool) Date: Wed, 14 Oct 2015 13:23:27 -0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtGMINGBIGhlYWRlciBEQVRF?= In-Reply-To: <20151014171758.GK30105@mdounin.ru> References: <20151014171758.GK30105@mdounin.ru> Message-ID: <688f14305d6cf7d2e40ace5dada47e26.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Спасибо, выглядит как недоработка - timer_resolution под Windows > работать не может, но обновление времени отключает. Стоит > сделать, чтобы ругалось. да уж мне то за что спасибо :) вопрос не по этой теме есть ли в планах разработчиков nginx мысль создать модуль подключения к Caucho Resin по примеру как mod_caucho для Апача ? чтобы проксировать не http а нативным путем? Любой инстанс каучо может принимать запросы и отдавать ответы по одельному порту в обход своего встроенного веб сервера. это повышает производительность для систем по архитекторе микросервисов Posted at Nginx Forum: http://forum.nginx.org/read.php?21,262143,262237#msg-262237 From mdounin на mdounin.ru Wed Oct 14 17:51:30 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 14 Oct 2015 20:51:30 +0300 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0YHRgtGMINGBIGhlYWRlciBEQVRF?= In-Reply-To: <688f14305d6cf7d2e40ace5dada47e26.NginxMailingListRussian@forum.nginx.org> References: <20151014171758.GK30105@mdounin.ru> <688f14305d6cf7d2e40ace5dada47e26.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151014175130.GN30105@mdounin.ru> Hello! On Wed, Oct 14, 2015 at 01:23:27PM -0400, vitcool wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Спасибо, выглядит как недоработка - timer_resolution под Windows > > работать не может, но обновление времени отключает. Стоит > > сделать, чтобы ругалось. > > да уж мне то за что спасибо :) Ну как - безумству храбрых, и всё такое. Надо же как-то благодарить людей, которые, не смотря ни на что, тащат nginx на системы с Windows, и пытаются там использовать во всяких экзотических конфигурациях. ;) > вопрос не по этой теме > есть ли в планах разработчиков nginx мысль создать модуль подключения к > Caucho Resin по примеру как mod_caucho для Апача ? > чтобы проксировать не http а нативным путем? Любой инстанс каучо может > принимать запросы и отдавать ответы по одельному порту в обход своего > встроенного веб сервера. это повышает производительность для систем по > архитекторе микросервисов Нет, в планах нет. Что до "повышает производительность" - не всегда стоит принимать на веру маркетинговые рассказы. -- Maxim Dounin http://nginx.org/ From universite на ukr.net Wed Oct 14 20:44:57 2015 From: universite на ukr.net (Vladislav Prodan) Date: Wed, 14 Oct 2015 23:44:57 +0300 Subject: =?UTF-8?B?0J/QvtC00YHQutCw0LbQuNGC0LUg0LvQvtC60LXQudGI0LXQvSDQv9C+INC+0LE=?= =?UTF-8?B?0YDQsNCx0L7RgtC60LUg0LfQsNC/0YDQvtGB0L7Qsg==?= Message-ID: <1444855355.309433446.01tum8x2@frv35.fwdcdn.com> Здравствуйте. Имеется коммерческая php система. Внутри все зашифровано . В логах присутствуют запросы вида /app/cron/queue.php?jobId=0&dataId=2314&cronKey=5c207b74a133bbeaad2456a6124204b9 Нужно создать локейшен с другими настройками php (php5-fpm) Создал такой, но что-то не попадает...         location ~ [^/]app/cron/(.*\.ph(p\d*|tml)) {                            try_files /does_not_exists @php2;                 }         location @php2 {                 fastcgi_index index.php;                 fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster на XXXXXX.org";                 fastcgi_pass unix:/var/www/php-fpm/XXXXXXX-admin.sock;                 fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;                 try_files $uri =404;                 include fastcgi_params;         } Подскажите плз, как сделать... -- Vladislav V. Prodan System & Network Administrator support.od.ua ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From public-mail на alekciy.ru Wed Oct 14 20:58:39 2015 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Thu, 15 Oct 2015 00:58:39 +0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNGB0LrQsNC20LjRgtC1INC70L7QutC10LnRiNC10L0g0L/QviA=?= =?UTF-8?B?0L7QsdGA0LDQsdC+0YLQutC1INC30LDQv9GA0L7RgdC+0LI=?= In-Reply-To: <1444855355.309433446.01tum8x2@frv35.fwdcdn.com> References: <1444855355.309433446.01tum8x2@frv35.fwdcdn.com> Message-ID: Ну как минимум переместить include fastcgi_params вверх. 15 октября 2015 г., 0:44 пользователь Vladislav Prodan написал: > Здравствуйте. > > Имеется коммерческая php система. > Внутри все зашифровано . > > В логах присутствуют запросы вида > /app/cron/queue.php?jobId=0&dataId=2314&cronKey=5c207b74a133bbeaad2456a6124204b9 > > Нужно создать локейшен с другими настройками php (php5-fpm) > > Создал такой, но что-то не попадает... > > location ~ [^/]app/cron/(.*\.ph(p\d*|tml)) { > try_files /does_not_exists @php2; > } > > location @php2 { > &nbs p; fastcgi_index index.php; > fastcgi_param PHP_ADMIN_VALUE "sendmail_path = > /usr/sbin/sendmail -t -i -f webmaster на XXXXXX.org"; > fastcgi_pass unix:/var/www/php-fpm/XXXXXXX-admin.sock; > fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; > try_files $uri =404; > include fastcgi_params; > } > > Подскажите плз, как сделать... > > > > -- > Vladislav V. Prodan > Sy stem & Network Administrator > support.od.ua > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kpoxa на kpoxa.net Thu Oct 15 06:30:09 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Thu, 15 Oct 2015 09:30:09 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: <5374243.9KV1dKTu05@vbart-workstation> References: <5374243.9KV1dKTu05@vbart-workstation> Message-ID: Добрый день. Да, я не прав, однако не всегда есть возможность убедить бэкэнд слушать два или более портов. 14 октября 2015 г., 18:59 пользователь Валентин Бартенев написал: > On Wednesday 14 October 2015 18:01:28 kpoxa wrote: > > Для исходящего соединения используется незанятая пара ip:port, порт > берется > > свободный из диапазона доступных для этого портов, а ip берется первый, > из > > ближней к целевому хосту сетевой карточки, если явно не задано иное, > таким > > образом с одного ip адреса может быть всего 65000 коннектов во вне на > любые > > разные ip и порты/ > > > [..] > > Вы заблуждаетесь. Нет проблемы с использованием одной и той же комбинации > ip-порт для соединения с разными ip или разными портами на одном ip. > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgx на protva.ru Thu Oct 15 08:05:57 2015 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Thu, 15 Oct 2015 11:05:57 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <5374243.9KV1dKTu05@vbart-workstation> Message-ID: <20151015080557.GH31008@sie.protva.ru> On Thu, Oct 15, 2015 at 09:30:09AM +0300, kpoxa wrote: > Да, я не прав, однако не всегда есть возможность убедить бэкэнд слушать два > или более портов. Вряд ли бэкенд, которому нужно более 65 тысяч коннектов одновременно, представляет собой чёрный ящик, к которому не дают админского доступа. А раз так, то помимо настройки юзерспейсного софта есть варианты решения задачи иными средствами. Например, можно поднять несколько ip-адресов на бэкенде, задав несколько upstream-серверов в конфиге nginx'a, или ядерным nat'ом размножить порты. -- Eugene Berdnikov From kpoxa на kpoxa.net Thu Oct 15 08:41:10 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Thu, 15 Oct 2015 11:41:10 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: <20151015080557.GH31008@sie.protva.ru> References: <5374243.9KV1dKTu05@vbart-workstation> <20151015080557.GH31008@sie.protva.ru> Message-ID: все это можно сделать, но решение костыльное, использовать опцию reuseport или reuseaddr при коннекте к такому бэкэнду логичнее. 15 октября 2015 г., 11:05 пользователь Evgeniy Berdnikov написал: > On Thu, Oct 15, 2015 at 09:30:09AM +0300, kpoxa wrote: > > Да, я не прав, однако не всегда есть возможность убедить бэкэнд слушать > два > > или более портов. > > Вряд ли бэкенд, которому нужно более 65 тысяч коннектов одновременно, > представляет собой чёрный ящик, к которому не дают админского доступа. > А раз так, то помимо настройки юзерспейсного софта есть варианты решения > задачи иными средствами. Например, можно поднять несколько ip-адресов > на бэкенде, задав несколько upstream-серверов в конфиге nginx'a, или > ядерным nat'ом размножить порты. > -- > Eugene Berdnikov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgx на protva.ru Thu Oct 15 08:54:27 2015 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Thu, 15 Oct 2015 11:54:27 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: References: <5374243.9KV1dKTu05@vbart-workstation> <20151015080557.GH31008@sie.protva.ru> Message-ID: <20151015085427.GJ31008@sie.protva.ru> On Thu, Oct 15, 2015 at 11:41:10AM +0300, kpoxa wrote: > все это можно сделать, но решение костыльное, использовать опцию reuseport > или reuseaddr при коннекте к такому бэкэнду логичнее. Эти опции не имеют отношения к обсуждаемой проблеме. Они относятся к деталям того, как процессы делят адресное пространство прослушивающих сокетов. А слушающие tcp-сокеты занимают часть с dst_ip=0.0.0.0 и dst_port=0, эта часть не пересекается с подпространством параметров сконнекченных сокетов. -- Eugene Berdnikov From nginx-forum на nginx.us Thu Oct 15 19:50:41 2015 From: nginx-forum на nginx.us (BamGran) Date: Thu, 15 Oct 2015 15:50:41 -0400 Subject: =?UTF-8?B?0JrQsNC6INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQsiBwcm94eSBjYWNoZSBr?= =?UTF-8?B?ZXkg0YHQtdGB0YHQuNC+0L3QvdGD0Y4g0L/QtdGA0LXQvNC10L3QvdGD0Y4/?= Message-ID: Доброго времени стуок всем! Собственно, сабж. В связи с тем, что в навигации сайта задействоана переменная сессии, хотелось бы как-то пристегнуть её к ключу кеша. Т.е. грубо говоря, мы не знаем, как называется кука сессии, но знаем, что начинается она с PHPSESS и в сессии может быть переменная $_SESSION['section'] с перечислимым множеством значений. Можно как-то употребить это знание при описании proxy_cache_key??? Или совсем никак? Очень уж не хочется свой кеш городить... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262252,262252#msg-262252 From nginx-forum на nginx.us Thu Oct 15 22:58:35 2015 From: nginx-forum на nginx.us (truffle) Date: Thu, 15 Oct 2015 18:58:35 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIgcHJveHkgY2Fj?= =?UTF-8?B?aGUga2V5INGB0LXRgdGB0LjQvtC90L3Rg9GOINC/0LXRgNC10LzQtdC90L0=?= =?UTF-8?B?0YPRjj8=?= In-Reply-To: References: Message-ID: <59384707957633e1b0e42dfba1cea9cc.NginxMailingListRussian@forum.nginx.org> > мы не знаем, как называется кука сессии, но знаем, что начинается она с PHPSESS Что мешает сделать название куки с сессией статичным? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262252,262258#msg-262258 From nginx-forum на nginx.us Fri Oct 16 04:57:53 2015 From: nginx-forum на nginx.us (BamGran) Date: Fri, 16 Oct 2015 00:57:53 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIgcHJveHkgY2Fj?= =?UTF-8?B?aGUga2V5INGB0LXRgdGB0LjQvtC90L3Rg9GOINC/0LXRgNC10LzQtdC90L0=?= =?UTF-8?B?0YPRjj8=?= In-Reply-To: <59384707957633e1b0e42dfba1cea9cc.NginxMailingListRussian@forum.nginx.org> References: <59384707957633e1b0e42dfba1cea9cc.NginxMailingListRussian@forum.nginx.org> Message-ID: <7c52fb00934bd3bd038b256e93d58c17.NginxMailingListRussian@forum.nginx.org> То, что она должна быть индивидуальной для каждого посетителя. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262252,262261#msg-262261 From nginx-forum на nginx.us Fri Oct 16 05:35:38 2015 From: nginx-forum на nginx.us (BamGran) Date: Fri, 16 Oct 2015 01:35:38 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIgcHJveHkgY2Fj?= =?UTF-8?B?aGUga2V5INGB0LXRgdGB0LjQvtC90L3Rg9GOINC/0LXRgNC10LzQtdC90L0=?= =?UTF-8?B?0YPRjj8=?= In-Reply-To: <59384707957633e1b0e42dfba1cea9cc.NginxMailingListRussian@forum.nginx.org> References: <59384707957633e1b0e42dfba1cea9cc.NginxMailingListRussian@forum.nginx.org> Message-ID: Я тут подумал, нечаянно. Да, сессионная кука должна быть уникальной, но никто не мешает продублировать нужную мне переменную отдельной кукой с фиксированным именем. Остаётся вопрос: как обратиться к её значению при описании ключа??? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262252,262262#msg-262262 From nginx-forum на nginx.us Fri Oct 16 08:44:52 2015 From: nginx-forum на nginx.us (G@rry_) Date: Fri, 16 Oct 2015 04:44:52 -0400 Subject: =?UTF-8?B?ZmFzdGNnaSBjYWNoZSDQuCDQt9Cw0L/RgNC+0YHRiyDQvtGCIE9wZXJh?= Message-ID: <6a67d4149130fd8d518be122d980bc24.NginxMailingListRussian@forum.nginx.org> Здравствуйте. Настроил прозрачное кеширование запросов через fastcgi_cache. Все работает хорошо, но только для запросов приходящих от браузера Chrome. Запросы от Opera не кешируются (но уже имеющиеся в кеше страницы отдаются корректно). Что я делаю неправильно? Выдержки из конфига: *** fastcgi_cache_path /var/cache/nginx/php_pages levels=1:2 keys_zone=php_pages:1m inactive=30d; *** location ~ (?!/administrator/).*\.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass phpbackend; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_cache php_pages; fastcgi_cache_min_uses 0; fastcgi_cache_valid any 30d; fastcgi_cache_key "$request_uri|$host|$request_method|$http_if_modifed_since|$http_if_none_match"; fastcgi_hide_header "Set-Cookie"; fastcgi_ignore_headers "Cache-Control" "Expires"; } *** Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262264,262264#msg-262264 From rogat1y на gmail.com Fri Oct 16 09:14:07 2015 From: rogat1y на gmail.com (Maxim Kozlov) Date: Fri, 16 Oct 2015 12:14:07 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIgcHJveHkgY2Fj?= =?UTF-8?B?aGUga2V5INGB0LXRgdGB0LjQvtC90L3Rg9GOINC/0LXRgNC10LzQtdC90L0=?= =?UTF-8?B?0YPRjj8=?= In-Reply-To: References: <59384707957633e1b0e42dfba1cea9cc.NginxMailingListRussian@forum.nginx.org> Message-ID: 16 октября 2015 г., 8:35 пользователь BamGran написал: > > Остаётся вопрос: как обратиться к её значению при описании ключа??? > http://nginx.org/ru/docs/http/ngx_http_core_module.html#var_cookie_ ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From kpoxa на kpoxa.net Fri Oct 16 09:33:45 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Fri, 16 Oct 2015 12:33:45 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0L3QsCDRh9C40YHQu9C+INC40YE=?= =?UTF-8?B?0YXQvtC00Y/RidC40YUg0YHQvtC10LTQuNC90LXQvdC40Lk=?= In-Reply-To: <20151015085427.GJ31008@sie.protva.ru> References: <5374243.9KV1dKTu05@vbart-workstation> <20151015080557.GH31008@sie.protva.ru> <20151015085427.GJ31008@sie.protva.ru> Message-ID: Добрый день. Возможно есть какие-то другие параметры. 15 октября 2015 г., 11:54 пользователь Evgeniy Berdnikov написал: > On Thu, Oct 15, 2015 at 11:41:10AM +0300, kpoxa wrote: > > все это можно сделать, но решение костыльное, использовать опцию > reuseport > > или reuseaddr при коннекте к такому бэкэнду логичнее. > > Эти опции не имеют отношения к обсуждаемой проблеме. Они относятся к > деталям того, как процессы делят адресное пространство прослушивающих > сокетов. А слушающие tcp-сокеты занимают часть с dst_ip=0.0.0.0 и > dst_port=0, эта часть не пересекается с подпространством параметров > сконнекченных сокетов. > -- > Eugene Berdnikov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на nginx.us Fri Oct 16 10:11:07 2015 From: nginx-forum на nginx.us (BamGran) Date: Fri, 16 Oct 2015 06:11:07 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIgcHJveHkgY2Fj?= =?UTF-8?B?aGUga2V5INGB0LXRgdGB0LjQvtC90L3Rg9GOINC/0LXRgNC10LzQtdC90L0=?= =?UTF-8?B?0YPRjj8=?= In-Reply-To: References: Message-ID: Спасибо за наводку! Буду пробовать. Я правильно понимаю, что если не указано иного, то ответ бак-енда кешируется вместе с заголовками и кукисами в том числе? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262266,262268#msg-262268 From simplebox66 на gmail.com Fri Oct 16 12:34:02 2015 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Fri, 16 Oct 2015 15:34:02 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: References: Message-ID: А можно ли как-то ограничить место которое nginx может использовать под нужды своего кеша? Те директивы что мне попадались я так понял регулируют размеры одного файла, а как отрегулировать общий размер? 21 июля 2015 г., 17:32 пользователь Alexey Malov написал: > > > 13 июля 2015 г., 9:11 пользователь Иван Мишин > написал: > >> это же тема прям из учебника... >> >> Кроме шуток, будьте добры ткните носом пожалуйста, буду очень >> признателен. >> > > sudo lsof | grep nginx > > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_buffering > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path > > >> >> 13 июля 2015 г., 17:06 пользователь Daniel Podolsky >> написал: >> >>> > Помогите понять куда и чего пишет nginx в корневом разделе. >>> это же тема прям из учебника... >>> >>> nginx пишет свой кеш. например - при заборе с бекенда больших файлов, >>> или при приеме больших файлов от клиентов. >>> >>> файлы кеша nginx удаляет сразу после создания - чтобы за процессом не >>> оставалось мусора. поэтому du их не видит. >>> >>> однако, реальное удаление файла и освобождение места в *nix происходит >>> только после закрытия файла, поэтому место таки занято. >>> >>> если вам очень надо знать имена этих файлов - возьмите в руки программу >>> lsof. >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Alexey Malov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From rogat1y на gmail.com Fri Oct 16 12:41:49 2015 From: rogat1y на gmail.com (Maxim Kozlov) Date: Fri, 16 Oct 2015 15:41:49 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: References: Message-ID: > а как отрегулировать общий размер? http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From simplebox66 на gmail.com Fri Oct 16 13:29:52 2015 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Fri, 16 Oct 2015 16:29:52 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: References: Message-ID: Максим, речь не о том кеше про который вы подумали. Если я правильно понял Daniel Podolsky то речь идет о http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_temp_path 2015-10-16 15:41 GMT+03:00 Maxim Kozlov : > > а как отрегулировать общий размер? > > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Fri Oct 16 16:27:08 2015 From: nginx-forum на nginx.us (G@rry_) Date: Fri, 16 Oct 2015 12:27:08 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: References: Message-ID: Подозреваю что "proxy_buffering off;" поможет легко и просто решить проблему. Использовал этот параметр когда нужно было проксировать через nginx потоковые данные. Из проблем заметил только прожорливость nginx'а в плане процессорного времени, но не уверен, что дело было именно в буферах. Кстати количеством и размером этих буферов кажется можно управлять. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,260246,262285#msg-262285 From vbart на nginx.com Fri Oct 16 16:52:02 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Fri, 16 Oct 2015 19:52:02 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: References: Message-ID: <3347944.ozbL7GdZkg@vbart-workstation> On Friday 16 October 2015 12:27:08 G на rry_ wrote: > Подозреваю что "proxy_buffering off;" поможет легко и просто решить > проблему. > Использовал этот параметр когда нужно было проксировать через nginx > потоковые данные. Из проблем заметил только прожорливость nginx'а в плане > процессорного времени, но не уверен, что дело было именно в буферах. Кстати > количеством и размером этих буферов кажется можно управлять. Это вредный совет. Если нужно отключить буферизацию на диск, то следует использовать директиву "proxy_max_temp_file_size 0;". Использование для этой цели директивы "proxy_buffering off;" только увеличит потребление ресурсов и ухудшит пропускную способность. -- Валентин Бартенев From sergeyk на jfrog.com Sat Oct 17 12:49:23 2015 From: sergeyk на jfrog.com (Sergey Kagansky) Date: Sat, 17 Oct 2015 15:49:23 +0300 Subject: =?UTF-8?B?0JLQvtC/0YDQvtGBINC/0YDQviDQutC+0LTQuNGA0L7QstCw0L3QvdGL0Lkg0YE=?= =?UTF-8?B?0LvRjdGI?= Message-ID: Добрый день. Имеется такая конфигурация: server { ... ... rewrite ^/(.*)$ /artifactory/$1; location /artifactory { proxy_http_version 1.1; proxy_pass http://localhost:8081; } } И имеется запрос: request: "PUT /api/npm/npm-local/@jfrog%2fjfrogpkg HTTP/1.1" как видите в запросе есть закодированный слэш rewrite_log выдаёт такое: 2015/10/15 08:55:45 [notice] 31500#0: *1 rewritten data: "/artifactory/api/npm/npm-local/@jfrog/jfrogpkg", args: "", client: 172.16.183.200, request: "PUT /api/npm/npm-local/@jfrog%2fjfrogpkg HTTP/1.1" То есть он декодирует слэш. Как можно от этого избавиться и возможно ли это? Заранее благодарен за помощь. 2015-10-17 15:00 GMT+03:00 : > Сообщения, предназначенные для списка > рассылки nginx-ru, отправляйте по адресу > nginx-ru на nginx.org > > Для изменения параметров подписки или > отписки используйте веб-страницу > http://mailman.nginx.org/mailman/listinfo/nginx-ru > или отправьте письмо, в теле или теме > которого будет слово 'help', по адресу > nginx-ru-request на nginx.org > > Адрес администратора этого списка > рассылки: > nginx-ru-owner на nginx.org > > При ответе, пожалуйста, измените тему > письма на более содержательную чем "Re: > Содержание дайджеста списка рассылки > nginx-ru..." > > В этом номере: > > 1. Re: nginx забивает все место в > корневом разделе linux (Иван Мишин) > 2. Re: nginx забивает все место в > корневом разделе linux (Maxim Kozlov) > 3. Re: nginx забивает все место в > корневом разделе linux (Иван Мишин) > 4. Re: nginx забивает все место в > корневом разделе linux (G на rry_) > 5. Re: nginx забивает все место в > корневом разделе linux > (Валентин Бартенев) > > > ---------- Forwarded message ---------- > From: "Иван Мишин" > To: nginx-ru на nginx.org > Cc: > Date: Fri, 16 Oct 2015 15:34:02 +0300 > Subject: Re: nginx забивает все место в корневом разделе linux > А можно ли как-то ограничить место которое nginx может использовать под > нужды своего кеша? Те директивы что мне попадались я так понял регулируют > размеры одного файла, а как отрегулировать общий размер? > > 21 июля 2015 г., 17:32 пользователь Alexey Malov > написал: > >> >> >> 13 июля 2015 г., 9:11 пользователь Иван Мишин >> написал: >> >>> это же тема прям из учебника... >>> >>> Кроме шуток, будьте добры ткните носом пожалуйста, буду очень >>> признателен. >>> >> >> sudo lsof | grep nginx >> >> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_buffering >> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path >> >> >>> >>> 13 июля 2015 г., 17:06 пользователь Daniel Podolsky >>> написал: >>> >>>> > Помогите понять куда и чего пишет nginx в корневом разделе. >>>> это же тема прям из учебника... >>>> >>>> nginx пишет свой кеш. например - при заборе с бекенда больших файлов, >>>> или при приеме больших файлов от клиентов. >>>> >>>> файлы кеша nginx удаляет сразу после создания - чтобы за процессом не >>>> оставалось мусора. поэтому du их не видит. >>>> >>>> однако, реальное удаление файла и освобождение места в *nix происходит >>>> только после закрытия файла, поэтому место таки занято. >>>> >>>> если вам очень надо знать имена этих файлов - возьмите в руки программу >>>> lsof. >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> >> -- >> Alexey Malov >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > ---------- Forwarded message ---------- > From: Maxim Kozlov > To: nginx-ru на nginx.org > Cc: > Date: Fri, 16 Oct 2015 15:41:49 +0300 > Subject: Re: nginx забивает все место в корневом разделе linux > > а как отрегулировать общий размер? > > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path > > > ---------- Forwarded message ---------- > From: "Иван Мишин" > To: nginx-ru на nginx.org > Cc: > Date: Fri, 16 Oct 2015 16:29:52 +0300 > Subject: Re: nginx забивает все место в корневом разделе linux > Максим, речь не о том кеше про который вы подумали. Если я правильно понял Daniel > Podolsky то речь идет о > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_temp_path > > 2015-10-16 15:41 GMT+03:00 Maxim Kozlov : > >> > а как отрегулировать общий размер? >> >> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > ---------- Forwarded message ---------- > From: "G на rry_" > To: nginx-ru на nginx.org > Cc: > Date: Fri, 16 Oct 2015 12:27:08 -0400 > Subject: Re: nginx забивает все место в корневом разделе linux > Подозреваю что "proxy_buffering off;" поможет легко и просто решить > проблему. > Использовал этот параметр когда нужно было проксировать через nginx > потоковые данные. Из проблем заметил только прожорливость nginx'а в плане > процессорного времени, но не уверен, что дело было именно в буферах. Кстати > количеством и размером этих буферов кажется можно управлять. > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,260246,262285#msg-262285 > > > > > ---------- Forwarded message ---------- > From: "Валентин Бартенев" > To: nginx-ru на nginx.org > Cc: > Date: Fri, 16 Oct 2015 19:52:02 +0300 > Subject: Re: nginx забивает все место в корневом разделе linux > On Friday 16 October 2015 12:27:08 G на rry_ wrote: > > Подозреваю что "proxy_buffering off;" поможет легко и просто решить > > проблему. > > Использовал этот параметр когда нужно было проксировать через nginx > > потоковые данные. Из проблем заметил только прожорливость nginx'а в плане > > процессорного времени, но не уверен, что дело было именно в буферах. > Кстати > > количеством и размером этих буферов кажется можно управлять. > > Это вредный совет. Если нужно отключить буферизацию на диск, то следует > использовать директиву "proxy_max_temp_file_size 0;". > > Использование для этой цели директивы "proxy_buffering off;" только > увеличит > потребление ресурсов и ухудшит пропускную способность. > > -- > Валентин Бартенев > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From postmaster на softsearch.ru Sun Oct 18 13:02:30 2015 From: postmaster на softsearch.ru (=?Windows-1251?B?zOj14OjrIMzu7eD4uOI=?=) Date: Sun, 18 Oct 2015 16:02:30 +0300 Subject: Ketama Message-ID: <1418266652.20151018160230@softsearch.ru> Здравствуйте. Скажите, пожалуйста, а кто-нибудь пользуется при отдаче из мемкешеда алгоритмом балансировки ketama http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#hash ? -- С уважением, Михаил mailto:postmaster на softsearch.ru From pavel.odintsov на gmail.com Sun Oct 18 18:58:20 2015 From: pavel.odintsov на gmail.com (Pavel Odintsov) Date: Sun, 18 Oct 2015 21:58:20 +0300 Subject: =?UTF-8?B?0J/RgNC+0LHQu9C10LzRiyDRgSDQsdGN0LrRjdC90LTQvtC8INC90LAgaHR0cDI=?= Message-ID: Всем привет! Имеется сервер gRPC на С++, который работает только поверх шифрованного HTTP2. Имеется желание его проксировать силами Nginx для повышения надежности и реверс-проксирования. Суть в том, что Nginx должен общаться с gRPC бэкэндом только по HTTP2/TLS, иначе оно не работает. Но Nginx не может подключиться к http2 бэкэнду вот с такой ошибкой: 2015/10/18 20:54:07 [error] 2954#2954: *3 peer closed connection in SSL handshake while SSL handshaking to upstream, client: 127.0.0.1, server: api.fastnetmon.io, request: "POST /fastmitigation.Fastnetmon/GetBanlist HTTP/2.0", upstream: "https://127.0.0.1:10777/fastmitigation.Fastnetmon/GetBanlist", host: "api.fastnetmon.io:443" Отладочный лог следующий: https://gist.github.com/pavel-odintsov/a63be495bc8c97e263ce gRPC сервер ругается вот так: E1018 20:57:43.008673859 2849 security_connector.c:485] Missing selected ALPN property. E1018 20:57:43.008703681 2849 handshake.c:133] Peer check failed. E1018 20:57:43.008715764 2849 server_secure_chttp2.c:154] Secure transport failed with error 2 Судя по всему, ему нужно каким-то образом явно передать ALPN что оно HTTP2, но это сделать с Nginx - я не понимаю :( Мой конфиг вот такой: user nginx; worker_processes 1; # warn error_log /var/log/nginx/error.log debug; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" http v2: $http2'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; #include /etc/nginx/conf.d/*.conf; server { listen 443 ssl http2 default_server; server_name api.fastnetmon.io; ssl_certificate /usr/src/fastnetmon/src/server.crt; ssl_certificate_key /usr/src/fastnetmon/src/server.key; #root /var/www/html; location / { proxy_ssl_protocols TLSv1.2; add_header Alternate-Protocol 10777:npn-spdy/3; proxy_pass https://127.0.0.1:10777; proxy_set_header Host $host; } } } -- Sincerely yours, Pavel Odintsov From simplebox66 на gmail.com Mon Oct 19 06:15:27 2015 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Mon, 19 Oct 2015 09:15:27 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: <3347944.ozbL7GdZkg@vbart-workstation> References: <3347944.ozbL7GdZkg@vbart-workstation> Message-ID: Во-первых, не хотелось бы отключать запись во временный файл , хочется просто ограничить размер отведенный под временный файлы. Валентин, proxy_max_temp_file_size - "Эта директива задаёт максимальный размер временного файла." То есть этой директивой я могу ограничить только размер одного файла, но у меня довольно нагруженная система и этих самых временных файлов может быть очень много и они все равно забьют корень системы под максимум. Есть ли какие-то способы ограничить общий размер отведенный под временные файлы? А так же не понятно что станет лучше/хуже если отключить запись во временные файлы путем "proxy_max_temp_file_size 0;" 16 октября 2015 г., 19:52 пользователь Валентин Бартенев написал: > > On Friday 16 October 2015 12:27:08 G на rry_ wrote: > > Подозреваю что "proxy_buffering off;" поможет легко и просто решить > > проблему. > > Использовал этот параметр когда нужно было проксировать через nginx > > потоковые данные. Из проблем заметил только прожорливость nginx'а в плане > > процессорного времени, но не уверен, что дело было именно в буферах. Кстати > > количеством и размером этих буферов кажется можно управлять. > > Это вредный совет. Если нужно отключить буферизацию на диск, то следует > использовать директиву "proxy_max_temp_file_size 0;". > > Использование для этой цели директивы "proxy_buffering off;" только увеличит > потребление ресурсов и ухудшит пропускную способность. > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Mon Oct 19 07:19:48 2015 From: nginx-forum на nginx.us (rba) Date: Mon, 19 Oct 2015 03:19:48 -0400 Subject: =?UTF-8?Q?Re=3A_PUT_=D0=B8_POST_module_handler?= In-Reply-To: <20151014125822.GA30105@mdounin.ru> References: <20151014125822.GA30105@mdounin.ru> Message-ID: <7d5d90780462bab4d026796798427ac5.NginxMailingListRussian@forum.nginx.org> Спасибо за ваш ответ, ряд вопросов прояснились. Но вот осуществить возврать в хэндлер при пропуске, в новой итерации воркера, при выходе из post_handler без финализации [и перемещения позиции буфера] - не получается. (разумеется это не касается запросов влезающих в один буфер или единоразово(блокирующе) читающих цепочку) Лог выглядет так: [debug] 6364#0: *1 rbsample 0.0 ngx_http_rbsample_handler! //входим в ngx_http_rbsample_handler ... [debug] 6364#0: *1 RBSAMPLE 1. put/post!!!! ...удается считать первый буфер из ngx_http_rbsample_debug ...ngx_http_rbsample_debug говорит что нужно пропустить итерацию ...выходим из воркера без финализации, без изменений позиции буфера [debug] 6364#0: *1 rbsample 0.1 after ngx_http_rbsample_handler! 0 //выходим в ngx_http_rbsample_handler [debug] 6364#0: *1 http finalize request: -4, "/md?" a:1, c:2 [debug] 6365#0: *4 http request count:2 blk:0 И соединение на клиенте повисает в открытом виде Код: static void ngx_http_rbsample_post_handler(ngx_http_request_t *r) { /********************************************************** .... cl = r->request_body->bufs; потом cl подтягивается из ctx **********************************************************/ ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 1. put/post!!!!"); buf = cl->buf; len = buf->last - buf->pos; ngx_http_rbsample_debug(r, buf->pos, len);//to debug log RBSAMPLE 2. /********************************************************** некоторый код, которым ngx_http_rbsample_debug умеет говорить, что нужно подождать, сохранение cl в сtx и return; **********************************************************/ if(!r->request_body->rest && cl->next==0) { ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 4. put/post finalize!!!!"); ngx_http_finalize_request(r, 0); } buf->pos = buf->last; if(cl->next){ /********************************************************** код для передвижения по буферам и сохранения позиции в ctx, для того чтобы к ней вернуться на следующей итерации воркера **********************************************************/ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "RBSAMPLE 3 CHANGE POS len: %i", len); } return; } static ngx_int_t ngx_http_rbsample_handler(ngx_http_request_t *r) { ngx_int_t rc; ngx_log_debug(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "rbsample 0.0 ngx_http_rbsample_handler!"); if(r->method == NGX_HTTP_PUT || r->method == NGX_HTTP_POST) { rc = ngx_http_read_client_request_body(r, ngx_http_rbsample_post_handler); if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { return rc; } ngx_log_debug1(NGX_LOG_DEBUG_EVENT, r->connection->log, 0, "rbsample 0.1 after ngx_http_rbsample_handler! %i", rc); return NGX_DONE; //пробывал и NGX_AGAIN } return ngx_http_rbsample_other_handler(r); } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262136,262307#msg-262307 From nginx-forum на nginx.us Mon Oct 19 11:27:02 2015 From: nginx-forum на nginx.us (G@rry_) Date: Mon, 19 Oct 2015 07:27:02 -0400 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2kgY2FjaGUg0Lgg0LfQsNC/0YDQvtGB0Ysg0L7RgiBPcGVyYQ==?= In-Reply-To: <6a67d4149130fd8d518be122d980bc24.NginxMailingListRussian@forum.nginx.org> References: <6a67d4149130fd8d518be122d980bc24.NginxMailingListRussian@forum.nginx.org> Message-ID: <56d7998b085b5ce8af3316a3c2fc6e98.NginxMailingListRussian@forum.nginx.org> Отвечу сам себе. Дело оказалось в строчке "fastcgi_cache_valid any 30d;" и в заголовке указано If-None-Match, но Nginx ничего не кеширует. Если конфигурацию изменить на "fastcgi_cache_valid 200 301 202 404 30d;" то начинает работать, но некоторые страницы в кеш попадают не с первого запроса. В чем может быть причина? Также обратил внимание, что Nginx принципиально не кеширует запросы HTTP/1.0. Может это так задумано?.. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262264,262309#msg-262309 From mdounin на mdounin.ru Mon Oct 19 12:50:59 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 19 Oct 2015 15:50:59 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: References: Message-ID: <20151019125059.GK48365@mdounin.ru> Hello! On Sun, Oct 18, 2015 at 09:58:20PM +0300, Pavel Odintsov wrote: > Всем привет! > > Имеется сервер gRPC на С++, который работает только поверх > шифрованного HTTP2. Имеется желание его проксировать силами Nginx для > повышения надежности и реверс-проксирования. > > Суть в том, что Nginx должен общаться с gRPC бэкэндом только по > HTTP2/TLS, иначе оно не работает. > > Но Nginx не может подключиться к http2 бэкэнду вот с такой ошибкой: > 2015/10/18 20:54:07 [error] 2954#2954: *3 peer closed connection in > SSL handshake while SSL handshaking to upstream, client: 127.0.0.1, > server: api.fastnetmon.io, request: "POST > /fastmitigation.Fastnetmon/GetBanlist HTTP/2.0", upstream: > "https://127.0.0.1:10777/fastmitigation.Fastnetmon/GetBanlist", host: > "api.fastnetmon.io:443" [...] Just for the record: Разгадка в том, что поддержки HTTP/2 в proxy - нет и не планируется. Основное преимущество SPDY и HTTP/2 перед HTTP - это больший параллелизм при меньших затратах на установление соединений (одно соединение, в нём много запросов одновременно). При работе с бекендом - с тем же успехом можно поддерживать нужное количество HTTP-соединений, разницы по latency - не будет, по throughput - обычный HTTP будет лучше, выигрыш HTTP/2 - только по ресурсам на уровне ядра (меньше сокетов). И чтобы этот выигрыш получить - надо переписать работу с upstream'ами чуть менее, чем полностью, добавив поддержку мультиплексирования нескольких запросов в одном соединении. Смысла тратить на это силы и время - очень мало. -- Maxim Dounin http://nginx.org/ From pavel.odintsov на gmail.com Mon Oct 19 12:56:17 2015 From: pavel.odintsov на gmail.com (Pavel Odintsov) Date: Mon, 19 Oct 2015 15:56:17 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <20151019125059.GK48365@mdounin.ru> References: <20151019125059.GK48365@mdounin.ru> Message-ID: Приветствую! Спасибо за ответ! Но проблема несколько шире. Уже много фреймфорков написанных чисто на http 2.0 (gRPC - и это только начало), которые не содержат большого количества ненужного кода для поддержки http 1.1 просто потому что он не нужен и смысла в нем минимум. Отсутствие поддержки http2 со стороны бэкэнда в среде, где с клиентам уже можно общаться по http2 будет тормомзом прогресса, потому что мы не можем использовать везде http2 и исключительно из-за прихоти реверс-прокси должны тыщить http2. Я за унификацию :) Скорее вижу подход, где между бэкэндом и реверс прокси бегает http2, а также во всей внутренней инфраструктуре и силами реверс прокси это дело понижается до особо не продвинутых внешних клиентов. Но схему наоборот - http2 до публичного клиента и древний http 1.1 в бэнбоне.... не вяжется, не нравится мне это. 2015-10-19 15:50 GMT+03:00 Maxim Dounin : > Hello! > > On Sun, Oct 18, 2015 at 09:58:20PM +0300, Pavel Odintsov wrote: > >> Всем привет! >> >> Имеется сервер gRPC на С++, который работает только поверх >> шифрованного HTTP2. Имеется желание его проксировать силами Nginx для >> повышения надежности и реверс-проксирования. >> >> Суть в том, что Nginx должен общаться с gRPC бэкэндом только по >> HTTP2/TLS, иначе оно не работает. >> >> Но Nginx не может подключиться к http2 бэкэнду вот с такой ошибкой: >> 2015/10/18 20:54:07 [error] 2954#2954: *3 peer closed connection in >> SSL handshake while SSL handshaking to upstream, client: 127.0.0.1, >> server: api.fastnetmon.io, request: "POST >> /fastmitigation.Fastnetmon/GetBanlist HTTP/2.0", upstream: >> "https://127.0.0.1:10777/fastmitigation.Fastnetmon/GetBanlist", host: >> "api.fastnetmon.io:443" > > [...] > > Just for the record: > > Разгадка в том, что поддержки HTTP/2 в proxy - нет и не > планируется. > > Основное преимущество SPDY и HTTP/2 перед HTTP - это больший > параллелизм при меньших затратах на установление соединений (одно > соединение, в нём много запросов одновременно). При работе с > бекендом - с тем же успехом можно поддерживать нужное количество > HTTP-соединений, разницы по latency - не будет, по throughput - > обычный HTTP будет лучше, выигрыш HTTP/2 - только по ресурсам на > уровне ядра (меньше сокетов). И чтобы этот выигрыш получить - > надо переписать работу с upstream'ами чуть менее, чем полностью, > добавив поддержку мультиплексирования нескольких запросов в одном > соединении. Смысла тратить на это силы и время - очень мало. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Sincerely yours, Pavel Odintsov From kpoxa на kpoxa.net Mon Oct 19 13:05:46 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Mon, 19 Oct 2015 16:05:46 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: References: <20151019125059.GK48365@mdounin.ru> Message-ID: Добрый день. Решение о не поддержке http2 мне кажется логичным, ведь по всем исследованиям spdy и http2 выигрыш тем больше, чем выше rtt, а в локалке он, как правило, очень низкий, кроме того я не совсем представляю, как в http2 проксировать соединения разных внешних клиентов, например у каждого будут свои авторизационные данные. 19 октября 2015 г., 15:56 пользователь Pavel Odintsov < pavel.odintsov на gmail.com> написал: > Приветствую! > > Спасибо за ответ! > > Но проблема несколько шире. Уже много фреймфорков написанных чисто на > http 2.0 (gRPC - и это только начало), которые не содержат большого > количества ненужного кода для поддержки http 1.1 просто потому что он > не нужен и смысла в нем минимум. > > Отсутствие поддержки http2 со стороны бэкэнда в среде, где с клиентам > уже можно общаться по http2 будет тормомзом прогресса, потому что мы > не можем использовать везде http2 и исключительно из-за прихоти > реверс-прокси должны тыщить http2. > > Я за унификацию :) Скорее вижу подход, где между бэкэндом и реверс > прокси бегает http2, а также во всей внутренней инфраструктуре и > силами реверс прокси это дело понижается до особо не продвинутых > внешних клиентов. > > Но схему наоборот - http2 до публичного клиента и древний http 1.1 в > бэнбоне.... не вяжется, не нравится мне это. > > > > 2015-10-19 15:50 GMT+03:00 Maxim Dounin : > > Hello! > > > > On Sun, Oct 18, 2015 at 09:58:20PM +0300, Pavel Odintsov wrote: > > > >> Всем привет! > >> > >> Имеется сервер gRPC на С++, который работает только поверх > >> шифрованного HTTP2. Имеется желание его проксировать силами Nginx для > >> повышения надежности и реверс-проксирования. > >> > >> Суть в том, что Nginx должен общаться с gRPC бэкэндом только по > >> HTTP2/TLS, иначе оно не работает. > >> > >> Но Nginx не может подключиться к http2 бэкэнду вот с такой ошибкой: > >> 2015/10/18 20:54:07 [error] 2954#2954: *3 peer closed connection in > >> SSL handshake while SSL handshaking to upstream, client: 127.0.0.1, > >> server: api.fastnetmon.io, request: "POST > >> /fastmitigation.Fastnetmon/GetBanlist HTTP/2.0", upstream: > >> "https://127.0.0.1:10777/fastmitigation.Fastnetmon/GetBanlist", host: > >> "api.fastnetmon.io:443" > > > > [...] > > > > Just for the record: > > > > Разгадка в том, что поддержки HTTP/2 в proxy - нет и не > > планируется. > > > > Основное преимущество SPDY и HTTP/2 перед HTTP - это больший > > параллелизм при меньших затратах на установление соединений (одно > > соединение, в нём много запросов одновременно). При работе с > > бекендом - с тем же успехом можно поддерживать нужное количество > > HTTP-соединений, разницы по latency - не будет, по throughput - > > обычный HTTP будет лучше, выигрыш HTTP/2 - только по ресурсам на > > уровне ядра (меньше сокетов). И чтобы этот выигрыш получить - > > надо переписать работу с upstream'ами чуть менее, чем полностью, > > добавив поддержку мультиплексирования нескольких запросов в одном > > соединении. Смысла тратить на это силы и время - очень мало. > > > > -- > > Maxim Dounin > > http://nginx.org/ > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Sincerely yours, Pavel Odintsov > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From leave на nixkid.com Mon Oct 19 13:08:02 2015 From: leave на nixkid.com (Pavel Mihaduk) Date: Mon, 19 Oct 2015 16:08:02 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: References: <20151019125059.GK48365@mdounin.ru> Message-ID: <2A634520-9BA9-47E6-96BB-B1C4CA05BB2A@nixkid.com> Я бы не стал доверять проектам, которые пишут бэкенд, поддерживающий http2-only. От этой идеи несет хипстерством за километр. > On 19 окт. 2015 г., at 15:56, Pavel Odintsov wrote: > > Приветствую! > > Спасибо за ответ! > > Но проблема несколько шире. Уже много фреймфорков написанных чисто на > http 2.0 (gRPC - и это только начало), которые не содержат большого > количества ненужного кода для поддержки http 1.1 просто потому что он > не нужен и смысла в нем минимум. > > Отсутствие поддержки http2 со стороны бэкэнда в среде, где с клиентам > уже можно общаться по http2 будет тормомзом прогресса, потому что мы > не можем использовать везде http2 и исключительно из-за прихоти > реверс-прокси должны тыщить http2. > > Я за унификацию :) Скорее вижу подход, где между бэкэндом и реверс > прокси бегает http2, а также во всей внутренней инфраструктуре и > силами реверс прокси это дело понижается до особо не продвинутых > внешних клиентов. > > Но схему наоборот - http2 до публичного клиента и древний http 1.1 в > бэнбоне.... не вяжется, не нравится мне это. > > > > 2015-10-19 15:50 GMT+03:00 Maxim Dounin : >> Hello! >> >> On Sun, Oct 18, 2015 at 09:58:20PM +0300, Pavel Odintsov wrote: >> >>> Всем привет! >>> >>> Имеется сервер gRPC на С++, который работает только поверх >>> шифрованного HTTP2. Имеется желание его проксировать силами Nginx для >>> повышения надежности и реверс-проксирования. >>> >>> Суть в том, что Nginx должен общаться с gRPC бэкэндом только по >>> HTTP2/TLS, иначе оно не работает. >>> >>> Но Nginx не может подключиться к http2 бэкэнду вот с такой ошибкой: >>> 2015/10/18 20:54:07 [error] 2954#2954: *3 peer closed connection in >>> SSL handshake while SSL handshaking to upstream, client: 127.0.0.1, >>> server: api.fastnetmon.io, request: "POST >>> /fastmitigation.Fastnetmon/GetBanlist HTTP/2.0", upstream: >>> "https://127.0.0.1:10777/fastmitigation.Fastnetmon/GetBanlist", host: >>> "api.fastnetmon.io:443" >> >> [...] >> >> Just for the record: >> >> Разгадка в том, что поддержки HTTP/2 в proxy - нет и не >> планируется. >> >> Основное преимущество SPDY и HTTP/2 перед HTTP - это больший >> параллелизм при меньших затратах на установление соединений (одно >> соединение, в нём много запросов одновременно). При работе с >> бекендом - с тем же успехом можно поддерживать нужное количество >> HTTP-соединений, разницы по latency - не будет, по throughput - >> обычный HTTP будет лучше, выигрыш HTTP/2 - только по ресурсам на >> уровне ядра (меньше сокетов). И чтобы этот выигрыш получить - >> надо переписать работу с upstream'ами чуть менее, чем полностью, >> добавив поддержку мультиплексирования нескольких запросов в одном >> соединении. Смысла тратить на это силы и время - очень мало. >> >> -- >> Maxim Dounin >> http://nginx.org/ >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Sincerely yours, Pavel Odintsov > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From pavel.odintsov на gmail.com Mon Oct 19 13:13:31 2015 From: pavel.odintsov на gmail.com (Pavel Odintsov) Date: Mon, 19 Oct 2015 16:13:31 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <2A634520-9BA9-47E6-96BB-B1C4CA05BB2A@nixkid.com> References: <20151019125059.GK48365@mdounin.ru> <2A634520-9BA9-47E6-96BB-B1C4CA05BB2A@nixkid.com> Message-ID: Есть еще один очевидный кейс, если этот кейс не нравится. Когда бэкэнд и фроентед разнесены километров на пары тысяч. Такой кейс есть у DDoS защитников и крупных контентщиков с большими anycast сетями. В этом случае обмен информацией между реверс прокси и бэкэдом идет по публичным сетям, где латенси очень приличное. Хипстерство или нет - каждому решать самому, но если пишешь реально быстрое приложение на С/С++ (вроде бы они еще не стали хипстерскими?) работать с бинарным протоколом решительно приятнее, с текстовым http/1.1. Но к счастью решение есть и лично мне оно на первы взгляд нравится: https://nghttp2.org - подключает все семейство http1 / spdy / http2 в любом направлении :) 2015-10-19 16:08 GMT+03:00 Pavel Mihaduk : > Я бы не стал доверять проектам, которые пишут бэкенд, поддерживающий http2-only. От этой идеи несет хипстерством за километр. > >> On 19 окт. 2015 г., at 15:56, Pavel Odintsov wrote: >> >> Приветствую! >> >> Спасибо за ответ! >> >> Но проблема несколько шире. Уже много фреймфорков написанных чисто на >> http 2.0 (gRPC - и это только начало), которые не содержат большого >> количества ненужного кода для поддержки http 1.1 просто потому что он >> не нужен и смысла в нем минимум. >> >> Отсутствие поддержки http2 со стороны бэкэнда в среде, где с клиентам >> уже можно общаться по http2 будет тормомзом прогресса, потому что мы >> не можем использовать везде http2 и исключительно из-за прихоти >> реверс-прокси должны тыщить http2. >> >> Я за унификацию :) Скорее вижу подход, где между бэкэндом и реверс >> прокси бегает http2, а также во всей внутренней инфраструктуре и >> силами реверс прокси это дело понижается до особо не продвинутых >> внешних клиентов. >> >> Но схему наоборот - http2 до публичного клиента и древний http 1.1 в >> бэнбоне.... не вяжется, не нравится мне это. >> >> >> >> 2015-10-19 15:50 GMT+03:00 Maxim Dounin : >>> Hello! >>> >>> On Sun, Oct 18, 2015 at 09:58:20PM +0300, Pavel Odintsov wrote: >>> >>>> Всем привет! >>>> >>>> Имеется сервер gRPC на С++, который работает только поверх >>>> шифрованного HTTP2. Имеется желание его проксировать силами Nginx для >>>> повышения надежности и реверс-проксирования. >>>> >>>> Суть в том, что Nginx должен общаться с gRPC бэкэндом только по >>>> HTTP2/TLS, иначе оно не работает. >>>> >>>> Но Nginx не может подключиться к http2 бэкэнду вот с такой ошибкой: >>>> 2015/10/18 20:54:07 [error] 2954#2954: *3 peer closed connection in >>>> SSL handshake while SSL handshaking to upstream, client: 127.0.0.1, >>>> server: api.fastnetmon.io, request: "POST >>>> /fastmitigation.Fastnetmon/GetBanlist HTTP/2.0", upstream: >>>> "https://127.0.0.1:10777/fastmitigation.Fastnetmon/GetBanlist", host: >>>> "api.fastnetmon.io:443" >>> >>> [...] >>> >>> Just for the record: >>> >>> Разгадка в том, что поддержки HTTP/2 в proxy - нет и не >>> планируется. >>> >>> Основное преимущество SPDY и HTTP/2 перед HTTP - это больший >>> параллелизм при меньших затратах на установление соединений (одно >>> соединение, в нём много запросов одновременно). При работе с >>> бекендом - с тем же успехом можно поддерживать нужное количество >>> HTTP-соединений, разницы по latency - не будет, по throughput - >>> обычный HTTP будет лучше, выигрыш HTTP/2 - только по ресурсам на >>> уровне ядра (меньше сокетов). И чтобы этот выигрыш получить - >>> надо переписать работу с upstream'ами чуть менее, чем полностью, >>> добавив поддержку мультиплексирования нескольких запросов в одном >>> соединении. Смысла тратить на это силы и время - очень мало. >>> >>> -- >>> Maxim Dounin >>> http://nginx.org/ >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> >> >> -- >> Sincerely yours, Pavel Odintsov >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Sincerely yours, Pavel Odintsov From vbart на nginx.com Mon Oct 19 13:40:45 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Mon, 19 Oct 2015 16:40:45 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: References: <3347944.ozbL7GdZkg@vbart-workstation> Message-ID: <10110325.zdAZN5jWtj@vbart-workstation> On Monday 19 October 2015 09:15:27 Иван Мишин wrote: > Во-первых, не хотелось бы отключать запись во временный файл , хочется > просто ограничить размер отведенный под временный файлы. > Валентин, proxy_max_temp_file_size - "Эта директива задаёт максимальный > размер временного файла." > То есть этой директивой я могу ограничить только размер одного файла, но у > меня довольно нагруженная система и этих самых временных файлов может быть > очень много и они все равно забьют корень системы под максимум. > > Есть ли какие-то способы ограничить общий размер отведенный под временные > файлы? А так же не понятно что станет лучше/хуже если отключить запись > во временные файлы путем "proxy_max_temp_file_size 0;" > [..] Общий их объем не может превысить максимального размера временного файла помноженного на максимальное количество параллельных запросов, которое ваши бэкенды могут обслуживать. Каких-либо явных ограничений на этот счет не предусмотрено. Если отключите запись во временные файлы и ответ от бекенда превышает объем буферов, используемых для его чтения, то ваш бекенд не отдаст ответ полностью и будет занят до тех пор, пока клиент не вычитает оставшийся объем данных. -- Валентин Бартенев From nginx-forum на nginx.us Mon Oct 19 13:47:31 2015 From: nginx-forum на nginx.us (S.A.N) Date: Mon, 19 Oct 2015 09:47:31 -0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: References: Message-ID: <2eaa66c66f14cbc456e233f14734b156.NginxMailingListRussian@forum.nginx.org> > Но проблема несколько шире. Уже много фреймфорков написанных чисто на > http 2.0 (gRPC - и это только начало), которые не содержат большого > количества ненужного кода для поддержки http 1.1 просто потому что он > не нужен и смысла в нем минимум. Я думаю, это вопрос денег, если проспонсируете работы Nginx по разработке реверс мультиплексирования, оно появится и многие вам скажут спасибо! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262304,262319#msg-262319 From mdounin на mdounin.ru Mon Oct 19 13:52:20 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 19 Oct 2015 16:52:20 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: References: <20151019125059.GK48365@mdounin.ru> Message-ID: <20151019135220.GL48365@mdounin.ru> Hello! On Mon, Oct 19, 2015 at 03:56:17PM +0300, Pavel Odintsov wrote: > Приветствую! > > Спасибо за ответ! > > Но проблема несколько шире. Уже много фреймфорков написанных чисто на > http 2.0 (gRPC - и это только начало), которые не содержат большого > количества ненужного кода для поддержки http 1.1 просто потому что он > не нужен и смысла в нем минимум. Если фреймворкам не нужно общение с браузерами и обычными http-клиентами (а, судя по HTTP/2 only, оно не нужно) - то, вероятно, правильным решением будет не использовать reverse proxy, а просто балансировать TCP-потоки без какой-либо модификации. Как это делается для любых других специальных протоколов. Лучше всего это делать с помощью сетевых средств, для сложных случаев - в nginx'е есть модуль stream. > Отсутствие поддержки http2 со стороны бэкэнда в среде, где с клиентам > уже можно общаться по http2 будет тормомзом прогресса, потому что мы > не можем использовать везде http2 и исключительно из-за прихоти > реверс-прокси должны тыщить http2. > > Я за унификацию :) Скорее вижу подход, где между бэкэндом и реверс > прокси бегает http2, а также во всей внутренней инфраструктуре и > силами реверс прокси это дело понижается до особо не продвинутых > внешних клиентов. > > Но схему наоборот - http2 до публичного клиента и древний http 1.1 в > бэнбоне.... не вяжется, не нравится мне это. Не стоит думать, что http2 - лучше, чем http, и его следует бросаться всюду внедрять. Он бинарный, непрост в отладке, пытается подменять собой транпортный уровень, зачем-то пытается выставлять требования по используемым шифрам. В общем и целом - требует к себе гораздо больше внимания, чем нужно. И при всём этом, как уже было сказано, не приносит сколько-нибудь заметных плюсов при общении внутри собственной инфраструктуры, а местами и минусов добавляет. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Mon Oct 19 14:00:11 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 19 Oct 2015 17:00:11 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: References: <20151019125059.GK48365@mdounin.ru> <2A634520-9BA9-47E6-96BB-B1C4CA05BB2A@nixkid.com> Message-ID: <20151019140011.GM48365@mdounin.ru> Hello! On Mon, Oct 19, 2015 at 04:13:31PM +0300, Pavel Odintsov wrote: > Есть еще один очевидный кейс, если этот кейс не нравится. Когда бэкэнд > и фроентед разнесены километров на пары тысяч. Такой кейс есть у DDoS > защитников и крупных контентщиков с большими anycast сетями. > > В этом случае обмен информацией между реверс прокси и бэкэдом идет по > публичным сетям, где латенси очень приличное. Для этого кейса проблема решается кешированием соединений. И, как уже было сказано, эффективность решения не зависит от используемого протокола, вопрос лишь в количестве соединений. > Хипстерство или нет - каждому решать самому, но если пишешь реально > быстрое приложение на С/С++ (вроде бы они еще не стали хипстерскими?) > работать с бинарным протоколом решительно приятнее, с текстовым > http/1.1. Как человек, занимающийся разработкой nginx'а, могу заметить, что это утверждение, как минимум, не всегда справедливо. С бинарщиной работать решительно неприятнее, одно неосторожное движение - и дырка. [...] -- Maxim Dounin http://nginx.org/ From bgx на protva.ru Mon Oct 19 14:25:50 2015 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Mon, 19 Oct 2015 17:25:50 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: References: <20151019125059.GK48365@mdounin.ru> Message-ID: <20151019142550.GF31008@sie.protva.ru> On Mon, Oct 19, 2015 at 03:56:17PM +0300, Pavel Odintsov wrote: > Отсутствие поддержки http2 со стороны бэкэнда в среде, где с клиентам > уже можно общаться по http2 будет тормомзом прогресса, потому что мы > не можем использовать везде http2 и исключительно из-за прихоти > реверс-прокси должны тыщить http2. Замена простого, понятного, лёгкого в кодировании и отладке протокола на сложного бинарного верблюда, пытающегося заниматься несвойственными для транспортного уровня задачами (управление потоком), это никакой не прогресс, а просто вредительство и даже технологическая диверсия. :) Насколько я понимаю, http2 это попытка гугловцев достичь некоторых политических целей, прикрываясь решением частных технических проблем. Цель -- повсеместно внедрить шифрование (не будем обсуждать зачем), а решаемой задачей является снижение удельного оверхеда на tls-ный хендшейк за счёт мультиплексирования коннекций. Это имеет смысл лишь для клиентов с большим rtt до сервера. В локалке, между фронтэндом и бэкендом при малых rtt, даёт лишь бессмысленные накладные расходы, в том числе на шифрование, если оно есть. А без шифрования вообще не имеет смысла, потому что проблемы, решаемые http2 для енд-юзера, в связке фронт-бэк проще и эффективнее решаются другими методами. -- Eugene Berdnikov From maxim на nginx.com Mon Oct 19 14:29:26 2015 From: maxim на nginx.com (Maxim Konovalov) Date: Mon, 19 Oct 2015 17:29:26 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <20151019142550.GF31008@sie.protva.ru> References: <20151019125059.GK48365@mdounin.ru> <20151019142550.GF31008@sie.protva.ru> Message-ID: <5624FE46.3010400@nginx.com> On 10/19/15 5:25 PM, Evgeniy Berdnikov wrote: > Насколько я понимаю, http2 это попытка гугловцев достичь > некоторых политических целей, прикрываясь решением частных > технических проблем. Цель -- повсеместно внедрить шифрование (не > будем обсуждать зачем), а решаемой задачей является снижение > удельного оверхеда на tls-ный хендшейк за счёт > мультиплексирования коннекций. Это имеет смысл лишь для клиентов > с большим rtt до сервера. Если говорить в контексте http2 vs http1 без tls, то это для такого юзкейса оно даже вредно просто за счет сокращения количества одновременно используемых tcp соединений. -- Maxim Konovalov From annulen на yandex.ru Mon Oct 19 14:50:07 2015 From: annulen на yandex.ru (Konstantin Tokarev) Date: Mon, 19 Oct 2015 17:50:07 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <5624FE46.3010400@nginx.com> References: <20151019125059.GK48365@mdounin.ru> <20151019142550.GF31008@sie.protva.ru> <5624FE46.3010400@nginx.com> Message-ID: <1162421445266207@web23g.yandex.ru> 19.10.2015, 17:29, "Maxim Konovalov" : > On 10/19/15 5:25 PM, Evgeniy Berdnikov wrote: >>  Насколько я понимаю, http2 это попытка гугловцев достичь >>  некоторых политических целей, прикрываясь решением частных >>  технических проблем. Цель -- повсеместно внедрить шифрование (не >>  будем обсуждать зачем), а решаемой задачей является снижение >>  удельного оверхеда на tls-ный хендшейк за счёт >>  мультиплексирования коннекций. Это имеет смысл лишь для клиентов >>  с большим rtt до сервера. > > Если говорить в контексте http2 vs http1 без tls, то это для такого > юзкейса оно даже вредно просто за счет сокращения количества > одновременно используемых tcp соединений. А как же бинарный формат, который быстрее парсить, и сжатие заголовков? Получается, что старые добрые FastCGI и uWSGI в этом плане лучше? -- Regards, Konstantin From mdounin на mdounin.ru Mon Oct 19 15:11:59 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 19 Oct 2015 18:11:59 +0300 Subject: =?UTF-8?Q?Re=3A_PUT_=D0=B8_POST_module_handler?= In-Reply-To: <7d5d90780462bab4d026796798427ac5.NginxMailingListRussian@forum.nginx.org> References: <20151014125822.GA30105@mdounin.ru> <7d5d90780462bab4d026796798427ac5.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151019151159.GO48365@mdounin.ru> Hello! On Mon, Oct 19, 2015 at 03:19:48AM -0400, rba wrote: > Спасибо за ваш ответ, ряд вопросов прояснились. > Но вот осуществить возврать в хэндлер при пропуске, в новой итерации > воркера, > при выходе из post_handler без финализации [и перемещения позиции буфера] - > не получается. > (разумеется это не касается запросов влезающих в один буфер или > единоразово(блокирующе) читающих цепочку) В том коде, который вы показали - нет никаких попыток обеспечить дальнейшую обработку запроса в случае, если тело запроса было обработано не целиком. После того, как был вызван post-обработчик тела - это целиком ваша ответственность. Просто вернуться из функции, не завершив обработку запроса с помощью ngx_http_finalize_request() - недостаточно. Это даст nginx'у понять, что обработка запроса не завершена и освобождать его не надо, но что именно звать дальше и по каким событиям - знаете только вы, и именно вы должны это запрограммировать. Повторю рекомендацию ознакомиться с кодом модуля upstream. Там не очень просто, но задача вообще не то, чтобы простая. [...] -- Maxim Dounin http://nginx.org/ From vbart на nginx.com Mon Oct 19 15:34:53 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Mon, 19 Oct 2015 18:34:53 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <1162421445266207@web23g.yandex.ru> References: <5624FE46.3010400@nginx.com> <1162421445266207@web23g.yandex.ru> Message-ID: <6985573.K1SKYy4oOk@vbart-workstation> On Monday 19 October 2015 17:50:07 Konstantin Tokarev wrote: > > 19.10.2015, 17:29, "Maxim Konovalov" : > > On 10/19/15 5:25 PM, Evgeniy Berdnikov wrote: > >> Насколько я понимаю, http2 это попытка гугловцев достичь > >> некоторых политических целей, прикрываясь решением частных > >> технических проблем. Цель -- повсеместно внедрить шифрование (не > >> будем обсуждать зачем), а решаемой задачей является снижение > >> удельного оверхеда на tls-ный хендшейк за счёт > >> мультиплексирования коннекций. Это имеет смысл лишь для клиентов > >> с большим rtt до сервера. > > > > Если говорить в контексте http2 vs http1 без tls, то это для такого > > юзкейса оно даже вредно просто за счет сокращения количества > > одновременно используемых tcp соединений. > > А как же бинарный формат, который быстрее парсить, и сжатие заголовков? > Получается, что старые добрые FastCGI и uWSGI в этом плане лучше? > Сжатие в http/2 сделано весьма неудачно и вызывает целый ряд нареканий. Если не использовать куки на несколько килобайт, то экономия весьма призрачная, а вот проблем с ним куча. Бинарный формат HTTP/2 - в какой-то степени миф. Бинарщина используется исключительно на транспортном уровне (т.е. для того, чем в http/1.x занимается TCP). Иными словами, они сначала добавили еще один транспортный уровень, а затем сделали его бинарным, plaintext-овая семантика заголовков при этом осталась от http/1.x. Это не улучшение, а добавление новой сущности и попытка сделать так, чтобы эта новая сущность не вносила слишком много дополнительных издержек (сколько-то она все равно вносит). Отдельно замечу, что бинарщина в http/2 не выровнена, что ограничивает её эффективность. Дополнительные накладные расходы и замедление в http/2 вносит сложность правильной реализации flow control. Как результат: http://mailman.nginx.org/pipermail/nginx-ru/2015-October/056870.html http://mailman.nginx.org/pipermail/nginx/2015-October/048939.html Я бы не рекомендовал HTTP/2 к использованию за пределами браузеров. -- Валентин Бартенев From maxim на nginx.com Mon Oct 19 15:40:13 2015 From: maxim на nginx.com (Maxim Konovalov) Date: Mon, 19 Oct 2015 18:40:13 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <6985573.K1SKYy4oOk@vbart-workstation> References: <5624FE46.3010400@nginx.com> <1162421445266207@web23g.yandex.ru> <6985573.K1SKYy4oOk@vbart-workstation> Message-ID: <56250EDD.4000001@nginx.com> [...] > -- > Валентин Бартенев Рекламная пауза. Валентин будет выступать на Highload 2015: http://www.highload.ru/2015/abstracts/1972.html Вряд ли он сможет рассказать в рамках отведенного времени про http/2 подробно, но можно его ловить в кулуарах. -- Maxim Konovalov From denis на webmaster.spb.ru Mon Oct 19 16:18:54 2015 From: denis на webmaster.spb.ru (denis) Date: Mon, 19 Oct 2015 19:18:54 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <20151019142550.GF31008@sie.protva.ru> References: <20151019125059.GK48365@mdounin.ru> <20151019142550.GF31008@sie.protva.ru> Message-ID: <562517EE.60704@webmaster.spb.ru> 19.10.2015 17:25, Evgeniy Berdnikov пишет: > Это имеет смысл лишь > для клиентов с большим rtt до сервера. В локалке, между фронтэндом > и бэкендом при малых rtt, даёт лишь бессмысленные накладные расходы, > в том числе на шифрование, если оно есть. У топикстартера речь шла о случаях, когда rtt модет быть большим, в частности когда сам бэкенд находится далеко и бегает через всякие анти-ддосы From vbart на nginx.com Mon Oct 19 16:32:56 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Mon, 19 Oct 2015 19:32:56 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <562517EE.60704@webmaster.spb.ru> References: <20151019142550.GF31008@sie.protva.ru> <562517EE.60704@webmaster.spb.ru> Message-ID: <2689977.Csv9xVXSvN@vbart-workstation> On Monday 19 October 2015 19:18:54 denis wrote: > 19.10.2015 17:25, Evgeniy Berdnikov пишет: > > Это имеет смысл лишь > > для клиентов с большим rtt до сервера. В локалке, между фронтэндом > > и бэкендом при малых rtt, даёт лишь бессмысленные накладные расходы, > > в том числе на шифрование, если оно есть. > У топикстартера речь шла о случаях, когда rtt модет быть большим, в > частности когда сам бэкенд находится далеко и бегает через всякие анти-ддосы > С большим rtt кэш keepalive соединений работать будет лучше. http://nginx.org/r/keepalive/ru -- Валентин Бартенев From bgx на protva.ru Mon Oct 19 16:45:49 2015 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Mon, 19 Oct 2015 19:45:49 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <562517EE.60704@webmaster.spb.ru> References: <20151019125059.GK48365@mdounin.ru> <20151019142550.GF31008@sie.protva.ru> <562517EE.60704@webmaster.spb.ru> Message-ID: <20151019164549.GA14009@sie.protva.ru> On Mon, Oct 19, 2015 at 07:18:54PM +0300, denis wrote: > 19.10.2015 17:25, Evgeniy Berdnikov пишет: > >Это имеет смысл лишь > > для клиентов с большим rtt до сервера. В локалке, между фронтэндом > > и бэкендом при малых rtt, даёт лишь бессмысленные накладные расходы, > > в том числе на шифрование, если оно есть. > У топикстартера речь шла о случаях, когда rtt модет быть большим, в > частности когда сам бэкенд находится далеко и бегает через всякие анти-ддосы Мне лично такая ситуация кажется надуманной, и я сомневаюсь, что кого-то она может вдохновить на написание отдельного модуля для nginx. Тем более что для ситуации "бэкенд далеко, rtt большое и нужно шифрование" есть решения, более эффективные чем http2: например, заворачивание пачки долгоживущих коннекций без шифрования в один шифрованный туннель над udp или gre. -- Eugene Berdnikov From mdounin на mdounin.ru Mon Oct 19 17:09:57 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 19 Oct 2015 20:09:57 +0300 Subject: =?UTF-8?B?UmU6IGZhc3RjZ2kgY2FjaGUg0Lgg0LfQsNC/0YDQvtGB0Ysg0L7RgiBPcGVyYQ==?= In-Reply-To: <56d7998b085b5ce8af3316a3c2fc6e98.NginxMailingListRussian@forum.nginx.org> References: <6a67d4149130fd8d518be122d980bc24.NginxMailingListRussian@forum.nginx.org> <56d7998b085b5ce8af3316a3c2fc6e98.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151019170957.GR48365@mdounin.ru> Hello! On Mon, Oct 19, 2015 at 07:27:02AM -0400, G на rry_ wrote: > Отвечу сам себе. Дело оказалось в строчке "fastcgi_cache_valid any 30d;" и в > заголовке указано If-None-Match, но Nginx ничего не кеширует. > > Если конфигурацию изменить на "fastcgi_cache_valid 200 301 202 404 30d;" то > начинает работать, но некоторые страницы в кеш попадают не с первого > запроса. В чем может быть причина? > > Также обратил внимание, что Nginx принципиально не кеширует запросы > HTTP/1.0. Может это так задумано?.. Скорее всего (судя по fastcgi_hide_header в конфиге), ваша проблема - из-за заголовка Set-Cookie в ответе. Подробнее смотрите в документации, где-то тут: http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_valid Впрочем, другие заголовки ответа тоже могут запрещать кеширование. По последней ссылке есть подробное описание того, что и как влияет на возможность кеширования ответа. -- Maxim Dounin http://nginx.org/ From kpoxa на kpoxa.net Mon Oct 19 20:09:23 2015 From: kpoxa на kpoxa.net (kpoxa) Date: Mon, 19 Oct 2015 23:09:23 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: <562517EE.60704@webmaster.spb.ru> References: <20151019125059.GK48365@mdounin.ru> <20151019142550.GF31008@sie.protva.ru> <562517EE.60704@webmaster.spb.ru> Message-ID: Кстати да, как это так, анти-ддос между фронтом и бэкэндом? 19 октября 2015 г., 19:18 пользователь denis написал: > 19.10.2015 17:25, Evgeniy Berdnikov пишет: > >> Это имеет смысл лишь >> для клиентов с большим rtt до сервера. В локалке, между фронтэндом >> и бэкендом при малых rtt, даёт лишь бессмысленные накладные расходы, >> в том числе на шифрование, если оно есть. >> > У топикстартера речь шла о случаях, когда rtt модет быть большим, в > частности когда сам бэкенд находится далеко и бегает через всякие анти-ддосы > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From public-mail на alekciy.ru Tue Oct 20 06:20:19 2015 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Tue, 20 Oct 2015 10:20:19 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80Ysg0YEg0LHRjdC60Y3QvdC00L7QvCDQvdCwIGh0?= =?UTF-8?B?dHAy?= In-Reply-To: References: <20151019125059.GK48365@mdounin.ru> Message-ID: >Но схему наоборот - http2 до публичного клиента и древний http 1.1 в бэнбоне.... Ну до какой-то-там-версии на проксируемые бэкэнды был вообще 0.9 (и на сколько я помню напрочь отсутсвующий keep-alive) и ничего, жили как-то. -------------- next part -------------- An HTML attachment was scrubbed... URL: From juri на dmitrijev.com Tue Oct 20 06:57:33 2015 From: juri на dmitrijev.com (Juri Dmitrijev) Date: Tue, 20 Oct 2015 08:57:33 +0200 Subject: =?UTF-8?B?UmU6IEhUVFAyINGB0L3QuNC20LDQtdGCINGB0LrQvtGA0L7RgdGC0Ywg0LfQsNCz?= =?UTF-8?B?0YDRg9C30LrQuCDRgdGC0LDRgtC40YfQtdGB0LrQuNGFINGE0LDQudC70L4=?= =?UTF-8?B?0LI=?= In-Reply-To: References: Message-ID: <5625E5DD.80900@dmitrijev.com> В общем, если кому-то пригодится, пообщался с Кацухо Оку (Kazuho Oku), создателем h2o веб-сервера, он подтвердил, что если расматривать каждый запрос в отдельности, то http2 медленнее, т.к. накладываются особености протокола. В оригинале: "Requests will be queued by the server, and the response will be sent depending on how the client and server prioritize the responses. So if you look at each request, it is natural to see what you have found.". Правда это не объясняет, почему обращение к одному единственному ресурсу проходи медленнее. Но, думаю, тут играет роль процесс добавления в очередь и т.п. Как итог, если страница содержит более 6 элементов - имеет смысл использовать http2 From simplebox66 на gmail.com Tue Oct 20 07:29:44 2015 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Tue, 20 Oct 2015 10:29:44 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: <10110325.zdAZN5jWtj@vbart-workstation> References: <3347944.ozbL7GdZkg@vbart-workstation> <10110325.zdAZN5jWtj@vbart-workstation> Message-ID: > > Общий их объем не может превысить максимального размера временного файла > помноженного на максимальное количество параллельных запросов, которое > ваши бэкенды могут обслуживать. Соответственно если у меня за nginx балансировщиком стоит большое кол-во бэкендов, то количество параллельных запросов может быть очень велико, и в моем случае общий объем временных файлов может достигать больших размеров. Если отключите запись во временные файлы и ответ от бекенда превышает > объем буферов, используемых для его чтения, то ваш бекенд не отдаст > ответ полностью и будет занят до тех пор, пока клиент не вычитает > оставшийся объем данных. то есть нагрузка на бекенды возрастет? А если используется следующая схема, стоит пара балансировщиков, а за ними сотня бэкендов в виде nginx+apache. Могу ли я отключить буферизацию на балансирах, но оставить ее на бэкенд nginx. И тогда каждый бекенд будет использовать свой буфер, а сейчас используется буфер балансировщиков для всей сотни бекендов. Бэкенд nginx будет используя свой буфер быстренько забирать данные у апача и далее отправлять на балансир. Тем самым у меня бекенд не будет так сильно нагружен как в случае если я буфер вобще отключу. 19 октября 2015 г., 16:40 пользователь Валентин Бартенев написал: > On Monday 19 October 2015 09:15:27 Иван Мишин wrote: > > Во-первых, не хотелось бы отключать запись во временный файл , хочется > > просто ограничить размер отведенный под временный файлы. > > Валентин, proxy_max_temp_file_size - "Эта директива задаёт максимальный > > размер временного файла." > > То есть этой директивой я могу ограничить только размер одного файла, > но у > > меня довольно нагруженная система и этих самых временных файлов может > быть > > очень много и они все равно забьют корень системы под максимум. > > > > Есть ли какие-то способы ограничить общий размер отведенный под временные > > файлы? А так же не понятно что станет лучше/хуже если отключить запись > > во временные файлы путем "proxy_max_temp_file_size 0;" > > > [..] > > Общий их объем не может превысить максимального размера временного файла > помноженного на максимальное количество параллельных запросов, которое > ваши бэкенды могут обслуживать. > > Каких-либо явных ограничений на этот счет не предусмотрено. > > Если отключите запись во временные файлы и ответ от бекенда превышает > объем буферов, используемых для его чтения, то ваш бекенд не отдаст > ответ полностью и будет занят до тех пор, пока клиент не вычитает > оставшийся объем данных. > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Tue Oct 20 10:00:52 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 20 Oct 2015 15:00:52 +0500 Subject: =?UTF-8?B?0LHQsNCzINGB0LDRhNCw0YDQuCDQvdCwIGh0dHAvMg==?= Message-ID: Добрый день! налетели на ситуацию 1) браузер сафари (без разницы - десктопный или мобильный) 2) включен http2 3) отправляется POST с пустым телом 4) запрос проксируется с nginx на http-апстрим в результате получается, что сафари, видя, что тело пустое - не добавляет Content-Length, а nginx, видя, что Content-Length отсутствует - возвращает 411 давайте с этим что-нибудь сделаем ? стенд для воспроизведения бага: https://http2.skbkontur.ru Илья Шипицин ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Tue Oct 20 10:13:56 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 20 Oct 2015 15:13:56 +0500 Subject: =?UTF-8?B?UmU6INCx0LDQsyDRgdCw0YTQsNGA0Lgg0L3QsCBodHRwLzI=?= In-Reply-To: References: Message-ID: забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11 20 октября 2015 г., 15:00 пользователь Илья Шипицин написал: > Добрый день! > > налетели на ситуацию > > 1) браузер сафари (без разницы - десктопный или мобильный) > 2) включен http2 > 3) отправляется POST с пустым телом > 4) запрос проксируется с nginx на http-апстрим > > в результате получается, что сафари, видя, что тело пустое - не добавляет > Content-Length, а nginx, видя, что Content-Length отсутствует - возвращает > 411 > > давайте с этим что-нибудь сделаем ? > > стенд для воспроизведения бага: https://http2.skbkontur.ru > > Илья Шипицин > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From leave на nixkid.com Tue Oct 20 10:35:30 2015 From: leave на nixkid.com (Pavel Mihaduk) Date: Tue, 20 Oct 2015 13:35:30 +0300 Subject: =?UTF-8?B?UmU6INCx0LDQsyDRgdCw0YTQsNGA0Lgg0L3QsCBodHRwLzI=?= In-Reply-To: References: Message-ID: Судя по спеке, заголовок действительно необязательный, так что это баг не сафари. >A request or response that includes a payload body can include a content-length header field. A request or response is >also malformed if the value of a content-length header field does not equal the sum of theDATA frame payload lengths >that form the body. > On 20 окт. 2015 г., at 13:00, Илья Шипицин wrote: > > Добрый день! > > налетели на ситуацию > > 1) браузер сафари (без разницы - десктопный или мобильный) > 2) включен http2 > 3) отправляется POST с пустым телом > 4) запрос проксируется с nginx на http-апстрим > > в результате получается, что сафари, видя, что тело пустое - не добавляет Content-Length, а nginx, видя, что Content-Length отсутствует - возвращает 411 > > давайте с этим что-нибудь сделаем ? > > стенд для воспроизведения бага: https://http2.skbkontur.ru > > Илья Шипицин > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ru на nginx.com Tue Oct 20 10:39:20 2015 From: ru на nginx.com (Ruslan Ermilov) Date: Tue, 20 Oct 2015 13:39:20 +0300 Subject: =?UTF-8?B?UmU6INCx0LDQsyDRgdCw0YTQsNGA0Lgg0L3QsCBodHRwLzI=?= In-Reply-To: References: Message-ID: <20151020103920.GE15630@lo0.su> On Tue, Oct 20, 2015 at 03:13:56PM +0500, Илья Шипицин wrote: > забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11 > > 20 октября 2015 г., 15:00 пользователь Илья Шипицин > написал: > > > Добрый день! > > > > налетели на ситуацию > > > > 1) браузер сафари (без разницы - десктопный или мобильный) > > 2) включен http2 > > 3) отправляется POST с пустым телом > > 4) запрос проксируется с nginx на http-апстрим > > > > в результате получается, что сафари, видя, что тело пустое - не добавляет > > Content-Length, а nginx, видя, что Content-Length отсутствует - возвращает > > 411 > > > > давайте с этим что-нибудь сделаем ? > > > > стенд для воспроизведения бага: https://http2.skbkontur.ru > > > > Илья Шипицин На основании чего сделан вывод о том, что это имеет какое-либо отношение к HTTP/2? С обычным HTTP POST-запросом на сайте наблюдается такое же поведение: $ curl -v --data '' -H 'content-length:' http://http2.skbkontur.ru/ * Connected to http2.skbkontur.ru (46.17.201.207) port 80 (#0) > POST / HTTP/1.1 > Host: http2.skbkontur.ru > User-Agent: curl/7.43.0 > Accept: */* > Content-Type: application/x-www-form-urlencoded > < HTTP/1.1 411 Length Required < Server: nginx < Date: Tue, 20 Oct 2015 10:35:48 GMT < Content-Type: text/html; charset=us-ascii < Content-Length: 344 nginx по собственной воле никогда не возвращает 411, так что это скорее всего проделки вашего бэкенда. From chipitsine на gmail.com Tue Oct 20 10:53:51 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 20 Oct 2015 15:53:51 +0500 Subject: =?UTF-8?B?UmU6INCx0LDQsyDRgdCw0YTQsNGA0Lgg0L3QsCBodHRwLzI=?= In-Reply-To: <20151020103920.GE15630@lo0.su> References: <20151020103920.GE15630@lo0.su> Message-ID: кажется, я ввел вас в заблуждение. сафари действительно забывает добавить Content-Length в случае http/2, а 411 отвечает бекенд (iis). вопрос снимается 20 октября 2015 г., 15:39 пользователь Ruslan Ermilov написал: > On Tue, Oct 20, 2015 at 03:13:56PM +0500, Илья Шипицин wrote: > > забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11 > > > > 20 октября 2015 г., 15:00 пользователь Илья Шипицин < > chipitsine на gmail.com> > > написал: > > > > > Добрый день! > > > > > > налетели на ситуацию > > > > > > 1) браузер сафари (без разницы - десктопный или мобильный) > > > 2) включен http2 > > > 3) отправляется POST с пустым телом > > > 4) запрос проксируется с nginx на http-апстрим > > > > > > в результате получается, что сафари, видя, что тело пустое - не > добавляет > > > Content-Length, а nginx, видя, что Content-Length отсутствует - > возвращает > > > 411 > > > > > > давайте с этим что-нибудь сделаем ? > > > > > > стенд для воспроизведения бага: https://http2.skbkontur.ru > > > > > > Илья Шипицин > > На основании чего сделан вывод о том, что это имеет какое-либо > отношение к HTTP/2? > > С обычным HTTP POST-запросом на сайте наблюдается такое же поведение: > > $ curl -v --data '' -H 'content-length:' http://http2.skbkontur.ru/ > * Connected to http2.skbkontur.ru (46.17.201.207) port 80 (#0) > > POST / HTTP/1.1 > > Host: http2.skbkontur.ru > > User-Agent: curl/7.43.0 > > Accept: */* > > Content-Type: application/x-www-form-urlencoded > > > < HTTP/1.1 411 Length Required > < Server: nginx > < Date: Tue, 20 Oct 2015 10:35:48 GMT > < Content-Type: text/html; charset=us-ascii > < Content-Length: 344 > > nginx по собственной воле никогда не возвращает 411, так что это > скорее всего проделки вашего бэкенда. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Tue Oct 20 11:52:00 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 20 Oct 2015 16:52:00 +0500 Subject: =?UTF-8?B?UmU6INCx0LDQsyDRgdCw0YTQsNGA0Lgg0L3QsCBodHRwLzI=?= In-Reply-To: References: <20151020103920.GE15630@lo0.su> Message-ID: выкрутились таким способом: map $http_content_length $http2_content_length { '' 0; default $http_content_length; } и при проксировании: proxy_set_header Content-Length $http2_content_length; 20 октября 2015 г., 15:53 пользователь Илья Шипицин написал: > кажется, я ввел вас в заблуждение. > сафари действительно забывает добавить Content-Length в случае http/2, а > 411 отвечает бекенд (iis). > вопрос снимается > > 20 октября 2015 г., 15:39 пользователь Ruslan Ermilov > написал: > > On Tue, Oct 20, 2015 at 03:13:56PM +0500, Илья Шипицин wrote: >> > забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11 >> > >> > 20 октября 2015 г., 15:00 пользователь Илья Шипицин < >> chipitsine на gmail.com> >> > написал: >> > >> > > Добрый день! >> > > >> > > налетели на ситуацию >> > > >> > > 1) браузер сафари (без разницы - десктопный или мобильный) >> > > 2) включен http2 >> > > 3) отправляется POST с пустым телом >> > > 4) запрос проксируется с nginx на http-апстрим >> > > >> > > в результате получается, что сафари, видя, что тело пустое - не >> добавляет >> > > Content-Length, а nginx, видя, что Content-Length отсутствует - >> возвращает >> > > 411 >> > > >> > > давайте с этим что-нибудь сделаем ? >> > > >> > > стенд для воспроизведения бага: https://http2.skbkontur.ru >> > > >> > > Илья Шипицин >> >> На основании чего сделан вывод о том, что это имеет какое-либо >> отношение к HTTP/2? >> >> С обычным HTTP POST-запросом на сайте наблюдается такое же поведение: >> >> $ curl -v --data '' -H 'content-length:' http://http2.skbkontur.ru/ >> * Connected to http2.skbkontur.ru (46.17.201.207) port 80 (#0) >> > POST / HTTP/1.1 >> > Host: http2.skbkontur.ru >> > User-Agent: curl/7.43.0 >> > Accept: */* >> > Content-Type: application/x-www-form-urlencoded >> > >> < HTTP/1.1 411 Length Required >> < Server: nginx >> < Date: Tue, 20 Oct 2015 10:35:48 GMT >> < Content-Type: text/html; charset=us-ascii >> < Content-Length: 344 >> >> nginx по собственной воле никогда не возвращает 411, так что это >> скорее всего проделки вашего бэкенда. >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vbart на nginx.com Tue Oct 20 13:25:27 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 20 Oct 2015 16:25:27 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC30LDQsdC40LLQsNC10YIg0LLRgdC1INC80LXRgdGC0L4g0LIg?= =?UTF-8?B?0LrQvtGA0L3QtdCy0L7QvCDRgNCw0LfQtNC10LvQtSBsaW51eA==?= In-Reply-To: References: <10110325.zdAZN5jWtj@vbart-workstation> Message-ID: <4085931.ROJO23qu9q@vbart-workstation> On Tuesday 20 October 2015 10:29:44 Иван Мишин wrote: > > > > Общий их объем не может превысить максимального размера временного файла > > помноженного на максимальное количество параллельных запросов, которое > > ваши бэкенды могут обслуживать. > > Соответственно если у меня за nginx балансировщиком стоит большое кол-во > бэкендов, то количество параллельных запросов может быть очень велико, и в > моем случае общий объем временных файлов может достигать больших размеров. > > Если отключите запись во временные файлы и ответ от бекенда превышает > > объем буферов, используемых для его чтения, то ваш бекенд не отдаст > > ответ полностью и будет занят до тех пор, пока клиент не вычитает > > оставшийся объем данных. > > то есть нагрузка на бекенды возрастет? > > > А если используется следующая схема, стоит пара балансировщиков, а за ними > сотня бэкендов в виде nginx+apache. Могу ли я отключить буферизацию на > балансирах, но оставить ее на бэкенд nginx. И тогда каждый бекенд будет > использовать свой буфер, а сейчас используется буфер балансировщиков для > всей сотни бекендов. Бэкенд nginx будет используя свой буфер быстренько > забирать данные у апача и далее отправлять на балансир. Тем самым у меня > бекенд не будет так сильно нагружен как в случае если я буфер вобще > отключу. > [..] Да, это неплохой вариант. Но только еще раз обращаю внимание, что буферизацию совсем отключать не нужно (директива proxy_buffering должна оставаться в значении on), а вам требуется лишь запретить буферизировать на диск: proxy_max_temp_file_size 0; -- Валентин Бартенев From vbart на nginx.com Tue Oct 20 13:36:35 2015 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 20 Oct 2015 16:36:35 +0300 Subject: =?UTF-8?B?UmU6IEhUVFAyINGB0L3QuNC20LDQtdGCINGB0LrQvtGA0L7RgdGC0Ywg0LfQsNCz?= =?UTF-8?B?0YDRg9C30LrQuCDRgdGC0LDRgtC40YfQtdGB0LrQuNGFINGE0LDQudC70L4=?= =?UTF-8?B?0LI=?= In-Reply-To: <5625E5DD.80900@dmitrijev.com> References: <5625E5DD.80900@dmitrijev.com> Message-ID: <2887955.U3vbD7fxq6@vbart-workstation> On Tuesday 20 October 2015 08:57:33 Juri Dmitrijev wrote: > В общем, если кому-то пригодится, пообщался с Кацухо Оку (Kazuho Oku), > создателем h2o веб-сервера, он подтвердил, что если расматривать каждый > запрос в отдельности, то http2 медленнее, т.к. накладываются особености > протокола. В оригинале: "Requests will be queued by the server, and the > response will be sent depending on how the client and server prioritize > the responses. So if you look at each request, it is natural to see what > you have found.". Правда это не объясняет, почему обращение к одному > единственному ресурсу проходи медленнее. Но, думаю, тут играет роль > процесс добавления в очередь и т.п. Как итог, если страница содержит > более 6 элементов - имеет смысл использовать http2 > Я скорее склонен полагать, что лимитирующим фактором тут становится работа flow control в http/2. Мне уже присылали логи, в которых было видно, что некоторые клиенты банально не успевает обновлять окно и nginx вынужден простаивать в ожидании. Тут подробности: http://mailman.nginx.org/pipermail/nginx/2015-October/048939.html Но вывод верный, страница должна содержать много больше 6 элементов, необходимых для её отрисовки, тогда возможно увидеть какой-то прирост от http/2. Вот еще интересное на тему: http://www.bbc.co.uk/rd/blog/2015/07/performance-testing-results-of-adaptive-media-streaming-over-http -- Валентин Бартенев From nginx-forum на nginx.us Tue Oct 20 14:15:28 2015 From: nginx-forum на nginx.us (neomag) Date: Tue, 20 Oct 2015 10:15:28 -0400 Subject: =?UTF-8?B?bWQ1INCyINC60LDRh9C10YHRgtCy0LUgbWVtY2FjaGVkIGtleQ==?= Message-ID: Здравствуйте! бэкенд кладет в memcache куски сайта, в качестве ключей используется md5 от $uri$args есть ли возможность без привлечения Perl дергать данные из memcache по ключу md5? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262370,262370#msg-262370 From citrin на citrin.ru Tue Oct 20 16:59:10 2015 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Tue, 20 Oct 2015 19:59:10 +0300 Subject: javascript in nginx In-Reply-To: <92E31212-949F-459B-BC2B-28E87DEF4A4A@sysoev.ru> References: <92E31212-949F-459B-BC2B-28E87DEF4A4A@sysoev.ru> Message-ID: <562672DE.9060806@citrin.ru> On 09/23/15 21:53, Igor Sysoev wrote: > Интересно ваше мнение об JS-интерфейсе к внутренностям nginx’а. Полезно было бы в JS-интерфейсе к nginx иметь возможность: 1. прочитать произвольный локальный файл (аналог sysread в перле) 2. ngx_http_map_uri_to_path() - в ngx_http_perl_module это $r->filename 3. отдать кусочек заданного файла текущим сконфигурированным методом (например через sendfile если в данном location действует директива senfile on). From onokonem на gmail.com Tue Oct 20 17:09:07 2015 From: onokonem на gmail.com (Daniel Podolsky) Date: Tue, 20 Oct 2015 20:09:07 +0300 Subject: =?UTF-8?B?UmU6IEhUVFAyINGB0L3QuNC20LDQtdGCINGB0LrQvtGA0L7RgdGC0Ywg0LfQsNCz?= =?UTF-8?B?0YDRg9C30LrQuCDRgdGC0LDRgtC40YfQtdGB0LrQuNGFINGE0LDQudC70L4=?= =?UTF-8?B?0LI=?= In-Reply-To: <5625E5DD.80900@dmitrijev.com> References: <5625E5DD.80900@dmitrijev.com> Message-ID: > Как итог, если страница содержит более 6 элементов - имеет смысл > использовать http2 Или нет. на самом деле - смысл использования http2 полностью (!) завязан на контент. если у нас 6 элементов на странице, и один из них гораздо больше прочих, и вероятность его попадания в кеш низка - тогда да. если нет - http2 ничем нам не поможет. а то тут уже разные программисты приходят с требованием "включите http2" чтобы "стало быстрее"... From alexandr.porunov на gmail.com Tue Oct 20 18:32:49 2015 From: alexandr.porunov на gmail.com (Alexandr Porunov) Date: Tue, 20 Oct 2015 21:32:49 +0300 Subject: =?UTF-8?B?0J/RgdC10LLQtNC+INGB0YLRgNC40LzQuNC90LMg0YfQsNC90LrQvtCyLCDQstC+?= =?UTF-8?B?0LfQvNC+0LbQvdC+INGB0L7Qt9C00LDRgtGMINGBINC/0L7QvNC+0YnRjNGO?= =?UTF-8?B?IE5naW54Pw==?= Message-ID: Здравсвуйте! Возможно ли создать псевдо стриминг чанков с помощью Nginx? Если у меня храняться порезанные видео по 2 секунды в mp4 h.264/aac и нету возможности склеивать уже порезанные файлы, то возможно ли как-то организовать псевдо стриминг этих файлов с помощью Nginx? С Уважением ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From annulen на yandex.ru Tue Oct 20 19:01:00 2015 From: annulen на yandex.ru (Konstantin Tokarev) Date: Tue, 20 Oct 2015 22:01:00 +0300 Subject: =?UTF-8?B?UmU6INCf0YHQtdCy0LTQviDRgdGC0YDQuNC80LjQvdCzINGH0LDQvdC60L7Qsiwg?= =?UTF-8?B?0LLQvtC30LzQvtC20L3QviDRgdC+0LfQtNCw0YLRjCDRgSDQv9C+0LzQvtGJ?= =?UTF-8?B?0YzRjiBOZ2lueD8=?= In-Reply-To: References: Message-ID: <601841445367660@web28o.yandex.ru> 20.10.2015, 21:33, "Alexandr Porunov" : > Здравсвуйте! > > Возможно ли создать псевдо стриминг чанков с помощью Nginx? > > Если у меня храняться порезанные видео по 2 секунды в mp4 h.264/aac и нету возможности склеивать уже порезанные файлы, то возможно ли как-то организовать псевдо стриминг этих файлов с помощью Nginx? > > С Уважением Конечно. Нужно выложить соотвествующие этим чанкам плейлисты HLS, манифесты MPEG-DASH или описание этих чанков в каком-либо другом псевдостриминговом формате. -- Regards, Konstantin From alexandr.porunov на gmail.com Tue Oct 20 19:39:04 2015 From: alexandr.porunov на gmail.com (Alexandr Porunov) Date: Tue, 20 Oct 2015 22:39:04 +0300 Subject: =?UTF-8?B?UmU6INCf0YHQtdCy0LTQviDRgdGC0YDQuNC80LjQvdCzINGH0LDQvdC60L7Qsiwg?= =?UTF-8?B?0LLQvtC30LzQvtC20L3QviDRgdC+0LfQtNCw0YLRjCDRgSDQv9C+0LzQvtGJ?= =?UTF-8?B?0YzRjiBOZ2lueD8=?= In-Reply-To: <601841445367660@web28o.yandex.ru> References: <601841445367660@web28o.yandex.ru> Message-ID: Константин, спасибо за ответ. Но, я всегда думал что HLS и MPEG-DASH это не псевдо стримин а стриминг. Я имел в виду что есть progressive download который позволяет проигрывать mp4 file не загружая его полностью, но он не позволяет перематывать в еще не загруженные части файла. А есть progressive download который позволяет перематывать в любое место файла, если я не ошибаюсь это называеться pseudo streaming. Перемотка в таком случае возможна по ключевым кадрам. Я знаю что Nginx поддерживает это, но у меня эти ключевые кадры разбиты на множество файлов. Чанки с названиями вроде movie1.mp4, movie2.mp4, movie3.mp4 ... movieN.mp4. Я бы хотел иметь возможность проигрывать эти все файлы как одно целое но без использования HLS и DASH. Вот и спрашиваю возможно ли это организовать? Обращаться с этим множеством файлов как с одним. Чтобы иметь возможность в браузере просто написать: И начать воспроизводить всю эту последовательность файлов как один файл. 2015-10-20 22:01 GMT+03:00 Konstantin Tokarev : > > > 20.10.2015, 21:33, "Alexandr Porunov" : > > Здравсвуйте! > > > > Возможно ли создать псевдо стриминг чанков с помощью Nginx? > > > > Если у меня храняться порезанные видео по 2 секунды в mp4 h.264/aac и > нету возможности склеивать уже порезанные файлы, то возможно ли как-то > организовать псевдо стриминг этих файлов с помощью Nginx? > > > > С Уважением > > Конечно. Нужно выложить соотвествующие этим чанкам плейлисты HLS, > манифесты MPEG-DASH или описание этих чанков в каком-либо другом > псевдостриминговом формате. > > -- > Regards, > Konstantin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Wed Oct 21 16:19:20 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 21 Oct 2015 21:19:20 +0500 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: References: Message-ID: Попробуйте ARR + IIS URL Rewrite За исключением экзотических ситуаций - очень производительная и гибкоконфигурируемая штука 11 окт. 2015 г. 20:08 пользователь "vitcool" написал: > Добрый день! > > планирую поставить на фронтенд ngnix 1.9.5 в качестве прокси перед сервлет > контейнером resin 3.0.3 (версия старая но очень стабильная) + делегировать > ему отдачу статики (картинки + xml + js + css). Нагрузка на продакшене > около > 800 ..1000 одновременных коннектов по 80-му порту. иногда скачет до > 1200...1300 и сейчас все это обрабатывает Caucho Resin > > первый вопрос: буду рад любой информации касательно засад и проблем с nginx > на виндоус серверах 2008 и 2012 которые меня ждут > > второй вопрос в следующем: насколько я слышал у nginx для виндоус есть > ограничение на 1024 подключений для каждого его вокера и > в случае 4 ядер это получается всего 4096 коннектов. Это действительно так? > Я перерыл инет, но нигде не нашел информации что это ограничение было > решено > в последней версии. > > По ряду причин, использовать Cent os или другой вид nix я не могу, только > windows server 2008/2012 > > Буду благодарен за ответы! > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,262102,262102#msg-262102 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From alex.hha на gmail.com Wed Oct 21 16:28:20 2015 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 21 Oct 2015 19:28:20 +0300 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: References: Message-ID: А можно для общего развития узнать, что есть ARR? 2015-10-21 19:19 GMT+03:00 Илья Шипицин : > Попробуйте ARR + IIS URL Rewrite > За исключением экзотических ситуаций - очень производительная и > гибкоконфигурируемая штука > 11 окт. 2015 г. 20:08 пользователь "vitcool" > написал: > > Добрый день! >> >> планирую поставить на фронтенд ngnix 1.9.5 в качестве прокси перед сервлет >> контейнером resin 3.0.3 (версия старая но очень стабильная) + делегировать >> ему отдачу статики (картинки + xml + js + css). Нагрузка на продакшене >> около >> 800 ..1000 одновременных коннектов по 80-му порту. иногда скачет до >> 1200...1300 и сейчас все это обрабатывает Caucho Resin >> >> первый вопрос: буду рад любой информации касательно засад и проблем с >> nginx >> на виндоус серверах 2008 и 2012 которые меня ждут >> >> второй вопрос в следующем: насколько я слышал у nginx для виндоус есть >> ограничение на 1024 подключений для каждого его вокера и >> в случае 4 ядер это получается всего 4096 коннектов. Это действительно >> так? >> Я перерыл инет, но нигде не нашел информации что это ограничение было >> решено >> в последней версии. >> >> По ряду причин, использовать Cent os или другой вид nix я не могу, только >> windows server 2008/2012 >> >> Буду благодарен за ответы! >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,262102,262102#msg-262102 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Wed Oct 21 18:15:11 2015 From: nginx-forum на nginx.us (vitcool) Date: Wed, 21 Oct 2015 14:15:11 -0400 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: References: Message-ID: <28f2cdb182cf483a44bc2414214315e1.NginxMailingListRussian@forum.nginx.org> ALex_hha Wrote: ------------------------------------------------------- > А можно для общего развития узнать, что есть ARR? > > 2015-10-21 19:19 GMT+03:00 Илья Шипицин : > > > Попробуйте ARR + IIS URL Rewrite > > За исключением экзотических ситуаций - очень производительная и > > гибкоконфигурируемая штука кажется это оно http://www.iis.net/downloads/microsoft/application-request-routing уже сижу читаю Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262102,262391#msg-262391 From nginx-forum на nginx.us Wed Oct 21 18:15:57 2015 From: nginx-forum на nginx.us (vitcool) Date: Wed, 21 Oct 2015 14:15:57 -0400 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: References: Message-ID: <17f2cf4d29ffdbd39c61770c74ef8555.NginxMailingListRussian@forum.nginx.org> Илья Шипицин Wrote: ------------------------------------------------------- > Попробуйте ARR + IIS URL Rewrite > За исключением экзотических ситуаций - очень производительная и > гибкоконфигурируемая штука спасибо за отклик сижу изучаю Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262102,262392#msg-262392 From alex.hha на gmail.com Wed Oct 21 20:57:42 2015 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 21 Oct 2015 23:57:42 +0300 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: <17f2cf4d29ffdbd39c61770c74ef8555.NginxMailingListRussian@forum.nginx.org> References: <17f2cf4d29ffdbd39c61770c74ef8555.NginxMailingListRussian@forum.nginx.org> Message-ID: А оно умеет кластер как Резин? On Oct 21, 2015 21:16, "vitcool" wrote: > Илья Шипицин Wrote: > ------------------------------------------------------- > > Попробуйте ARR + IIS URL Rewrite > > За исключением экзотических ситуаций - очень производительная и > > гибкоконфигурируемая штука > > спасибо за отклик > сижу изучаю > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,262102,262392#msg-262392 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Thu Oct 22 08:53:56 2015 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 22 Oct 2015 13:53:56 +0500 Subject: =?UTF-8?B?UmU6IENhdWNobyBSZXNpbiAzLngg0Lggbmdpbnggd2luZG93cyBzZXJ2ZXIgMjAx?= =?UTF-8?B?MiAtINCx0YvQu9C4INC70Lgg0L/RgNC+0LHQu9C10LzRiyDRgyDQutC+0LM=?= =?UTF-8?B?0L4g0L3QuNCx0YPQtNGMPw==?= In-Reply-To: References: <17f2cf4d29ffdbd39c61770c74ef8555.NginxMailingListRussian@forum.nginx.org> Message-ID: вопрос был в реверс-прокси на windows. ARR очень хорошая штука, ее как минимум стоит рассмотреть, если у вас windows. с кластерами более правильно рассматривать вопрос в контексте "кластер из nginx на windows" и "кластер из ARR на windows" - да, умеет, через NLB или через Failover Cluster. 22 октября 2015 г., 1:57 пользователь Alex Domoradov написал: > А оно умеет кластер как Резин? > On Oct 21, 2015 21:16, "vitcool" wrote: > >> Илья Шипицин Wrote: >> ------------------------------------------------------- >> > Попробуйте ARR + IIS URL Rewrite >> > За исключением экзотических ситуаций - очень производительная и >> > гибкоконфигурируемая штука >> >> спасибо за отклик >> сижу изучаю >> >> Posted at Nginx Forum: >> https://forum.nginx.org/read.php?21,262102,262392#msg-262392 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на nginx.us Thu Oct 22 12:54:59 2015 From: nginx-forum на nginx.us (grey) Date: Thu, 22 Oct 2015 08:54:59 -0400 Subject: =?UTF-8?B?0JfQsNC00LDRgtGMINCy0YDQtdC80Y8g0LrRjdGI0LAg0LTQu9GPINC+0YLQtNC1?= =?UTF-8?B?0LvRjNC90L7Qs9C+INGE0LDQudC70LA=?= Message-ID: <0519d94a471db2f454aec4e57a64e94f.NginxMailingListRussian@forum.nginx.org> Здравствуйте! На сервере есть папка /images/. Для нее в конфиге настроено кэширование на 3 дня: location ~* ^/images/.+.(jpg|jpeg|gif)$ { root /wwwroot/site.ru/; expires 3d; } В этой же папке лежит файл 404.jpg, его php скрипты отдают тогда, когда страница не найдена. Сам скрипт: header("X-Accel-Redirect: /images/404.jpg"); Хотелось бы для этого файла поставить время кэширования отличное от 3 дней. Пробовал делать: header ("Expires: ".gmdate("D, d M Y H:i:s \G\M\T", time()*846000)); или header ("X-Accel-Expires: 864000"); header ("X-Accel-Redirect: /images/404.jpg"); не получается. nginx игнорирует заголовки. Конечно можно перенести файл 404.jpg в другое место и настроить для него кэширование отдельно, но не хочется раскидывать файлы по разным папкам. Подскажите, как правильнее решить задачу? Заранее спасибо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262400,262400#msg-262400 From nginx-forum на nginx.us Thu Oct 22 13:10:26 2015 From: nginx-forum на nginx.us (vitcool) Date: Thu, 22 Oct 2015 09:10:26 -0400 Subject: =?UTF-8?B?0J7RgtC00LDRh9CwINGB0YLQsNGC0LjQutC4?= Message-ID: <789c56bec9bb46e5584b3fce8026a241.NginxMailingListRussian@forum.nginx.org> Есть ли элегантное решение при использовании nginx как прокси + для отдачи статики, для случая если фронтенд это отдельная машина ? Понятно что если хранить статику на сервере фронтенда, то проблемы нет, но то это означает что придется дорабатывать бекенд (который на отдельной машине) так чтобы контент редакторы могли управлять статикой (картинки и документы) на внешнем сервере фронтенда. Может существуют какие либо элегантные решения? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262402,262402#msg-262402 From ek на nginx.com Thu Oct 22 15:49:16 2015 From: ek на nginx.com (Ekaterina Kukushkina) Date: Thu, 22 Oct 2015 18:49:16 +0300 Subject: =?UTF-8?B?UmU6INCe0YLQtNCw0YfQsCDRgdGC0LDRgtC40LrQuA==?= In-Reply-To: <789c56bec9bb46e5584b3fce8026a241.NginxMailingListRussian@forum.nginx.org> References: <789c56bec9bb46e5584b3fce8026a241.NginxMailingListRussian@forum.nginx.org> Message-ID: Добрый день. proxy_cache же. https://www.nginx.com/resources/admin-guide/content-caching/ > On 22 Oct 2015, at 16:10, vitcool wrote: > > Есть ли элегантное решение при использовании nginx как прокси + для отдачи > статики, для случая если фронтенд это отдельная машина ? > > Понятно что если хранить статику на сервере фронтенда, то проблемы нет, > но то это означает что придется дорабатывать бекенд (который на отдельной > машине) так чтобы > контент редакторы могли управлять статикой (картинки и документы) на внешнем > сервере фронтенда. > > Может существуют какие либо элегантные решения? > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262402,262402#msg-262402 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Ekaterina Kukushkina Support Engineer | NGINX, Inc. From nginx-forum на nginx.us Thu Oct 22 18:01:07 2015 From: nginx-forum на nginx.us (vitcool) Date: Thu, 22 Oct 2015 14:01:07 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQtNCw0YfQsCDRgdGC0LDRgtC40LrQuA==?= In-Reply-To: References: Message-ID: <242fb06b66b8b6991cfe493a56159fde.NginxMailingListRussian@forum.nginx.org> Ekaterina Kukushkina Wrote: ------------------------------------------------------- > Добрый день. > > proxy_cache же. > https://www.nginx.com/resources/admin-guide/content-caching/ но это означает что бекенд так или иначе тоже будет нагружен отдачей статики а я хотел отказаться от этого быстрого решения кроме как в установке nginx и на сервере с бекендом - я не вижу Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262402,262407#msg-262407 From rogat1y на gmail.com Thu Oct 22 18:51:06 2015 From: rogat1y на gmail.com (Maxim Kozlov) Date: Thu, 22 Oct 2015 21:51:06 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQtNCw0YLRjCDQstGA0LXQvNGPINC60Y3RiNCwINC00LvRjyDQvtGC?= =?UTF-8?B?0LTQtdC70YzQvdC+0LPQviDRhNCw0LnQu9Cw?= In-Reply-To: <0519d94a471db2f454aec4e57a64e94f.NginxMailingListRussian@forum.nginx.org> References: <0519d94a471db2f454aec4e57a64e94f.NginxMailingListRussian@forum.nginx.org> Message-ID: expires заменяет все заголовки кеширования от бекэнда. Создайте для /images/404.jpg отдельный локейшн с необходимыми заголовками кеширования/вовсе уберите из него переопределение заголовков. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Thu Oct 22 20:46:43 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 22 Oct 2015 23:46:43 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQtNCw0YLRjCDQstGA0LXQvNGPINC60Y3RiNCwINC00LvRjyDQvtGC?= =?UTF-8?B?0LTQtdC70YzQvdC+0LPQviDRhNCw0LnQu9Cw?= In-Reply-To: <0519d94a471db2f454aec4e57a64e94f.NginxMailingListRussian@forum.nginx.org> References: <0519d94a471db2f454aec4e57a64e94f.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151022204643.GI48365@mdounin.ru> Hello! On Thu, Oct 22, 2015 at 08:54:59AM -0400, grey wrote: > На сервере есть папка /images/. Для нее в конфиге настроено кэширование на 3 > дня: > > location ~* ^/images/.+.(jpg|jpeg|gif)$ { > root /wwwroot/site.ru/; > expires 3d; > } > > В этой же папке лежит файл 404.jpg, его php скрипты отдают тогда, когда > страница не найдена. Сам скрипт: > > header("X-Accel-Redirect: /images/404.jpg"); > > Хотелось бы для этого файла поставить время кэширования отличное от 3 дней. Проще и правильнее всего так: location = /images/404.jpg { expires epoch; } Подробнее о том, как писать location'ы, можно почитать тут: http://nginx.org/r/location/ru > Пробовал делать: > > header ("Expires: ".gmdate("D, d M Y H:i:s \G\M\T", time()*846000)); > или > header ("X-Accel-Expires: 864000"); > header ("X-Accel-Redirect: /images/404.jpg"); > > не получается. nginx игнорирует заголовки. Заголовок Expires из исходного ответа с X-Accel-Redirect при перенаправлении добавлен к заголовкам ответа. Однако директива expires в вашем конфиге - заменит его на то, что указано в ней. Потому и не получается. -- Maxim Dounin http://nginx.org/ From ek на nginx.com Fri Oct 23 04:09:15 2015 From: ek на nginx.com (Ekaterina Kukushkina) Date: Fri, 23 Oct 2015 07:09:15 +0300 Subject: =?UTF-8?B?UmU6INCe0YLQtNCw0YfQsCDRgdGC0LDRgtC40LrQuA==?= In-Reply-To: <242fb06b66b8b6991cfe493a56159fde.NginxMailingListRussian@forum.nginx.org> References: <242fb06b66b8b6991cfe493a56159fde.NginxMailingListRussian@forum.nginx.org> Message-ID: <3FDF1065-1900-443B-8E28-F8F9D941CAC4@nginx.com> Добрый день. > On 22 Oct 2015, at 21:01, vitcool wrote: > > Ekaterina Kukushkina Wrote: > ------------------------------------------------------- >> Добрый день. >> >> proxy_cache же. >> https://www.nginx.com/resources/admin-guide/content-caching/ > > но это означает что бекенд так или иначе тоже будет нагружен отдачей > статики > а я хотел отказаться от этого Да, полностью от отдачи статики бэкэндом при этом не избавиться. Но при кешировании на длительное время можно существенно снизить количество обращений к бэкэнду. > > быстрого решения кроме как в установке nginx и на сервере с бекендом - я не > вижу Ну в таком случае варианта собственно два: а) Доставить ФС со статикой на фронтенд (например, через nfs). И так делать не стоит. б) Доставить nginx на бэкэнд. Такой вариант не просто имеет право на жизнь, а в данном случае и предпочтителен. > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262402,262407#msg-262407 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Ekaterina Kukushkina Support Engineer | NGINX, Inc. From gmm на csdoc.com Fri Oct 23 05:27:24 2015 From: gmm на csdoc.com (Gena Makhomed) Date: Fri, 23 Oct 2015 08:27:24 +0300 Subject: =?UTF-8?B?UmU6INCe0YLQtNCw0YfQsCDRgdGC0LDRgtC40LrQuA==?= In-Reply-To: <242fb06b66b8b6991cfe493a56159fde.NginxMailingListRussian@forum.nginx.org> References: <242fb06b66b8b6991cfe493a56159fde.NginxMailingListRussian@forum.nginx.org> Message-ID: <5629C53C.3020100@csdoc.com> On 22.10.2015 21:01, vitcool wrote: >> proxy_cache же. >> https://www.nginx.com/resources/admin-guide/content-caching/ > но это означает что бекенд так или иначе тоже будет нагружен отдачей > статики а я хотел отказаться от этого Срок хранения кеша можно выставить очень большим, а когда необходимо будет обновить кеш - это бекенд сможет сделать самостоятельно в любой момент, с помощью директивы proxy_cache_bypass: https://www.nginx.com/blog/nginx-caching-guide/ https://www.nginx.com/resources/admin-guide/content-caching/ Это кстати, касается не только статики, так же кешировать и обновлять по запросу можно и общую для всех динамику. Подробности - см. также документацию по proxy_cache_valid > быстрого решения кроме как в установке nginx и на сервере с бекендом - я не > вижу Если убрать с бекенда Windows и поставить там Linux, то вполне вариант. -- Best regards, Gena From nginx-forum на nginx.us Fri Oct 23 09:14:31 2015 From: nginx-forum на nginx.us (grey) Date: Fri, 23 Oct 2015 05:14:31 -0400 Subject: =?UTF-8?B?UmU6INCX0LDQtNCw0YLRjCDQstGA0LXQvNGPINC60Y3RiNCwINC00LvRjyDQvtGC?= =?UTF-8?B?0LTQtdC70YzQvdC+0LPQviDRhNCw0LnQu9Cw?= In-Reply-To: <20151022204643.GI48365@mdounin.ru> References: <20151022204643.GI48365@mdounin.ru> Message-ID: <7bbc25302a91c1fc6278034fbb7822b5.NginxMailingListRussian@forum.nginx.org> Всем спасибо, помогли. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262400,262422#msg-262422 From barzog на telecom.by Mon Oct 26 10:32:36 2015 From: barzog на telecom.by (Oleg Gawriloff) Date: Mon, 26 Oct 2015 13:32:36 +0300 Subject: =?UTF-8?B?UmU6INCf0YHQtdCy0LTQviDRgdGC0YDQuNC80LjQvdCzINGH0LDQvdC60L7Qsiwg?= =?UTF-8?B?0LLQvtC30LzQvtC20L3QviDRgdC+0LfQtNCw0YLRjCDRgSDQv9C+0LzQvtGJ?= =?UTF-8?B?0YzRjiBOZ2lueD8=?= In-Reply-To: References: <601841445367660@web28o.yandex.ru> Message-ID: <562E0144.3090100@telecom.by> 20.10.2015 22:39, Alexandr Porunov пишет: > Константин, спасибо за ответ. > > Но, я всегда думал что HLS и MPEG-DASH это не псевдо стримин а > стриминг. Я имел в виду что есть progressive download который > позволяет проигрывать mp4 file не загружая его полностью, но он не > позволяет перематывать в еще не загруженные части файла. А есть > progressive download который позволяет перематывать в любое место > файла, если я не ошибаюсь это называеться pseudo streaming. Перемотка > в таком случае возможна по ключевым кадрам. Я знаю что Nginx > поддерживает это, но у меня эти ключевые кадры разбиты на множество > файлов. Чанки с названиями вроде movie1.mp4, movie2.mp4, movie3.mp4 > ... movieN.mp4. Я бы хотел иметь возможность проигрывать эти все файлы > как одно целое но без использования HLS и DASH. Вот и спрашиваю > возможно ли это организовать? Обращаться с этим множеством файлов как > с одним. https://github.com/alibaba/nginx-http-concat не подойдет? -- Signed, Oleg Gawriloff. From alexandr.porunov на gmail.com Mon Oct 26 19:15:59 2015 From: alexandr.porunov на gmail.com (Alexandr Porunov) Date: Mon, 26 Oct 2015 21:15:59 +0200 Subject: =?UTF-8?B?UmU6INCf0YHQtdCy0LTQviDRgdGC0YDQuNC80LjQvdCzINGH0LDQvdC60L7Qsiwg?= =?UTF-8?B?0LLQvtC30LzQvtC20L3QviDRgdC+0LfQtNCw0YLRjCDRgSDQv9C+0LzQvtGJ?= =?UTF-8?B?0YzRjiBOZ2lueD8=?= In-Reply-To: <562E0144.3090100@telecom.by> References: <601841445367660@web28o.yandex.ru> <562E0144.3090100@telecom.by> Message-ID: Олег, спасибо за помощь. Не знал об этом модуле. По идее подойдет 2015-10-26 12:32 GMT+02:00 Oleg Gawriloff : > 20.10.2015 22:39, Alexandr Porunov пишет: > >> Константин, спасибо за ответ. >> >> Но, я всегда думал что HLS и MPEG-DASH это не псевдо стримин а стриминг. >> Я имел в виду что есть progressive download который позволяет проигрывать >> mp4 file не загружая его полностью, но он не позволяет перематывать в еще >> не загруженные части файла. А есть progressive download который позволяет >> перематывать в любое место файла, если я не ошибаюсь это называеться pseudo >> streaming. Перемотка в таком случае возможна по ключевым кадрам. Я знаю что >> Nginx поддерживает это, но у меня эти ключевые кадры разбиты на множество >> файлов. Чанки с названиями вроде movie1.mp4, movie2.mp4, movie3.mp4 ... >> movieN.mp4. Я бы хотел иметь возможность проигрывать эти все файлы как одно >> целое но без использования HLS и DASH. Вот и спрашиваю возможно ли это >> организовать? Обращаться с этим множеством файлов как с одним. >> > https://github.com/alibaba/nginx-http-concat не подойдет? > > -- > Signed, Oleg Gawriloff. > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Tue Oct 27 14:11:23 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 27 Oct 2015 17:11:23 +0300 Subject: nginx-1.9.6 Message-ID: <20151027141123.GI48365@mdounin.ru> Изменения в nginx 1.9.6 27.10.2015 *) Исправление: при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault. Спасибо Piotr Sikora и Denis Andzakovic. *) Исправление: при использовании HTTP/2 переменная $server_protocol была пустой. *) Исправление: SSL-соединения к бэкендам в модуле stream могли неожиданно завершаться по таймауту. *) Исправление: при использовании различных настроек ssl_session_cache в разных виртуальных серверах в рабочем процессе мог произойти segmentation fault. *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась в 1.9.4. Спасибо Kouhei Sutou. *) Исправление: при использовании директивы timer_resolution на Windows время не обновлялось. *) Незначительные исправления и улучшения. Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora. -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Tue Oct 27 17:13:49 2015 From: nginx-forum на nginx.us (vitcool) Date: Tue, 27 Oct 2015 13:13:49 -0400 Subject: =?UTF-8?B?0JrRjdGI0LjRgNC+0LLQsNC90LjQtSDRgdGC0LDRgtC40LrQuA==?= Message-ID: Доброго всем времени суток имеем nginx-1.9.5 запущенный на Windows Server 2012 R2 плюс RAM диск на 512Mb nginx должен кэшировать статик файлы при получении ответа 200 на срок 60 минут но судя по бекенду этого не происходит, но и нет 100% нагрузки на статику. причем файлы js и css почему то чаще ретривятся прокси nginx чем файлы картинок (gif, png, jpg) диск на котором расположен кэш заполнен на 50% подскажите пожалуйста в чем причина? конфиг (кусочек) proxy_cache_path d:/nginx-cache-AAA levels=1:2 keys_zone=AAA:60m inactive=120m max_size=384m; proxy_cache_path d:/nginx-cache-BBB levels=1:2 keys_zone=BBB:60m inactive=120m max_size=64m; proxy_cache_min_uses 1; ..... # Static files location location ~* \.(css|js|jpg|jpeg|gif|png|zip|doc|xls|pdf|ppt|bmp|rtf|ico|cur|txt|htc|swf|eot|svg|woff|ttf)$ { proxy_pass http://www.anysite.ru; proxy_http_version 1.1; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 1M; client_body_buffer_size 32k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_cache AAA; proxy_cache_valid 200 301 302 304 60m; proxy_cache_valid 404 5m; proxy_cache_valid 501 503 20s; proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri"; proxy_hide_header "Set-Cookie"; proxy_ignore_headers "Cache-Control" "Expires"; add_header Access-Control-Allow-Origin "*"; expires 7d; } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262499,262499#msg-262499 From nginx-forum на nginx.us Wed Oct 28 09:16:04 2015 From: nginx-forum на nginx.us (MikhailErofeev) Date: Wed, 28 Oct 2015 05:16:04 -0400 Subject: =?UTF-8?B?0KPQstC10LTQvtC80LvRj9GC0YwgbmdpbngtcHJveHkg0L4g0LfQsNC60YDRi9GC?= =?UTF-8?B?0LjQuCDRgdC+0LXQtNC40L3QtdC90LjRjyDRgSDQutC70LjQtdC90YLQvtC8?= Message-ID: <46af1dd5fabe86a734a4c26e86d27c09.NginxMailingListRussian@forum.nginx.org> Добрый день. У нас есть бекенд за http proxy с помощью nginx. В некоторых случаях (но для одной location) бекенд знает, что соединения с клиентом не нужно удерживать, и хочет уведомлять об этом nginx. При этом он очевидно не может послать Connection: close, поскольку тогда соединение будет разорвано между nginx и сервером, а не между nginx и клиентом. Существует ли header, либо иной другой флаг, который можно указать со стороны бэкенда, чтобы nginx закрыл соединение с клиентом? Спасибо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262508,262508#msg-262508 From mdounin на mdounin.ru Wed Oct 28 13:49:35 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 28 Oct 2015 16:49:35 +0300 Subject: =?UTF-8?B?UmU6INCj0LLQtdC00L7QvNC70Y/RgtGMIG5naW54LXByb3h5INC+INC30LDQutGA?= =?UTF-8?B?0YvRgtC40Lgg0YHQvtC10LTQuNC90LXQvdC40Y8g0YEg0LrQu9C40LXQvdGC?= =?UTF-8?B?0L7QvA==?= In-Reply-To: <46af1dd5fabe86a734a4c26e86d27c09.NginxMailingListRussian@forum.nginx.org> References: <46af1dd5fabe86a734a4c26e86d27c09.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151028134935.GA69417@mdounin.ru> Hello! On Wed, Oct 28, 2015 at 05:16:04AM -0400, MikhailErofeev wrote: > Добрый день. > У нас есть бекенд за http proxy с помощью nginx. В некоторых случаях (но для > одной location) бекенд знает, что соединения с клиентом не нужно удерживать, > и хочет уведомлять об этом nginx. > При этом он очевидно не может послать Connection: close, поскольку тогда > соединение будет разорвано между nginx и сервером, а не между nginx и > клиентом. > Существует ли header, либо иной другой флаг, который можно указать со > стороны бэкенда, чтобы nginx закрыл соединение с клиентом? > Спасибо. Нет, сейчас такой возможности нет. Разве что делать перенаправление с помощью X-Accel-Redirect в другой location с отключённым keepalive'ом, но это слегка затратный путь. А можно чуть поподробнее про use case? Из каких соображений бекенду известно, что постоянное соединение с клиентом поддерживать не надо? -- Maxim Dounin http://nginx.org/ From nginx-forum на nginx.us Wed Oct 28 14:30:59 2015 From: nginx-forum на nginx.us (MikhailErofeev) Date: Wed, 28 Oct 2015 10:30:59 -0400 Subject: =?UTF-8?B?UmU6INCj0LLQtdC00L7QvNC70Y/RgtGMIG5naW54LXByb3h5INC+INC30LDQutGA?= =?UTF-8?B?0YvRgtC40Lgg0YHQvtC10LTQuNC90LXQvdC40Y8g0YEg0LrQu9C40LXQvdGC?= =?UTF-8?B?0L7QvA==?= In-Reply-To: <20151028134935.GA69417@mdounin.ru> References: <20151028134935.GA69417@mdounin.ru> Message-ID: <965c7749517e1fc06dae76c708f2a488.NginxMailingListRussian@forum.nginx.org> Максим, спасибо! Клиенты этого сервиса (3rd party tracking pixels) пользователи интернета, их много, взаимодействуют каждый из них с нами мало, и несколько веб-сервисов, которые взаимодействуют постоянно. Мы бы хотели минимизировать количество открытых ненужных соединений. Сейчас мы решаем эту проблему с помощью fastcgi, но хотим уйти на честное http проксирование. Пока мы рассматриваем вариант с установкой небольшого keepalive_timeout (~1s), но боимся, что это сильно нагрузит nginx. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262508,262516#msg-262516 From mdounin на mdounin.ru Wed Oct 28 14:42:48 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 28 Oct 2015 17:42:48 +0300 Subject: =?UTF-8?B?UmU6INCj0LLQtdC00L7QvNC70Y/RgtGMIG5naW54LXByb3h5INC+INC30LDQutGA?= =?UTF-8?B?0YvRgtC40Lgg0YHQvtC10LTQuNC90LXQvdC40Y8g0YEg0LrQu9C40LXQvdGC?= =?UTF-8?B?0L7QvA==?= In-Reply-To: <965c7749517e1fc06dae76c708f2a488.NginxMailingListRussian@forum.nginx.org> References: <20151028134935.GA69417@mdounin.ru> <965c7749517e1fc06dae76c708f2a488.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151028144248.GF69417@mdounin.ru> Hello! On Wed, Oct 28, 2015 at 10:30:59AM -0400, MikhailErofeev wrote: > Максим, спасибо! > Клиенты этого сервиса (3rd party tracking pixels) пользователи интернета, их > много, взаимодействуют каждый из них с нами мало, и несколько веб-сервисов, > которые взаимодействуют постоянно. Всмысле - веб-сервисы ходят на ровно те же адреса, что и обычные пользователи? Если нет - то проще всего сделать отдельный location. > Мы бы хотели минимизировать количество > открытых ненужных соединений. Сейчас мы решаем эту проблему с помощью > fastcgi, но хотим уйти на честное http проксирование. > Пока мы рассматриваем вариант с установкой небольшого keepalive_timeout > (~1s), но боимся, что это сильно нагрузит nginx. В случае, если у nginx'а заканчиваются worker_connections, он начинает закрывать старые keepalive-соединения. Так что включать keepalive, фактически, абсолютно безопасно - при необходимости keepalive_timeout самостоятельно сокращается. -- Maxim Dounin http://nginx.org/ From ek на nginx.com Thu Oct 29 00:07:35 2015 From: ek на nginx.com (Ekaterina Kukushkina) Date: Thu, 29 Oct 2015 03:07:35 +0300 Subject: =?UTF-8?B?UmU6INCa0Y3RiNC40YDQvtCy0LDQvdC40LUg0YHRgtCw0YLQuNC60Lg=?= In-Reply-To: References: Message-ID: <84735D6D-1A19-42EB-9C55-2A3883E6DC94@nginx.com> Здравствуйте. Для начала имеет смысл добавить в конфигурацию log_format переменную $upstream_cache_status и убедиться, что кэширования файлов действительно не происходит или происходит не так, как ожидается. Также имеет смысл удалить переменны $http_if_modified_since и $http_if_none_match из ключа кэширования. Потому что запросы от разных клиентов, имеющих у себя разные версии файлов, будут приводить к тому, что на один файл будет создаваться несколько закэшированных версий, т.е. бэкэнд будет дергаться значительно большее количество раз. Чтобы в этом убедиться, можно добавить и эти переменные к log_format посмотреть, как кэшируются запросы к одному url. > On 27 Oct 2015, at 20:13, vitcool wrote: > > Доброго всем времени суток > > имеем nginx-1.9.5 запущенный на Windows Server 2012 R2 > плюс RAM диск на 512Mb > > nginx должен кэшировать статик файлы при получении ответа 200 на срок 60 > минут > но судя по бекенду этого не происходит, но и нет 100% нагрузки на статику. > причем файлы js и css почему то чаще ретривятся прокси nginx чем файлы > картинок (gif, png, jpg) > диск на котором расположен кэш заполнен на 50% > подскажите пожалуйста в чем причина? > > > конфиг (кусочек) [...] > proxy_cache_key > "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri"; [...] > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262499,262499#msg-262499 > -- Ekaterina Kukushkina From nginx-forum на nginx.us Thu Oct 29 05:55:48 2015 From: nginx-forum на nginx.us (Victor) Date: Thu, 29 Oct 2015 01:55:48 -0400 Subject: =?UTF-8?Q?FastCGI=2C_multipart/form-data_=D0=B8_CRLF?= Message-ID: <907c61793c28fa49a61777e5e963d74f.NginxMailingListRussian@forum.nginx.org> Доброго времени суток! Имеется: nginx (1.9.6) и fastcgi приложение (libfcgi), и html форма, отправляющая файл (enctype="multipart/form-data") При отправке файла через форму, приложение его получает, но битый - в содержимом все LF оказываются заменены на CR+LF. Почему так происходит? Для текстовых файлов это еще можно было бы понять, но для остальных типов - это жесть... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262528,262528#msg-262528 From nginx-forum на nginx.us Fri Oct 30 14:41:24 2015 From: nginx-forum на nginx.us (siroco) Date: Fri, 30 Oct 2015 10:41:24 -0400 Subject: $bytes sent = 0, nginx 1.8.0 Message-ID: <418059946cf4e3d105643d4b4fb8fee2.NginxMailingListRussian@forum.nginx.org> Всем привет! Раздаю с помощью nginx файлики с диска вот так: location ^~ /files/ { alias /mnt/plugins-data/t/files/; } Внезапно в логе сервера появилась строка: "XXX.XXX.XXX.XXX - - [28/Oct/2015:17:03:03 +0300] "GET /files/1800/21707/DBN-14.1.zip HTTP/1.1" 200 0 "-" "Java/1.8.0_40" 0.000 316 0" Последний ноль - это $bytes_sent Версия nginx - из rpm на Amazon Linux: # nginx -V nginx version: nginx/1.8.0 built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) built with OpenSSL 1.0.1k-fips 8 Jan 2015 TLS SNI support enabled configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --with-ld-opt=' -Wl,-E' Нашел вот это - http://mailman.nginx.org/pipermail/nginx-devel/2015-May/006940.html Но у меня нет "aio threads". Но в опция выше я вижу "--with-file-aio" (со словов "aio"). Что делать? :) -- s. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262538,262538#msg-262538 From nginx-forum на nginx.us Fri Oct 30 15:04:34 2015 From: nginx-forum на nginx.us (siroco) Date: Fri, 30 Oct 2015 11:04:34 -0400 Subject: $bytes sent = 0, nginx 1.8.0 In-Reply-To: <418059946cf4e3d105643d4b4fb8fee2.NginxMailingListRussian@forum.nginx.org> References: <418059946cf4e3d105643d4b4fb8fee2.NginxMailingListRussian@forum.nginx.org> Message-ID: Дополнение: C [30/Oct/2015:03:42:03 +0300] по [30/Oct/2015:18:02:00 +0300] проблема уже случилась 13 раз (всего подобных запросов на это же время было ~80000): (считаю вот так) # cat files-access.log | grep files | awk '{ print $NF }' | grep -Fx 0 | wc -l 13 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,262538,262540#msg-262540 From mdounin на mdounin.ru Fri Oct 30 16:33:05 2015 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 30 Oct 2015 19:33:05 +0300 Subject: $bytes sent = 0, nginx 1.8.0 In-Reply-To: <418059946cf4e3d105643d4b4fb8fee2.NginxMailingListRussian@forum.nginx.org> References: <418059946cf4e3d105643d4b4fb8fee2.NginxMailingListRussian@forum.nginx.org> Message-ID: <20151030163304.GP69417@mdounin.ru> Hello! On Fri, Oct 30, 2015 at 10:41:24AM -0400, siroco wrote: > Всем привет! > > Раздаю с помощью nginx файлики с диска вот так: > > location ^~ /files/ { > alias /mnt/plugins-data/t/files/; > } > > > Внезапно в логе сервера появилась строка: > "XXX.XXX.XXX.XXX - - [28/Oct/2015:17:03:03 +0300] "GET > /files/1800/21707/DBN-14.1.zip HTTP/1.1" 200 0 "-" "Java/1.8.0_40" 0.000 316 > 0" > > Последний ноль - это $bytes_sent [...] > Что делать? :) Если не показано иное - нет причин думать, что тут что-то не так. Такое может быть, e.g., если клиент прислал запрос, а потом сразу закрыл соединение. -- Maxim Dounin http://nginx.org/