From nginx-forum at nginx.us Thu May 1 11:45:02 2014 From: nginx-forum at nginx.us (saaleb) Date: Thu, 01 May 2014 07:45:02 -0400 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCBuZ2lueCDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINCx?= =?UTF-8?B?0LvQvtC60LjRgNGD0Y7RidC10Lkg0L7Qv9C10YDQsNGG0LjQtdC5?= In-Reply-To: <20140430141854.GH34696@mdounin.ru> References: <20140430141854.GH34696@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Tue, Apr 29, 2014 at 04:51:18PM -0400, saaleb wrote: > > > И снова здравствуйте. > > > > Изучал upstream модули как идущие в комплекте, так и сторонние, но > есть > > некоторые неясные моменты. > > > > 1. create_request - тут создаем запрос, передаем его upstream. > Немного > > непонятно, как именно идет взаимодействие с upstream. Мне, например, > > требуется сформировать структуру из запроса и вызвать определенную > функцию > > из сторонней библиотеки. Назовем ее send(). Могу ли я вызвать эту > функцию из > > create_request или нужно использовать более низкий уровень для > совмещения > > моего send() и механизма работы с upstream? > > Взаимодействием собственно с бекендами занимается сам модуль upstream. > > Задача реализации протокола - сформировать запрос, который будет > отправлен. > > Если вам требуется для отправки запроса использовать стороннюю > библиотеку - модуль upstream вам не подойдёт. Хорошо. Какой тогда существует путь в nginx для взаимодействия со сторонней библиотекой, учитывая, что время ответа не отпределено, т.е. надо как-то обрабатывать таймауты. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249424,249787#msg-249787 From nginx-forum at nginx.us Thu May 1 16:14:03 2014 From: nginx-forum at nginx.us (iprok) Date: Thu, 01 May 2014 12:14:03 -0400 Subject: =?UTF-8?B?0JLRi9GA0YPQsdC40YLRjCBnemlwINC00LvRjyDQvtGC0LTQtdC70YzQvdC+0LM=?= =?UTF-8?B?0L4gcGhwINGB0LrRgNC40L/RgtCwINC40LvQuCDRgdC90L7QstCwINC/0YA=?= =?UTF-8?B?0L4g0LLQu9C+0LbQtdC90L3Ri9C1IGxvY2F0aW8=?= Message-ID: <1476cbc8e2a46e811d8b25cae2827bf4.NginxMailingListRussian@forum.nginx.org> Здравствуйте! Есть следующая конструкция: location ~ ^(/owncloud/(\w+\.php|core/templates/40\d\.php|core/ajax/update.php|apps/files_encryption/files/error.php|apps/files/ajax/download.php))(/.*)?$ { try_files $1 =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$1; fastcgi_param PATH_INFO $3; fastcgi_param HTTPS on; fastcgi_param MOD_X_ACCEL_REDIRECT_ENABLED on; fastcgi_read_timeout 130s; fastcgi_pass unix:/run/php-fpm-owncloud.socket; } Мне надо вырубить gzip для одного из скриптов этого множества, конкретно /owncloud/remote.php/webdav/ . Пока что заработало нормально у меня только с добавлением location ~ ^(/tu4ko/remote\.php)(/webdav/.*)?$ { try_files $1 =404; gzip off; #Чтоб не стрипало e-tag ... повторение строчек fastcgi_... из куска выше } То есть практически дублирование общего куска. Чувсвую, что прямее было бы обойтись вложенным location, но, к сожалению, не могу понять как. Помогите мне, пожалуйста. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249789,249789#msg-249789 From nginx-forum at nginx.us Thu May 1 16:15:16 2014 From: nginx-forum at nginx.us (iprok) Date: Thu, 01 May 2014 12:15:16 -0400 Subject: =?UTF-8?B?UmU6INCS0YvRgNGD0LHQuNGC0YwgZ3ppcCDQtNC70Y8g0L7RgtC00LXQu9GM0L0=?= =?UTF-8?B?0L7Qs9C+IHBocCDRgdC60YDQuNC/0YLQsCDQuNC70Lgg0YHQvdC+0LLQsCA=?= =?UTF-8?B?0L/RgNC+INCy0LvQvtC20LXQvdC90YvQtSBsb2NhdGlv?= In-Reply-To: <1476cbc8e2a46e811d8b25cae2827bf4.NginxMailingListRussian@forum.nginx.org> References: <1476cbc8e2a46e811d8b25cae2827bf4.NginxMailingListRussian@forum.nginx.org> Message-ID: В добавленном куске вместо tu4ko читать owncloud. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249789,249790#msg-249790 From nefer05 at gmail.com Fri May 2 01:03:52 2014 From: nefer05 at gmail.com (=?UTF-8?B?0KDQvtC80LDQvSDQnNC+0YHQutCy0LjRgtC40L0=?=) Date: Fri, 2 May 2014 05:03:52 +0400 Subject: =?UTF-8?B?UmU6INCS0YvRgNGD0LHQuNGC0YwgZ3ppcCDQtNC70Y8g0L7RgtC00LXQu9GM0L0=?= =?UTF-8?B?0L7Qs9C+IHBocCDRgdC60YDQuNC/0YLQsCDQuNC70Lgg0YHQvdC+0LLQsCA=?= =?UTF-8?B?0L/RgNC+INCy0LvQvtC20LXQvdC90YvQtSBsb2NhdGlv?= In-Reply-To: References: <1476cbc8e2a46e811d8b25cae2827bf4.NginxMailingListRussian@forum.nginx.org> Message-ID: Вложенный location сюда так и просится. 2014-05-01 20:15 GMT+04:00 iprok : > В добавленном куске вместо tu4ko читать owncloud. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,249789,249790#msg-249790 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Fri May 2 21:03:15 2014 From: nginx-forum at nginx.us (fantom2067) Date: Fri, 02 May 2014 17:03:15 -0400 Subject: =?UTF-8?B?0JfQsNC/0YDQtdGC0LjRgtGMIHVybCDQuCDQstC10YDQvdGD0YLRjCA0MDQg0YE=?= =?UTF-8?B?0YLRgNCw0L3QuNGG0YM=?= Message-ID: Здраствуйте. Подскажите пожалуйста, как можно запретить страницы архивов в Wordpress. Выглядят они следующем образом http://site.ru/2014/03/, http://site.ru/2014/04/, http://site.ru/2014/05/ тоесть нужно запретить доступ к старницам за все года и месяца и при обращении вернуть 404 страницу. В robots.txt это делается так /20**/*/, в nginx сколько не бился над этой проблемой, не получилось заблокировать url. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249799,249799#msg-249799 From nginx-forum at nginx.us Sat May 3 13:57:31 2014 From: nginx-forum at nginx.us (justcyber) Date: Sat, 03 May 2014 09:57:31 -0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0LUg0L/QvtCy0LXQtNC10L3QuNC1INC4IDUwMiA=?= =?UTF-8?B?0L7RiNC40LHQutCw?= In-Reply-To: References: Message-ID: Имеется аналогичная проблема: 2014/05/03 17:41:45 [error] 1118#0: *2585 upstream prematurely closed connection while reading response header from upstream, client: 112.123.168.55, server: goodwing.ru, request: "POST /wp-comments-post.php HTTP/1.0", upstream: "http://xx.xx.xx.xx:80/wp-comments-post.php", host: "site.ru", referrer: "http://site.ru/2012/10/28/welcome/#comment-17681 Началось после обновления nginx'а до версии nginx/1.5.12 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249593,249800#msg-249800 From andrey at kopeyko.ru Sun May 4 10:07:43 2014 From: andrey at kopeyko.ru (Andrey Kopeyko) Date: Sun, 04 May 2014 14:07:43 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GA0LXRgtC40YLRjCB1cmwg0Lgg0LLQtdGA0L3Rg9GC0YwgNDA0?= =?UTF-8?B?INGB0YLRgNCw0L3QuNGG0YM=?= In-Reply-To: References: Message-ID: <5366116F.3020402@kopeyko.ru> 03.05.2014 01:03, fantom2067 пишет: > Здраствуйте. Подскажите пожалуйста, как можно запретить страницы архивов в > Wordpress. Выглядят они следующем образом http://site.ru/2014/03/, > http://site.ru/2014/04/, http://site.ru/2014/05/ тоесть нужно запретить > доступ к старницам за все года и месяца и при обращении вернуть 404 > страницу. > > В robots.txt это делается так /20**/*/, в nginx сколько не бился над этой > проблемой, не получилось заблокировать url. Добрый день, fantom2067! А вам от кого надо архивы защитить? robots.txt - позволит защитить лишь от вежливых роботов; если вам нужно защититься ото всех - вам надо сконфигурить примерно такой локейшен: location ~ ^/20\d\d/\d\d/ { return 404; } Подробнее прочитайте на http://nginx.org/ru/docs/http/ngx_http_core_module.html#location > -- Best regards, Andrey Kopeyko From nginx-forum at nginx.us Mon May 5 09:52:17 2014 From: nginx-forum at nginx.us (dimik) Date: Mon, 05 May 2014 05:52:17 -0400 Subject: =?UTF-8?B?cHJveHkgbWV0aG9kINC90LUg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGCINC00Lg=?= =?UTF-8?B?0L3QsNC80LjRh9C10YHQutC40LUg0LfQvdCw0YfQtdC90LjRjw==?= Message-ID: Пытаюсь использовать значение в директиве proxy_method из http-заголовка X-HTTP-Method proxy_method $http_x_http_method; И это не работает. Как можно использовать данную возможность? Версия 1.5.12 -- Дмитрий Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249832,249832#msg-249832 From nginx-forum at nginx.us Tue May 6 08:00:32 2014 From: nginx-forum at nginx.us (dant4z) Date: Tue, 06 May 2014 04:00:32 -0400 Subject: ngx_http_memcached_module Message-ID: <8d323825237091f6c87f5e52e5a05ad2.NginxMailingListRussian@forum.nginx.org> Здравствуйте! В одном location есть директивы set $memcached_key blablabla; memcached_pass X.X.X.X:11211; error_page 404 405 500 502 503 504 = @backend; Ключ blablabla лежит в мемкэше. На POST-запрос nginx не обращает внимания на мемкэш и проксирует его на бэкенд. Можно как-нибудь принудить nginx не обращать внимание на это, а если ключ есть, то не проксировать запрос, а взять ответ из мемкеша? Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249856,249856#msg-249856 From citrin at citrin.ru Tue May 6 11:46:36 2014 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Tue, 06 May 2014 15:46:36 +0400 Subject: ssl_session_ticket_key and SNI Message-ID: <5368CB9C.1020407@citrin.ru> Здравствуйте! Наблюдаю проблему с таким конфигом: http { default_type text/plain; access_log logs/access.log combined; server { server_name example.ru; listen 443 default; ssl on; ssl_certificate example.ru.crt; ssl_certificate_key example.ru.key; ssl_session_ticket_key ticket.key; location / { return 200 "example.ru\n"; } } server { server_name example.com; listen 443; ssl on; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; location / { return 200 "example.com\n"; } } } Желаемое поведение: - для example.ru использовать ticket key из файла. - для example.com (и всех остальных блоков server) использовать случайный ticket key, генерируемый в nginx при старте. Что наблюдается: - Без SNI работает и отдается сертификат example.ru - Если в SNI указать example.ru - работает и отдается сертификат example.ru - Если в SNI указать example.com - соединение рвётся с очень неясной диагностикой. - Если в SNI указать example.com, но отключить tickets на клиенте - работает. Версии nginx 1.7.0 OpenSSL 1.0.1g-freebsd 7 Apr 2014 Если убрать ssl_session_ticket_key задавать на уровне http, то всё работает. Но хочется брать tickets из файла только для одного сервера. From postmaster at softsearch.ru Tue May 6 12:55:18 2014 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 6 May 2014 16:55:18 +0400 Subject: ngx_http_memcached_module In-Reply-To: <8d323825237091f6c87f5e52e5a05ad2.NginxMailingListRussian@forum.nginx.org> References: <8d323825237091f6c87f5e52e5a05ad2.NginxMailingListRussian@forum.nginx.org> Message-ID: <1477912686.20140506165518@softsearch.ru> Здравствуйте, dant4z. > Здравствуйте! > В одном location есть директивы > set $memcached_key blablabla; > memcached_pass X.X.X.X:11211; > error_page 404 405 500 502 503 504 = @backend; > Ключ blablabla лежит в мемкэше. > На POST-запрос nginx не обращает внимания на мемкэш и проксирует его на > бэкенд. > Можно как-нибудь принудить nginx не обращать внимание на это, а если ключ > есть, то не проксировать запрос, а взять ответ из мемкеша? Включите и посмотрите debug-лог. Возможно он что-то подскажет. -- С уважением, Михаил mailto:postmaster at softsearch.ru From nginx-forum at nginx.us Tue May 6 16:29:21 2014 From: nginx-forum at nginx.us (Kirill K.) Date: Tue, 06 May 2014 12:29:21 -0400 Subject: =?UTF-8?B?0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LUg0L/QtdGA0LXQvNC10L3QvdGL0YUg?= =?UTF-8?B?JHVwc3RyZWFtKiDQsiDQtNC40YDQtdC60YLQuNCy0LUgbWFwPw==?= Message-ID: Приветствую, Пытаюсь избежать кеширования мелких ответов от апстрима таким образом: map $upstream_http_content_length $dontcache { default 0; ~^\d\d$ 1; ~^\d$ 1; } Но столкнулся с тем, что, судя по всему, nginx обрабатывает map до того, как получает заголовки от upstream, то есть переменные типа $upstream_http_content_length или $upstream_response_length получаются пустыми в момент обработки map (это видно в debug-логе, по строке "http map started"). С не-upstream переменными всё работает как задумано. Вопрос ? можно ли как-то добиться обработки map уже после похода к upstream-серверу, или надёжным ли будет решение с использованием $body_bytes_sent в качестве индикатора размера ответа апстрима? Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249869,249869#msg-249869 From citrin at citrin.ru Tue May 6 17:18:03 2014 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Tue, 06 May 2014 21:18:03 +0400 Subject: ssl_session_ticket_key and SNI In-Reply-To: <5368CB9C.1020407@citrin.ru> References: <5368CB9C.1020407@citrin.ru> Message-ID: <5369194B.8040304@citrin.ru> On 05/06/14 15:46, Anton Yuzhaninov wrote: > Желаемое поведение: > - для example.ru использовать ticket key из файла. > - для example.com (и всех остальных блоков server) использовать случайный ticket > key, генерируемый в nginx при старте. Возможно такое нельзя сделать с openssl если два сервера слушают один и тот же ip:port (протокол TLS такое должен позволять, ограничение если и есть то в openssl). Но в таком случае хотелось бы более внятной диагностики (желательно на этапе конфигурации). Молча дропать подключения из некоторых браузеров (с браузерами без поддержки session tickets данный конфиг работает) это аккуратно разложенные грабли. Аналогично нельзя в одном из серверов (на одном ip:port) прописать ssl_session_tickets off; - проблемы такие же (сообщения в логах другие, но так же мало говорящие о сути проблемы). From bogdar at gmail.com Wed May 7 15:20:57 2014 From: bogdar at gmail.com (Bogdan) Date: Wed, 7 May 2014 18:20:57 +0300 Subject: =?UTF-8?B?0JvQvtC80LDQtdGC0YHRjyBUQ1At0YHRgtGN0Log0LIgQ2VudE9TIDYsINC/0L4=?= =?UTF-8?B?0LzQvtCz0LjRgtC1INC90LDRgdGC0YDQvtC40YLRjC4=?= Message-ID: Добрый день. Есть ряд серверов с Nginx ( 1.6.0-1.el6.ngx ), PHP-FPM (5.4.27, 100-200 workers), memcached. Входящая нагрузка - 1000-1500 коннектов в секунду, может быть в пике до 2000. Исходящие соединения - подключения к локальному и удалённмы PHP-FPM примерно с той же интенсивностью. Процессоры: 2xE5-2430 (2.2Ghz, HexCore, HT) worker_processes 24 worker_connections 8192 sendfile on tcp_nopush on tcp_nodelay on listen 0.0.0.0:80 default_server backlog=32768; У меня есть мониторинг некоторых значений из /proc/net/snmp и всей TCP-части /proc/PID/net/netstat для master-процесса nginx. Типовое количество одновременно установленных (CurrEstab) TCP-коннектов в системе на момент возникновения проблем ~40k. Суть проблемы: в прайм-тайм начинают просадки производительности без перегрузки компонент системы. Т.е. процессор уходит в idle ~90%, удалённые БД простаивают и т.п. Продолжается это несколько минут, затем работа системы восстанавливается и через несколько минут всё повторяется снова. При возникновении проблемы в системе увеличивается TCP RetransSegs с 200 до 1500-2000 в секунду, количество установленных соединений уменьшается с 40 до 25 тысяч и менее. Обнаружил следующие отклонения параметров из /proc/PID/net/netstat от типовых значений: DelayedACKs - уменьшается с 3000 до 0 ListenDrops - рост от нуля до 40-50 (возможно этот и ряд других параметров луше снимать с воркеров?) ListenOverflows - рост от нуля до 30-50 TCPChallengeACK - рост от нуля до 60-80 TCPDirectCopyFromBacklog - падение с 60K до 0 TCPDirectCopyFromPrequeue - падение с 12M до 0 TCPDSACKRecv - падение со 120 до 60 TCPDSACKUndo - падение с 60 до 30 TCPFastRetrans - падение с 15 до 0 TCPForwardRetrans - падение с 15 до 0 TCPHPHits - падение с 35K TCPPrequeued - падение с 30K до нуля TCPPureAcks - падение с 10K до 4K TCPTimeouts - рост 200 до 1100-1500 Все значения - скорость, т.е. дельта показателя за одну секунду. Вот такая вот невесёлая картинка получается. Подскажите пожалуйста, что ещё стоит добавить в мониторинг и как вообще такую проблему можно исправить? sysctl (поверх дефолтного в CentOS) следующий: net.core.rmem_default=16777216 net.core.netdev_max_backlog=262144 net.core.somaxconn=262144 net.ipv4.tcp_syncookies=0 net.ipv4.tcp_max_orphans=262144 net.ipv4.tcp_max_syn_backlog=262144 net.ipv4.tcp_synack_retries=2 net.ipv4.tcp_syn_retries=2 net.ipv4.ip_local_port_range=2048 65535 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_max_tw_buckets=6000000 net.core.rmem_default=65536 net.core.wmem_default=65536 net.core.rmem_max = 33554432 net.core.wmem_max = 33554432 net.ipv4.tcp_rmem=8192 873800 8388608 net.ipv4.tcp_wmem=4096 655360 8388608 net.ipv4.tcp_fin_timeout = 7 net.ipv4.tcp_slow_start_after_idle = 0 Помимо сказанного в nginx массово падают ошибки о невозможности подключения к бэкендам FastCGI. Т.е. предполож?тельно TCP-стэк ломается не только "на вход", но и "на выход". Conntrack выключен. Ядро - 2.6.32-431.11.2.el6.x86_64 Подобное поведение проявлялось с различными версиям Nginx, PHP, ядра, раньше пробовал запускать это уже нагрузку на Debian - было ещё хуже. -- WBR, Bogdan B. Rudas -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Wed May 7 21:28:03 2014 From: nginx-forum at nginx.us (Kirill K.) Date: Wed, 07 May 2014 17:28:03 -0400 Subject: =?UTF-8?B?UmU6INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INC/0LXRgNC10LzQtdC90L0=?= =?UTF-8?B?0YvRhSAkdXBzdHJlYW0qINCyINC00LjRgNC10LrRgtC40LLQtSBtYXA/?= In-Reply-To: References: Message-ID: <61e5c82b7d3864bc26858986c0a92809.NginxMailingListRussian@forum.nginx.org> разобрались тут: http://forum.nginx.org/read.php?2,249880,249894#msg-249894 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249869,249915#msg-249915 From anatoly at sonru.com Wed May 7 21:55:12 2014 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Wed, 7 May 2014 22:55:12 +0100 Subject: digest auth Message-ID: <212D4DC4-3F8E-46C3-9EED-0339C3FC54A8@sonru.com> Digest Authentication модуль, похоже, не включен в Nginx core, интересно поддерживается ли он и проверена ли его работоспособность со свежими версиями Nginx? Анатолий From nginx-forum at nginx.us Thu May 8 08:28:04 2014 From: nginx-forum at nginx.us (dant4z) Date: Thu, 08 May 2014 04:28:04 -0400 Subject: ngx_http_memcached_module In-Reply-To: <1477912686.20140506165518@softsearch.ru> References: <1477912686.20140506165518@softsearch.ru> Message-ID: <9a7619648937291e15333fc7cb2d5a22.NginxMailingListRussian@forum.nginx.org> В логах вижу такое: 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 http script set $memcached_key 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 post rewrite phase: 4 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 generic phase: 5 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 generic phase: 6 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 limit_req[0]: 0 0.000 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 generic phase: 7 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 access phase: 8 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 access phase: 9 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 post access phase: 10 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 http finalize request: 405, "/login/?" a:1, c:1 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 http special response: 405, "/login/?" 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 test location: "@backend" 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 using location: @backend "/login/?" От мемкэша nginx получает 405 и согласно конфигу (error_page 404 405 500 502 503 504 = @backend;) отправляет запрос на бэкенд. Получается, что он пытается сделать POST в мемкэш? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249856,249928#msg-249928 From alex.barut at gmail.com Thu May 8 14:56:34 2014 From: alex.barut at gmail.com (Alex Belyansky) Date: Thu, 08 May 2014 18:56:34 +0400 Subject: ngx_http_memcached_module In-Reply-To: <9a7619648937291e15333fc7cb2d5a22.NginxMailingListRussian@forum.nginx.org> References: <1477912686.20140506165518@softsearch.ru> <9a7619648937291e15333fc7cb2d5a22.NginxMailingListRussian@forum.nginx.org> Message-ID: <536B9B22.2070809@gmail.com> Все верно, пытается сделать POST в Memcache но получает ответ что метод не поддерживается. Memcache - это только GET запросы от пользователей, по какому-то ключу. Сам Nginx непосредственно не умеет писать данные в мемкеш - http://nginx.org/ru/docs/http/ngx_http_memcached_module.html. Судя по урлу "/login/?" вы отправляете какие-то авторизационные данные на сервер. А как по вашему Memcache должен авторизовывать вашего пользователя? On 08.05.2014 12:28, dant4z wrote: > В логах вижу такое: > > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 http script set > $memcached_key > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 post rewrite phase: 4 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 generic phase: 5 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 generic phase: 6 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 limit_req[0]: 0 0.000 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 generic phase: 7 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 access phase: 8 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 access phase: 9 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 post access phase: 10 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 http finalize request: 405, > "/login/?" a:1, c:1 > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 http special response: 405, > "/login/?" > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 test location: "@backend" > 2014/05/08 08:19:21 [debug] 23252#0: *1250620310 using location: @backend > "/login/?" > > От мемкэша nginx получает 405 и согласно конфигу (error_page 404 405 500 502 > 503 504 = @backend;) отправляет запрос на бэкенд. Получается, что он > пытается сделать POST в мемкэш? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249856,249928#msg-249928 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From alex.barut at gmail.com Thu May 8 15:19:35 2014 From: alex.barut at gmail.com (Alex Belyansky) Date: Thu, 08 May 2014 19:19:35 +0400 Subject: ngx_http_memcached_module In-Reply-To: <8d323825237091f6c87f5e52e5a05ad2.NginxMailingListRussian@forum.nginx.org> References: <8d323825237091f6c87f5e52e5a05ad2.NginxMailingListRussian@forum.nginx.org> Message-ID: <536BA087.20100@gmail.com> Нашел предыдущее сообщение. Не совсем понятно чего вы добиться хотите? Если "blablabla" - это константа, то тогда из Memcached будет всегда отдаваться одно и то же значение на любой запрос пришедший в локейшен (главное чтобы метод был GET). On 06.05.2014 12:00, dant4z wrote: > Здравствуйте! > В одном location есть директивы > set $memcached_key blablabla; > memcached_pass X.X.X.X:11211; > error_page 404 405 500 502 503 504 = @backend; > > Ключ blablabla лежит в мемкэше. > На POST-запрос nginx не обращает внимания на мемкэш и проксирует его на > бэкенд. > Можно как-нибудь принудить nginx не обращать внимание на это, а если ключ > есть, то не проксировать запрос, а взять ответ из мемкеша? > > Спасибо. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249856,249856#msg-249856 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Fri May 9 05:45:40 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 9 May 2014 09:45:40 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5IG1ldGhvZCDQvdC1INC/0L7QtNC00LXRgNC20LjQstCw0LXRgiA=?= =?UTF-8?B?0LTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC30L3QsNGH0LXQvdC40Y8=?= In-Reply-To: References: Message-ID: <20140509054540.GW1849@mdounin.ru> Hello! On Mon, May 05, 2014 at 05:52:17AM -0400, dimik wrote: > Пытаюсь использовать значение в директиве proxy_method из http-заголовка > X-HTTP-Method > proxy_method $http_x_http_method; > И это не работает. > > Как можно использовать данную возможность? > Версия 1.5.12 Данной возможности нет - директива proxy_method переменные не поддерживает. -- Maxim Dounin http://nginx.org/ From mdounin at mdounin.ru Fri May 9 06:15:43 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 9 May 2014 10:15:43 +0400 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCBuZ2lueCDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINCx?= =?UTF-8?B?0LvQvtC60LjRgNGD0Y7RidC10Lkg0L7Qv9C10YDQsNGG0LjQtdC5?= In-Reply-To: References: <20140430141854.GH34696@mdounin.ru> Message-ID: <20140509061543.GY1849@mdounin.ru> Hello! On Thu, May 01, 2014 at 07:45:02AM -0400, saaleb wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Hello! > > > > On Tue, Apr 29, 2014 at 04:51:18PM -0400, saaleb wrote: > > > > > И снова здравствуйте. > > > > > > Изучал upstream модули как идущие в комплекте, так и сторонние, но > > есть > > > некоторые неясные моменты. > > > > > > 1. create_request - тут создаем запрос, передаем его upstream. > > Немного > > > непонятно, как именно идет взаимодействие с upstream. Мне, например, > > > требуется сформировать структуру из запроса и вызвать определенную > > функцию > > > из сторонней библиотеки. Назовем ее send(). Могу ли я вызвать эту > > функцию из > > > create_request или нужно использовать более низкий уровень для > > совмещения > > > моего send() и механизма работы с upstream? > > > > Взаимодействием собственно с бекендами занимается сам модуль upstream. > > > > Задача реализации протокола - сформировать запрос, который будет > > отправлен. > > > > Если вам требуется для отправки запроса использовать стороннюю > > библиотеку - модуль upstream вам не подойдёт. > > Хорошо. Какой тогда существует путь в nginx для взаимодействия со сторонней > библиотекой, учитывая, что время ответа не отпределено, т.е. надо как-то > обрабатывать таймауты. Точно так же, как это делает, например, тот же модуль upstream - взводить таймер, и возвращать ошибку при его срабатывании. Основной вопрос - это умеет ли библиотека работать с неблокирующимися сокетами, и умеет ли эти самые сокеты отдавать наружу, чтобы их можно было встроить в event loop nginx'а. Если не умеет - то надо учить. Впрочем, даже если умеет - задача не то чтобы тривиальная. Зачастую проще и правильнее выкинуть библиотеку, и реализовать собственно сам протокол в рамках модуля upstream. -- Maxim Dounin http://nginx.org/ From mdounin at mdounin.ru Fri May 9 06:20:30 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 9 May 2014 10:20:30 +0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0LUg0L/QvtCy0LXQtNC10L3QuNC1INC4IDUwMiA=?= =?UTF-8?B?0L7RiNC40LHQutCw?= In-Reply-To: References: Message-ID: <20140509062030.GZ1849@mdounin.ru> Hello! On Sat, May 03, 2014 at 09:57:31AM -0400, justcyber wrote: > Имеется аналогичная проблема: > 2014/05/03 17:41:45 [error] 1118#0: *2585 upstream prematurely closed > connection while reading response header from upstream, client: > 112.123.168.55, server: goodwing.ru, request: "POST /wp-comments-post.php > HTTP/1.0", upstream: "http://xx.xx.xx.xx:80/wp-comments-post.php", host: > "site.ru", referrer: "http://site.ru/2012/10/28/welcome/#comment-17681 Сообщение чётко и однозначно говорит, что бекенд закрыл соединение в процессе чтения заголовков ответа от бекенда. Почему и отчего он это сделал - надо смотреть на бекенде. -- Maxim Dounin http://nginx.org/ From mdounin at mdounin.ru Fri May 9 06:36:43 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 9 May 2014 10:36:43 +0400 Subject: ssl_session_ticket_key and SNI In-Reply-To: <5368CB9C.1020407@citrin.ru> References: <5368CB9C.1020407@citrin.ru> Message-ID: <20140509063643.GA1849@mdounin.ru> Hello! On Tue, May 06, 2014 at 03:46:36PM +0400, Anton Yuzhaninov wrote: > Здравствуйте! > > Наблюдаю проблему с таким конфигом: > > http { > default_type text/plain; > > access_log logs/access.log combined; > > > server { > server_name example.ru; > listen 443 default; > > ssl on; > ssl_certificate example.ru.crt; > ssl_certificate_key example.ru.key; > > ssl_session_ticket_key ticket.key; > > location / { > return 200 "example.ru\n"; > } > } > > server { > server_name example.com; > listen 443; > > ssl on; > ssl_certificate example.com.crt; > ssl_certificate_key example.com.key; > > location / { > return 200 "example.com\n"; > } > } > } > > Желаемое поведение: > - для example.ru использовать ticket key из файла. > - для example.com (и всех остальных блоков server) использовать случайный > ticket key, генерируемый в nginx при старте. > > Что наблюдается: > - Без SNI работает и отдается сертификат example.ru > - Если в SNI указать example.ru - работает и отдается сертификат example.ru > - Если в SNI указать example.com - соединение рвётся с очень неясной диагностикой. > - Если в SNI указать example.com, но отключить tickets на клиенте - работает. > > Версии > nginx 1.7.0 > OpenSSL 1.0.1g-freebsd 7 Apr 2014 > > Если убрать ssl_session_ticket_key задавать на уровне http, то всё работает. > Но хочется брать tickets из файла только для одного сервера. В OpenSSL всё очень плохо в части кеширования сессий (что с тикетами, что без) при использовании SNI. Когда я последний раз на это смотрел - ушёл из кода OpenSSL с желанием это развидеть, и стойким ощущением, что не надо искать неприятностей и пытаться делать разные настройки кеширования в разных SNI-серверах. -- Maxim Dounin http://nginx.org/ From nginx-forum at nginx.us Fri May 9 07:43:07 2014 From: nginx-forum at nginx.us (sality) Date: Fri, 09 May 2014 03:43:07 -0400 Subject: =?UTF-8?B?0JrQtdGI0LjRgNC+0LLQsNC90LjQtSDQktC40LTQtdC+INCyIG5naW54?= Message-ID: <549a2bd636a9301648359d7267a642ef.NginxMailingListRussian@forum.nginx.org> Добрый день подскажите пожалуйста как настраивается кеширование видео файлов, есть пример конфигурации он работает, но работает не верно, складирует кеш на ссд винчестер и забивает его до отказа, а потом вешает службу nginx. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249979,249979#msg-249979 From nginx-forum at nginx.us Fri May 9 07:45:25 2014 From: nginx-forum at nginx.us (Dzurillo) Date: Fri, 09 May 2014 03:45:25 -0400 Subject: =?UTF-8?B?cmV3cml0ZSDQuCDRgNGD0YHRgdC60LjQtSDQsdGD0LrQstGLINCyIHVyaQ==?= Message-ID: Здравствуйте! Мне нужно сделать со стороны Nginx такую вещь: если пришла ссылка вида /some/url/param/id/value/other/param/ то взять значение параметра id, т.е. id=value и передать его дальше в скрипт, как переменную # правило для указания ?id=value для ссылок вида /gallery/id/username rewrite ^(.*)\/id\/(\w+)(\/)? $uri?id=$2 last; Это хорошо работает для латинских символов, но не работает для русских :( Например, если зайти по ссылке http://mysite/profile/id/Гость, то REQUEST_URI' => string '/profile/id/%D0%93%D0%BE%D1%81%D1%82%D1%8C' 'QUERY_STRING' => string '' а для http://mysite/profile/id/guest: 'REQUEST_URI' => string '/profile/id/guest' 'QUERY_STRING' => string 'id=guest' Собственно вопрос - как подружить rewrite и русские закодированные буквы в uri? Спасибо. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249980,249980#msg-249980 From anatoly at sonru.com Fri May 9 11:17:20 2014 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Fri, 9 May 2014 12:17:20 +0100 Subject: =?UTF-8?B?UmU6INCa0LXRiNC40YDQvtCy0LDQvdC40LUg0JLQuNC00LXQviDQsiBuZ2lueA==?= In-Reply-To: <549a2bd636a9301648359d7267a642ef.NginxMailingListRussian@forum.nginx.org> References: <549a2bd636a9301648359d7267a642ef.NginxMailingListRussian@forum.nginx.org> Message-ID: Как настраивается зависит от задачи и условий инвалидации кэша, инвалидировать можно руками или по таймауту. Но по описанию вашей проблемы очевидно, что лимит на кэш превышает размер диска. Чтобы не давать ненужных советов, приведите вашу Nginx конфигурацию и укажите какой размер вашего диска и желаемый размер кэша. Анатолий On 09 May 2014, at 08:43, sality wrote: > Добрый день подскажите пожалуйста как настраивается кеширование видео > файлов, есть пример конфигурации он работает, но работает не верно, > складирует кеш на ссд винчестер и забивает его до отказа, а потом вешает > службу nginx. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249979,249979#msg-249979 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Mon May 12 04:56:43 2014 From: nginx-forum at nginx.us (dant4z) Date: Mon, 12 May 2014 00:56:43 -0400 Subject: ngx_http_memcached_module In-Reply-To: <536BA087.20100@gmail.com> References: <536BA087.20100@gmail.com> Message-ID: <9e5ad3d19d6510b4d9843475a818887e.NginxMailingListRussian@forum.nginx.org> blablabla - это ключ, в котором запихан IP и другие данные, ключ запихивается туда бэкендом. Мне нужно, чтобы даже если приходит POST запрос в /login/, если есть такой ключ в мемкэшэ, то не пытаться туда его запостить, а отдать содержимое ключа. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249856,250018#msg-250018 From nginx-forum at nginx.us Mon May 12 06:28:33 2014 From: nginx-forum at nginx.us (dimik) Date: Mon, 12 May 2014 02:28:33 -0400 Subject: =?UTF-8?B?UmU6IHByb3h5IG1ldGhvZCDQvdC1INC/0L7QtNC00LXRgNC20LjQstCw0LXRgiA=?= =?UTF-8?B?0LTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC30L3QsNGH0LXQvdC40Y8=?= In-Reply-To: <20140509054540.GW1849@mdounin.ru> References: <20140509054540.GW1849@mdounin.ru> Message-ID: <91c7ffc099d26ce58de5df27cd051a7a.NginxMailingListRussian@forum.nginx.org> есть какой-нибудь workaround? Может стоит сделать поддержку? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249967,250020#msg-250020 From vbart at nginx.com Mon May 12 09:38:21 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Mon, 12 May 2014 13:38:21 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5IG1ldGhvZCDQvdC1INC/0L7QtNC00LXRgNC20LjQstCw0LXRgiA=?= =?UTF-8?B?0LTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC30L3QsNGH0LXQvdC40Y8=?= In-Reply-To: <91c7ffc099d26ce58de5df27cd051a7a.NginxMailingListRussian@forum.nginx.org> References: <20140509054540.GW1849@mdounin.ru> <91c7ffc099d26ce58de5df27cd051a7a.NginxMailingListRussian@forum.nginx.org> Message-ID: <3817242.H83LRsX5ip@vbart-workstation> On Monday 12 May 2014 02:28:33 dimik wrote: > есть какой-нибудь workaround? > > Может стоит сделать поддержку? > А usecase у вас какой? -- Валентин Бартенев From bogdar at gmail.com Tue May 13 18:00:57 2014 From: bogdar at gmail.com (Bogdan) Date: Tue, 13 May 2014 21:00:57 +0300 Subject: =?UTF-8?B?0J/RgNC4INC/0YDQvtC60YHQuNGA0L7QstCw0L3QuNC4INGA0LXQtNC40YDQtdC6?= =?UTF-8?B?0YLQsCDQvtGC0LTQsNGR0YLRgdGPIElQLdCw0LTRgNC10YEg0LrQu9C40LU=?= =?UTF-8?B?0L3RgtCwLg==?= Message-ID: Добрый день. Nginx 1.6.0, за ним апач. Запрос к httpd: GET /pma HTTP/1.1 Host: host.tld HTTP/1.1 301 Moved Permanently Date: Tue, 13 May 2014 17:45:39 GMT Server: Apache/2.2.15 (CentOS) Location: http://host.tld/pma/ Content-Length: 236 Connection: close Content-Type: text/html; charset=iso-8859-1 Аналогичный запрос к nginx: GET /pma HTTP/1.1 Host: host.tld HTTP/1.1 301 Moved Permanently Server: nginx/1.6.0 Date: Tue, 13 May 2014 17:47:33 GMT Content-Type: text/html; charset=iso-8859-1 Content-Length: 233 Connection: keep-alive Location: http://1.2.3.4/pma/ Где 1.2.3.4 - IP-адрес клиента который посылал запрос. HTML-часть в обоих случаях пропустил, заголовкам она соответствует. Вот конфигурация виртуального хоста. server { listen 11.22.33.44:80 default_server; server_name _; access_log /var/log/nginx/default.access.log main; server_name_in_redirect off; location / { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:80; } } Включение server_name_in_redirect и proxy_redirect default какого-то видимого эффекта не оказали, всё равно в ответе фигурирует IP-адрес клиента. В качестве клиента использовал telnet. -- WBR, Bogdan B. Rudas -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Tue May 13 18:18:45 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 13 May 2014 22:18:45 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQuCDQv9GA0L7QutGB0LjRgNC+0LLQsNC90LjQuCDRgNC10LTQuNGA?= =?UTF-8?B?0LXQutGC0LAg0L7RgtC00LDRkdGC0YHRjyBJUC3QsNC00YDQtdGBINC60Ls=?= =?UTF-8?B?0LjQtdC90YLQsC4=?= In-Reply-To: References: Message-ID: <20140513181845.GU1849@mdounin.ru> Hello! On Tue, May 13, 2014 at 09:00:57PM +0300, Bogdan wrote: > Добрый день. > > Nginx 1.6.0, за ним апач. > > Запрос к httpd: > > GET /pma HTTP/1.1 > Host: host.tld > > HTTP/1.1 301 Moved Permanently > Date: Tue, 13 May 2014 17:45:39 GMT > Server: Apache/2.2.15 (CentOS) > Location: http://host.tld/pma/ > Content-Length: 236 > Connection: close > Content-Type: text/html; charset=iso-8859-1 > > Аналогичный запрос к nginx: > > GET /pma HTTP/1.1 > Host: host.tld > > HTTP/1.1 301 Moved Permanently > Server: nginx/1.6.0 > Date: Tue, 13 May 2014 17:47:33 GMT > Content-Type: text/html; charset=iso-8859-1 > Content-Length: 233 > Connection: keep-alive > Location: http://1.2.3.4/pma/ > > Где 1.2.3.4 - IP-адрес клиента который посылал запрос. > HTML-часть в обоих случаях пропустил, заголовкам она соответствует. > > Вот конфигурация виртуального хоста. > > server { > listen 11.22.33.44:80 default_server; > server_name _; > access_log /var/log/nginx/default.access.log main; > > server_name_in_redirect off; > > location / { > proxy_redirect off; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For > $proxy_add_x_forwarded_for; > proxy_set_header X-Forwarded-Proto $scheme; > proxy_set_header Host $http_host; > proxy_pass http://127.0.0.1:80; > } > } > > Включение server_name_in_redirect и proxy_redirect default какого-то > видимого эффекта не оказали, всё равно в ответе фигурирует IP-адрес > клиента. В качестве клиента использовал telnet. Я бы для начала убедился, что используется именно эта конфигурация. Если судить по симптомам - редиректу на ip-адрес клиента - используется конфигурация, в которой написано что-то вроде proxy_set_header Host $remote_addr; что и приводит к подобному эффекту. -- Maxim Dounin http://nginx.org/ From bogdar at gmail.com Tue May 13 18:57:14 2014 From: bogdar at gmail.com (Bogdan) Date: Tue, 13 May 2014 21:57:14 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQuCDQv9GA0L7QutGB0LjRgNC+0LLQsNC90LjQuCDRgNC10LTQuNGA?= =?UTF-8?B?0LXQutGC0LAg0L7RgtC00LDRkdGC0YHRjyBJUC3QsNC00YDQtdGBINC60Ls=?= =?UTF-8?B?0LjQtdC90YLQsC4=?= In-Reply-To: <20140513181845.GU1849@mdounin.ru> References: <20140513181845.GU1849@mdounin.ru> Message-ID: Проблема оказалась на стороне httpd, mod_rpaf был криво настроен. Прошу прощения за лишнее беспокойство. 2014-05-13 21:18 GMT+03:00 Maxim Dounin : > Hello! > > On Tue, May 13, 2014 at 09:00:57PM +0300, Bogdan wrote: > > > Добрый день. > > > > Nginx 1.6.0, за ним апач. > > > > Запрос к httpd: > > > > GET /pma HTTP/1.1 > > Host: host.tld > > > > HTTP/1.1 301 Moved Permanently > > Date: Tue, 13 May 2014 17:45:39 GMT > > Server: Apache/2.2.15 (CentOS) > > Location: http://host.tld/pma/ > > Content-Length: 236 > > Connection: close > > Content-Type: text/html; charset=iso-8859-1 > > > > Аналогичный запрос к nginx: > > > > GET /pma HTTP/1.1 > > Host: host.tld > > > > HTTP/1.1 301 Moved Permanently > > Server: nginx/1.6.0 > > Date: Tue, 13 May 2014 17:47:33 GMT > > Content-Type: text/html; charset=iso-8859-1 > > Content-Length: 233 > > Connection: keep-alive > > Location: http://1.2.3.4/pma/ > > > > Где 1.2.3.4 - IP-адрес клиента который посылал запрос. > > HTML-часть в обоих случаях пропустил, заголовкам она соответствует. > > > > Вот конфигурация виртуального хоста. > > > > server { > > listen 11.22.33.44:80 default_server; > > server_name _; > > access_log /var/log/nginx/default.access.log main; > > > > server_name_in_redirect off; > > > > location / { > > proxy_redirect off; > > proxy_set_header X-Real-IP $remote_addr; > > proxy_set_header X-Forwarded-For > > $proxy_add_x_forwarded_for; > > proxy_set_header X-Forwarded-Proto $scheme; > > proxy_set_header Host $http_host; > > proxy_pass http://127.0.0.1:80; > > } > > } > > > > Включение server_name_in_redirect и proxy_redirect default какого-то > > видимого эффекта не оказали, всё равно в ответе фигурирует IP-адрес > > клиента. В качестве клиента использовал telnet. > > Я бы для начала убедился, что используется именно эта > конфигурация. > > Если судить по симптомам - редиректу на ip-адрес клиента - > используется конфигурация, в которой написано что-то вроде > > proxy_set_header Host $remote_addr; > > что и приводит к подобному эффекту. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- WBR, Bogdan B. Rudas -------------- next part -------------- An HTML attachment was scrubbed... URL: From alex.barut at gmail.com Wed May 14 06:36:35 2014 From: alex.barut at gmail.com (Alex Belyansky) Date: Wed, 14 May 2014 10:36:35 +0400 Subject: ngx_http_memcached_module In-Reply-To: <9e5ad3d19d6510b4d9843475a818887e.NginxMailingListRussian@forum.nginx.org> References: <536BA087.20100@gmail.com> <9e5ad3d19d6510b4d9843475a818887e.NginxMailingListRussian@forum.nginx.org> Message-ID: <53730EF3.5000006@gmail.com> Это тогда надо переписать модуль /src/http/modules/ngx_http_memcached_module.c Вот здесь: ngx_http_memcached_handler(ngx_http_request_t *r) { ngx_int_t rc; ngx_http_upstream_t *u; ngx_http_memcached_ctx_t *ctx; ngx_http_memcached_loc_conf_t *mlcf; if (!(r->method & (NGX_HTTP_GET|NGX_HTTP_HEAD))) { return NGX_HTTP_NOT_ALLOWED; } Т.е. по сути именно здесь описано поведение, когда приходит POST запрос в модуль. Если метод ни GET, ни HEAD, то сразу вернуть что метод не поддерживается. Но это мне кажется будет грубый хак. Причем насколько я помню, то метод запроса нельзя изменить, даже через реврайты (если это не так, то пусть более опытные меня поправят). POST-запросы обязательно должны уходить куда-то на динамику через proxy_pass. Без напилника добиться того что вы хотите не получится. On 12.05.2014 08:56, dant4z wrote: > blablabla - это ключ, в котором запихан IP и другие данные, ключ > запихивается туда бэкендом. Мне нужно, чтобы даже если приходит POST запрос > в /login/, если есть такой ключ в мемкэшэ, то не пытаться туда его > запостить, а отдать содержимое ключа. > > Posted at Nginx Forum:http://forum.nginx.org/read.php?21,249856,250018#msg-250018 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From vbart at nginx.com Wed May 14 07:26:39 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 14 May 2014 11:26:39 +0400 Subject: ngx_http_memcached_module In-Reply-To: <53730EF3.5000006@gmail.com> References: <536BA087.20100@gmail.com> <9e5ad3d19d6510b4d9843475a818887e.NginxMailingListRussian@forum.nginx.org> <53730EF3.5000006@gmail.com> Message-ID: <2029308.2gSFDntv5X@vbart-laptop> On Wednesday 14 May 2014 10:36:35 Alex Belyansky wrote: [..] > > Причем насколько я помню, то метод запроса нельзя изменить, даже через > реврайты (если это не так, то пусть более опытные меня поправят). > POST-запросы обязательно должны уходить куда-то на динамику через > proxy_pass. > > Без напилника добиться того что вы хотите не получится. > [..] error_page 405 $uri; На $uri уже пойдет GET. -- Валентин Бартенев From undying-m at yandex.ru Wed May 14 08:58:39 2014 From: undying-m at yandex.ru (Den Bozhok) Date: Wed, 14 May 2014 12:58:39 +0400 Subject: multiple access_log with variables in the file path Message-ID: <669531400057919@web7g.yandex.ru> An HTML attachment was scrubbed... URL: From pluknet at nginx.com Wed May 14 09:19:59 2014 From: pluknet at nginx.com (Sergey Kandaurov) Date: Wed, 14 May 2014 13:19:59 +0400 Subject: multiple access_log with variables in the file path In-Reply-To: <669531400057919@web7g.yandex.ru> References: <669531400057919@web7g.yandex.ru> Message-ID: <7E1BFEB8-4BAF-4550-8520-5AFCA628BCFC@nginx.com> On May 14, 2014, at 12:58 PM, Den Bozhok wrote: > Доброго дня! > > Пытаюсь настроить в nginx несколько access логов для сервера. > Имеется два разных формата лога, поэтому хочется писать сразу два лога одновременно. В классической конфигурации все работает: > > access_log /var/log/nginx/name.access.log format1; > access_log /var/log/nginx/name.access.json format2; > > Но если попробовать дело оптимизировать примерно так: > > set $name log1; > > access_log /var/log/nginx/$name.access.log format1; > access_log /var/log/nginx/$name.access.json format2; > > То запись идет только в один файл и что бы я не делал, во второй файл никаких логов не падает. Можно ли как то решить эту проблему с переменными? > Я бы попробовал для начала собрать nginx без 3rd party modules. nginx version: nginx/1.5.12 log_format format1 "$uri:$status"; log_format format2 "$uri:$scheme?; location /rwlog { set $name log1; access_log /path/to/$name.access.log format1; access_log /path/to/$name.access.json format2; } curl 127.0.0.1:8080/rwlog log1.access.log /rwlog:404 log1.access.json /rwlog:http -- Sergey Kandaurov From nginx-forum at nginx.us Wed May 14 11:59:01 2014 From: nginx-forum at nginx.us (sebor) Date: Wed, 14 May 2014 07:59:01 -0400 Subject: =?UTF-8?B?0J3QsNGB0YLRgNC+0LnQutCwINCx0LDQu9Cw0L3RgdC40YDQvtCy0LrQuCDRgSA=?= =?UTF-8?B?0L/RgNC+0LrRgdC40YDQvtCy0LDQvdC40LXQvA==?= Message-ID: Приветствую! Имеется связка tomcat+nginx. На томкате установлена opencms и имеется мультисайтовость: т.е. имеется несколько http коннекторов: и т.д. Соответственно в Nginx'e имеется проксирование: server { listen 80; server_name www.site1.ru; gzip off; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain application/xml text/css; access_log logs/host.www.site1.ru.access.log main buffer=32k; location /export/ { proxy_pass 127.0.0.1:8081/export/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /resources/ { proxy_pass 127.0.0.1:8081/resources/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /opencms/ { rewrite ^/opencms/(.*)$ www.site1.ru/$1 permanent; } location / { root html; index index.html index.htm; proxy_pass 127.0.0.1:8081/opencms/; client_max_body_size 200m; client_body_buffer_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } и .т.п. Т.е. на каждый сайт забинден свой порт. Вопрос возник следующий: как сделать балансировку на кластер томкатов? Допустим, я сделаю так: upstream appservers { server tomcat1 server tomcat2 } server { location / { proxy_pass http://appservers; } } Тогда как передать часть uri и порт? Как я понял из доки, написать proxy_pass appservers:8081/export нельзя. Можно ли как-то решить это? Была идея поставить на каждый томкат в кластере свой nginx и потом каждый из них добавить в группу для балансировки у главного (который и будет смотреть наружу). Идея рабочая, но не рациональная) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250076,250076#msg-250076 From nginx-forum at nginx.us Wed May 14 14:34:46 2014 From: nginx-forum at nginx.us (dant4z) Date: Wed, 14 May 2014 10:34:46 -0400 Subject: ngx_http_memcached_module In-Reply-To: <2029308.2gSFDntv5X@vbart-laptop> References: <2029308.2gSFDntv5X@vbart-laptop> Message-ID: <1885885ea12f6e36da7fa81b1e07cd35.NginxMailingListRussian@forum.nginx.org> Валентин Бартенев Wrote: ------------------------------------------------------- > On Wednesday 14 May 2014 10:36:35 Alex Belyansky wrote: > [..] > > > > Причем насколько я помню, то метод запроса нельзя изменить, даже > через > > реврайты (если это не так, то пусть более опытные меня поправят). > > POST-запросы обязательно должны уходить куда-то на динамику через > > proxy_pass. > > > > Без напилника добиться того что вы хотите не получится. > > > [..] > > error_page 405 $uri; > > На $uri уже пойдет GET. > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru на $uri пойдет GET. Дальше, если в мемкэше не окажется этого ключа, то будет 404 и на бэкенд пойдет GET вместо POST, так? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249856,250078#msg-250078 From mdounin at mdounin.ru Wed May 14 15:06:16 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 14 May 2014 19:06:16 +0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCDQsdCw0LvQsNC90YHQuNGA0L7QstC60Lgg?= =?UTF-8?B?0YEg0L/RgNC+0LrRgdC40YDQvtCy0LDQvdC40LXQvA==?= In-Reply-To: References: Message-ID: <20140514150616.GX1849@mdounin.ru> Hello! On Wed, May 14, 2014 at 07:59:01AM -0400, sebor wrote: [...] > Т.е. на каждый сайт забинден свой порт. > Вопрос возник следующий: как сделать балансировку на кластер томкатов? > Допустим, я сделаю так: > upstream appservers { > server tomcat1 > server tomcat2 > } > server { > location / { > proxy_pass http://appservers; > } > } > Тогда как передать часть uri и порт? Как я понял из доки, написать > proxy_pass appservers:8081/export нельзя. Можно ли как-то решить это? Совершенно правильно поняли - в случае использования групп серверов порты указываются в директивах server, а не в proxy_pass. Соответственно, нужно делать блок upstream{} для каждого порта свой, как-то так: upstream appservers8081 { server tomcat1:8081; server tomcat2:8081; } И соответственно proxy_pass http://appservers8081/export; -- Maxim Dounin http://nginx.org/ From nginx-forum at nginx.us Wed May 14 15:28:38 2014 From: nginx-forum at nginx.us (sebor) Date: Wed, 14 May 2014 11:28:38 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCDQsdCw0LvQsNC90YHQuNGA0L7QstC60Lgg?= =?UTF-8?B?0YEg0L/RgNC+0LrRgdC40YDQvtCy0LDQvdC40LXQvA==?= In-Reply-To: <20140514150616.GX1849@mdounin.ru> References: <20140514150616.GX1849@mdounin.ru> Message-ID: <73e999bd58f50ebf9ee11e581f755170.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Wed, May 14, 2014 at 07:59:01AM -0400, sebor wrote: > > [...] > > > Т.е. на каждый сайт забинден свой порт. > > Вопрос возник следующий: как сделать балансировку на кластер > томкатов? > > Допустим, я сделаю так: > > upstream appservers { > > server tomcat1 > > server tomcat2 > > } > > server { > > location / { > > proxy_pass http://appservers; > > } > > } > > Тогда как передать часть uri и порт? Как я понял из доки, написать > > proxy_pass appservers:8081/export нельзя. Можно ли как-то решить > это? > > Совершенно правильно поняли - в случае использования групп > серверов порты указываются в директивах server, а не в proxy_pass. > Соответственно, нужно делать блок upstream{} для каждого порта > свой, как-то так: > > upstream appservers8081 { > server tomcat1:8081; > server tomcat2:8081; > } > > И соответственно > > proxy_pass http://appservers8081/export; > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Т.е. для каждого порта прописывать свою группу? В моем случае выйдет немного накладно, т.к. портов довольно много. А по поводу uri - не уверен, что можно его указывать прямо за группой. Над проверить Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250076,250081#msg-250081 From vbart at nginx.com Wed May 14 15:28:44 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 14 May 2014 19:28:44 +0400 Subject: ngx_http_memcached_module In-Reply-To: <1885885ea12f6e36da7fa81b1e07cd35.NginxMailingListRussian@forum.nginx.org> References: <2029308.2gSFDntv5X@vbart-laptop> <1885885ea12f6e36da7fa81b1e07cd35.NginxMailingListRussian@forum.nginx.org> Message-ID: <15388439.hB91AyTC6f@vbart-workstation> On Wednesday 14 May 2014 10:34:46 dant4z wrote: [..] > > на $uri пойдет GET. Дальше, если в мемкэше не окажется этого ключа, то будет > 404 и на бэкенд пойдет GET вместо POST, так? > Так. -- Валентин Бартенев From mdounin at mdounin.ru Wed May 14 15:36:14 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 14 May 2014 19:36:14 +0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCDQsdCw0LvQsNC90YHQuNGA0L7QstC60Lgg?= =?UTF-8?B?0YEg0L/RgNC+0LrRgdC40YDQvtCy0LDQvdC40LXQvA==?= In-Reply-To: <73e999bd58f50ebf9ee11e581f755170.NginxMailingListRussian@forum.nginx.org> References: <20140514150616.GX1849@mdounin.ru> <73e999bd58f50ebf9ee11e581f755170.NginxMailingListRussian@forum.nginx.org> Message-ID: <20140514153613.GB1849@mdounin.ru> Hello! On Wed, May 14, 2014 at 11:28:38AM -0400, sebor wrote: [...] > Т.е. для каждого порта прописывать свою группу? В моем случае выйдет немного > накладно, т.к. портов довольно много. Накладно - всмысле печатать много? Простое альтернативное решение - заведите доменное имя с двумя A-записями, и просто пишите его в proxy_pass (с указанием нужного порта). В этом случае nginx создаст соответсвующие блоки upstream{} сам, неявно. > А по поводу uri - не уверен, что можно > его указывать прямо за группой. Над проверить Можно. -- Maxim Dounin http://nginx.org/ From nginx-forum at nginx.us Wed May 14 16:33:35 2014 From: nginx-forum at nginx.us (dant4z) Date: Wed, 14 May 2014 12:33:35 -0400 Subject: ngx_http_memcached_module In-Reply-To: <15388439.hB91AyTC6f@vbart-workstation> References: <15388439.hB91AyTC6f@vbart-workstation> Message-ID: > > > > на $uri пойдет GET. Дальше, если в мемкэше не окажется этого ключа, > то будет > > 404 и на бэкенд пойдет GET вместо POST, так? > > > > Так. Получается, что стандартными средствами nginx'а не получится GET в memcache и на 404 POST в бэкенд? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249856,250087#msg-250087 From nginx-forum at nginx.us Thu May 15 06:23:12 2014 From: nginx-forum at nginx.us (sebor) Date: Thu, 15 May 2014 02:23:12 -0400 Subject: =?UTF-8?B?UmU6INCd0LDRgdGC0YDQvtC50LrQsCDQsdCw0LvQsNC90YHQuNGA0L7QstC60Lgg?= =?UTF-8?B?0YEg0L/RgNC+0LrRgdC40YDQvtCy0LDQvdC40LXQvA==?= In-Reply-To: <20140514153613.GB1849@mdounin.ru> References: <20140514153613.GB1849@mdounin.ru> Message-ID: <42b1e72f3cbbd4bd52833f6a7da0b228.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Wed, May 14, 2014 at 11:28:38AM -0400, sebor wrote: > > [...] > > > Т.е. для каждого порта прописывать свою группу? В моем случае выйдет > немного > > накладно, т.к. портов довольно много. > > Накладно - всмысле печатать много? > > Простое альтернативное решение - заведите доменное имя с двумя > A-записями, и просто пишите его в proxy_pass (с указанием нужного > порта). В этом случае nginx создаст соответсвующие блоки > upstream{} сам, неявно. > > > А по поводу uri - не уверен, что можно > > его указывать прямо за группой. Над проверить > > Можно. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Спасибо, попробую. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250076,250102#msg-250102 From nginx-forum at nginx.us Thu May 15 07:59:36 2014 From: nginx-forum at nginx.us (Neighb0ur) Date: Thu, 15 May 2014 03:59:36 -0400 Subject: =?UTF-8?B?bmdpbngg0LrQsNC6IFRMUyDRgtC10YDQvNC40L3QsNGC0L7RgCDQtNC70Y8g0L0=?= =?UTF-8?B?0LUtSFRUUFMg0YLRgNCw0YTRhNC40LrQsA==?= Message-ID: Можно ли Nginx использовать как TLS терминатор для Diameter (не HTTPS) траффика? Diameter - это бинарный асинхронный connection-oriented протокол поверх TCP (SCTP не будем здесь рассматривать) Т.е. вот что требуется: Client -> (TLS over Diameter over TCP) -> nginx -> (Diameter over TCP) -> Diameter server. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250104,250104#msg-250104 From chipitsine at gmail.com Thu May 15 10:27:12 2014 From: chipitsine at gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 15 May 2014 16:27:12 +0600 Subject: =?UTF-8?B?UmU6IG5naW54INC60LDQuiBUTFMg0YLQtdGA0LzQuNC90LDRgtC+0YAg0LTQu9GP?= =?UTF-8?B?INC90LUtSFRUUFMg0YLRgNCw0YTRhNC40LrQsA==?= In-Reply-To: References: Message-ID: stunnel ? 15 мая 2014 г., 13:59 пользователь Neighb0ur написал: > Можно ли Nginx использовать как TLS терминатор для Diameter (не HTTPS) > траффика? > Diameter - это бинарный асинхронный connection-oriented протокол поверх TCP > (SCTP не будем здесь рассматривать) > > Т.е. вот что требуется: > Client -> (TLS over Diameter over TCP) -> nginx -> (Diameter over TCP) -> > Diameter server. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250104,250104#msg-250104 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Thu May 15 11:22:09 2014 From: nginx-forum at nginx.us (Neighb0ur) Date: Thu, 15 May 2014 07:22:09 -0400 Subject: =?UTF-8?B?UmU6IG5naW54INC60LDQuiBUTFMg0YLQtdGA0LzQuNC90LDRgtC+0YAg0LTQu9GP?= =?UTF-8?B?INC90LUtSFRUUFMg0YLRgNCw0YTRhNC40LrQsA==?= In-Reply-To: References: Message-ID: Спасибо. т.е. nginx не подойдет. У stunnel GPL license, нам не подходит. Буду пробовать stud. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250104,250108#msg-250108 From vbart at nginx.com Thu May 15 11:58:46 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 15 May 2014 15:58:46 +0400 Subject: multiple access_log with variables in the file path In-Reply-To: <669531400057919@web7g.yandex.ru> References: <669531400057919@web7g.yandex.ru> Message-ID: <2634800.bgaEAnZVO9@vbart-workstation> On Wednesday 14 May 2014 12:58:39 Den Bozhok wrote: > Доброго дня! > > Пытаюсь настроить в nginx несколько access логов для сервера. > Имеется два разных формата лога, поэтому хочется писать сразу два лога > одновременно. В классической конфигурации все работает: > access_log /var/log/nginx/name.access.log format1; > access_log /var/log/nginx/name.access.json format2; > > Но если попробовать дело оптимизировать примерно так: > > set $name log1; > > access_log /var/log/nginx/$name.access.log format1; > access_log /var/log/nginx/$name.access.json format2; Оптимизировать? Вы скорее добились обратного эффекта. См. также http://nginx.org/en/docs/faq/variables_in_config.html > > То запись идет только в один файл и что бы я не делал, во второй файл > никаких логов не падает. Можно ли как то решить эту проблему с переменными? > > Планируется ли добавить поддержку переменных в error_log? > Не планируется. -- Валентин Бартенев From nginx-forum at nginx.us Thu May 15 13:57:42 2014 From: nginx-forum at nginx.us (vladimircape) Date: Thu, 15 May 2014 09:57:42 -0400 Subject: =?UTF-8?B?0J7RgtC00LDRh9CwINC60L7QvdGC0LXQutGB0YLQsCDQv9C+0LvRjNC30L7QstCw?= =?UTF-8?B?0YLQtdC70Y4g0Lgg0LLRi9GH0LjRgdC70LXQvdC40Y8gb2ZmbGluZQ==?= Message-ID: <9d8d0212f3ff22b591da5785aaf1431f.NginxMailingListRussian@forum.nginx.org> Добрый день. Как-то давно слышал что nginx собирался такую фичу реализовать, чтобы можно было отдать ответ пользователю,а какие-то фоновые действия уже после отдачи выполнять типа логирования. Есть ли такое и где почитать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250112,250112#msg-250112 From mdounin at mdounin.ru Thu May 15 18:00:17 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 15 May 2014 22:00:17 +0400 Subject: =?UTF-8?B?UmU6IERBViArINCy0YvQtNC10LvQtdC90LjQtSByZWdleCArIGFsaWFz?= In-Reply-To: References: <20140428183125.GN34696@mdounin.ru> Message-ID: <20140515180017.GR1849@mdounin.ru> Hello! On Tue, Apr 29, 2014 at 10:18:31AM +0400, Vadim Lazovskiy wrote: > Нет, поторопился. > > Сломались другие location с проксированием вот такого вида: [...] Более правильный патч какой-то такой: --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -2009,7 +2009,7 @@ ngx_http_map_uri_to_path(ngx_http_reques #if (NGX_PCRE) ngx_uint_t captures; - captures = alias && clcf->regex; + captures = (alias == NGX_MAX_SIZE_T_VALUE) ? 1 : 0; reserved += captures ? r->add_uri_to_alias ? r->uri.len + 1 : 1 : r->uri.len - alias + 1; @@ -4476,6 +4476,7 @@ ngx_http_core_root(ngx_conf_t *cf, ngx_c #if (NGX_PCRE) if (alias && clcf->regex) { + clcf->alias = NGX_MAX_SIZE_T_VALUE; n = 1; } #endif > > > 2014-04-28 22:31 GMT+04:00 Maxim Dounin : > > > Hello! > > > > On Mon, Apr 28, 2014 at 01:22:08PM +0400, Vadim Lazovskiy wrote: > > > > > Вопрос. Откуда берется домен в имени файла и как это побороть? > > > > Выглядит как баг regex location + alias + limit_except/if. > > Собственно, для случая if он уже давно задокументирован на > > http://wiki.nginx.org/IfIsEvil. > > > > Патч, видимо, какой-то такой: > > > > # HG changeset patch > > # User Maxim Dounin > > # Date 1398709755 -14400 > > # Mon Apr 28 22:29:15 2014 +0400 > > # Node ID cf4f92f40290c9d3b8a8fb8cf836d3ebd16224f5 > > # Parent 539635cb8e98063b116555bdfd0c5ccfbfa8f184 > > Fixed alias in regex locations with limit_except/if. > > > > The ngx_http_map_uri_to_path() function uses clcf->regex to detect if > > it's working within a location given by a regular expression. Its > > behaviour was incorrect due to clcf->regex being false in implicit > > locations > > created by if and limit_except. Fix is to preserve clcf->regex within > > implicit locations. > > > > diff --git a/src/http/modules/ngx_http_rewrite_module.c > > b/src/http/modules/ngx_http_rewrite_module.c > > --- a/src/http/modules/ngx_http_rewrite_module.c > > +++ b/src/http/modules/ngx_http_rewrite_module.c > > @@ -583,6 +583,7 @@ ngx_http_rewrite_if(ngx_conf_t *cf, ngx_ > > clcf = ctx->loc_conf[ngx_http_core_module.ctx_index]; > > clcf->loc_conf = ctx->loc_conf; > > clcf->name = pclcf->name; > > + clcf->regex = pclcf->regex; > > clcf->noname = 1; > > > > if (ngx_http_add_location(cf, &pclcf->locations, clcf) != NGX_OK) { > > diff --git a/src/http/ngx_http_core_module.c > > b/src/http/ngx_http_core_module.c > > --- a/src/http/ngx_http_core_module.c > > +++ b/src/http/ngx_http_core_module.c > > @@ -4597,6 +4597,7 @@ ngx_http_core_limit_except(ngx_conf_t *c > > pclcf->limit_except_loc_conf = ctx->loc_conf; > > clcf->loc_conf = ctx->loc_conf; > > clcf->name = pclcf->name; > > + clcf->regex = pclcf->regex; > > clcf->noname = 1; > > clcf->lmt_excpt = 1; > > > > > > > > -- > > Maxim Dounin > > http://nginx.org/ > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Best Regards, > Vadim Lazovskiy > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Maxim Dounin http://nginx.org/ From aa.schurov at gmail.com Mon May 19 10:02:58 2014 From: aa.schurov at gmail.com (Alexey Schurov) Date: Mon, 19 May 2014 14:02:58 +0400 Subject: =?UTF-8?B?UmU6INCb0L7QvNCw0LXRgtGB0Y8gVENQLdGB0YLRjdC6INCyIENlbnRPUyA2LCA=?= =?UTF-8?B?0L/QvtC80L7Qs9C40YLQtSDQvdCw0YHRgtGA0L7QuNGC0Ywu?= In-Reply-To: References: Message-ID: <5379D6D2.9040505@gmail.com> Странно что нет ответа, но думаю проблема еще актуальна. Очевидно проблема с параметрами ядра, скорее даже их реализация. Есть такой параметр tcp_max_syn_backlog ограничивающий максимальное значение backlog, man listen: The behavior of the backlog argument on TCP sockets changed with Linux 2.2. Now it specifies the queue length for completely established sockets waiting to be accepted, instead of the number of incomplete connection requests. The maximum length of the queue for incomplete sockets can be set using /proc/sys/net/ipv4/tcp_max_syn_backlog. When syncookies are enabled there is no logical maximum length and this setting is ignored. Вот тут рассматривается как эти значения связаны с net.core.somaxconn: http://blog.dubbelboer.com/2012/04/09/syn-cookies.html Так вот первая проблема hardcoded в ядре и заключается в том что net.core.somaxconn имеет тип USHRT_MAX, т.е. максимальное значение 65535. Вторая проблема в том что это ограничение очень неявное и его очень трудно найти среди кривых "инструкций по тюнингу параметров ядра". Вот тут обсуждается патч предназначенный предупреждать админа о неверном значении (уже видел в действии на свежем ядре) https://groups.google.com/d/msg/linux.kernel/2sXyQqIEMXw/uOQh_goW-9kJ Третья проблема в том что из-за одной переполненной очереди страдают даже ненагруженные приложения типа мониторинга, причину которой я пока не нашел. Итого могу посоветовать понизить значения net.ipv4.tcp_max_syn_backlog и net.core.somaxconn до 65535. К тому же зачем выключили syncookies, есть веские причины это делать? Дополнительно можно поэкспериментировать с параметром net.ipv4.tcp_tw_recycle (reuse позволяет использовать освободившиеся структуры в памяти, recycle позволяет делать это очень быстро не дожидаясь окончания WAIT периода). 07.05.2014 19:20, Bogdan пишет: > Добрый день. > > Есть ряд серверов с Nginx ( 1.6.0-1.el6.ngx ), PHP-FPM (5.4.27, > 100-200 workers), memcached. Входящая нагрузка - 1000-1500 коннектов в > секунду, может быть в пике до 2000. > Исходящие соединения - подключения к локальному и удалённмы PHP-FPM > примерно с той же интенсивностью. > Процессоры: 2xE5-2430 (2.2Ghz, HexCore, HT) > > worker_processes 24 > worker_connections 8192 > sendfile on > tcp_nopush on > tcp_nodelay on > listen 0.0.0.0:80 default_server backlog=32768; > > > У меня есть мониторинг некоторых значений из /proc/net/snmp и всей > TCP-части /proc/PID/net/netstat для master-процесса nginx. > > Типовое количество одновременно установленных (CurrEstab) > TCP-коннектов в системе на момент возникновения проблем ~40k. > Суть проблемы: в прайм-тайм начинают просадки производительности без > перегрузки компонент системы. Т.е. процессор уходит в idle ~90%, > удалённые БД простаивают и т.п. Продолжается это несколько минут, > затем работа системы восстанавливается и через несколько минут всё > повторяется снова. > При возникновении проблемы в системе увеличивается TCP RetransSegs с > 200 до 1500-2000 в секунду, количество установленных соединений > уменьшается с 40 до 25 тысяч и менее. > Обнаружил следующие отклонения параметров из /proc/PID/net/netstat от > типовых значений: > > DelayedACKs - уменьшается с 3000 до 0 > ListenDrops - рост от нуля до 40-50 (возможно этот и ряд других > параметров луше снимать с воркеров?) > ListenOverflows - рост от нуля до 30-50 > TCPChallengeACK - рост от нуля до 60-80 > TCPDirectCopyFromBacklog - падение с 60K до 0 > TCPDirectCopyFromPrequeue - падение с 12M до 0 > TCPDSACKRecv - падение со 120 до 60 > TCPDSACKUndo - падение с 60 до 30 > TCPFastRetrans - падение с 15 до 0 > TCPForwardRetrans - падение с 15 до 0 > TCPHPHits - падение с 35K > TCPPrequeued - падение с 30K до нуля > TCPPureAcks - падение с 10K до 4K > TCPTimeouts - рост 200 до 1100-1500 > > Все значения - скорость, т.е. дельта показателя за одну секунду. > > Вот такая вот невесёлая картинка получается. Подскажите пожалуйста, > что ещё стоит добавить в мониторинг и как вообще такую проблему можно > исправить? > > sysctl (поверх дефолтного в CentOS) следующий: > > net.core.rmem_default=16777216 > net.core.netdev_max_backlog=262144 > net.core.somaxconn=262144 > net.ipv4.tcp_syncookies=0 > net.ipv4.tcp_max_orphans=262144 > net.ipv4.tcp_max_syn_backlog=262144 > net.ipv4.tcp_synack_retries=2 > net.ipv4.tcp_syn_retries=2 > net.ipv4.ip_local_port_range=2048 65535 > net.ipv4.tcp_tw_reuse=1 > net.ipv4.tcp_max_tw_buckets=6000000 > net.core.rmem_default=65536 > net.core.wmem_default=65536 > net.core.rmem_max = 33554432 > net.core.wmem_max = 33554432 > net.ipv4.tcp_rmem=8192 873800 8388608 > net.ipv4.tcp_wmem=4096 655360 8388608 > net.ipv4.tcp_fin_timeout = 7 > net.ipv4.tcp_slow_start_after_idle = 0 > > Помимо сказанного в nginx массово падают ошибки о невозможности > подключения к бэкендам FastCGI. Т.е. предполож?тельно TCP-стэк > ломается не только "на вход", но и "на выход". Conntrack выключен. > Ядро - 2.6.32-431.11.2.el6.x86_64 > Подобное поведение проявлялось с различными версиям Nginx, PHP, ядра, > раньше пробовал запускать это уже нагрузку на Debian - было ещё хуже. > > > -- > WBR, Bogdan B. Rudas -- Regards, Alexey Schurov e-mail: aa.schurov at gmail.com Skype: a_schurov Mob: +7 91 60 62 44 77 -------------- next part -------------- An HTML attachment was scrubbed... URL: From annulen at yandex.ru Mon May 19 10:06:20 2014 From: annulen at yandex.ru (Konstantin Tokarev) Date: Mon, 19 May 2014 14:06:20 +0400 Subject: =?UTF-8?B?0JLRi9C00LDRh9CwINGB0LbQsNGC0YvRhSDRgtC10LrRgdGC0L7QstGL0YUg0YQ=?= =?UTF-8?B?0LDQudC70L7QsiDQutCw0LogdGV4dC9wbGFpbiDRgSBDb250ZW50LUVuY29k?= =?UTF-8?B?aW5nIGd6aXA=?= Message-ID: <2059561400493980@web30g.yandex.ru> Всем привет, У меня есть каталог с autoindex, в котором находятся текстовые файлы, сжатые gzip. Хотелось бы отдавать эти файлы по такому же принципу, как это делает gzip_static (т.е. отдавать содержимое файла как text/plain с Content-Encoding: gzip), но запросы пойдут к filename.gz, а не к filename. Можно ли сделать это штатными средствами? -- Regards, Konstantin From greenh at gmail.com Mon May 19 10:10:57 2014 From: greenh at gmail.com (greenh) Date: Mon, 19 May 2014 13:10:57 +0300 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdC+0LUg0L/QvtCy0LXQtNC10L3QuNC1INC4IDUwMiA=?= =?UTF-8?B?0L7RiNC40LHQutCw?= In-Reply-To: <20140509062030.GZ1849@mdounin.ru> References: <20140509062030.GZ1849@mdounin.ru> Message-ID: После нескольких дней ковыряния выяснилось, что сервер был взломан (точнее - каким то образом ушел рут доступ) и злоумышленник каким то образом модифицировал апач так, что часть трафа уходила "налево" Пересобрали серв с нуля 9 мая 2014 г., 9:20 пользователь Maxim Dounin написал: > Hello! > > On Sat, May 03, 2014 at 09:57:31AM -0400, justcyber wrote: > > > Имеется аналогичная проблема: > > 2014/05/03 17:41:45 [error] 1118#0: *2585 upstream prematurely closed > > connection while reading response header from upstream, client: > > 112.123.168.55, server: goodwing.ru, request: "POST > /wp-comments-post.php > > HTTP/1.0", upstream: "http://xx.xx.xx.xx:80/wp-comments-post.php", host: > > "site.ru", referrer: "http://site.ru/2012/10/28/welcome/#comment-17681 > > Сообщение чётко и однозначно говорит, что бекенд закрыл соединение > в процессе чтения заголовков ответа от бекенда. Почему и отчего он > это сделал - надо смотреть на бекенде. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Mon May 19 11:23:29 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 19 May 2014 15:23:29 +0400 Subject: =?UTF-8?B?UmU6INCS0YvQtNCw0YfQsCDRgdC20LDRgtGL0YUg0YLQtdC60YHRgtC+0LLRi9GF?= =?UTF-8?B?INGE0LDQudC70L7QsiDQutCw0LogdGV4dC9wbGFpbiDRgSBDb250ZW50LUVu?= =?UTF-8?B?Y29kaW5nIGd6aXA=?= In-Reply-To: <2059561400493980@web30g.yandex.ru> References: <2059561400493980@web30g.yandex.ru> Message-ID: <20140519112329.GD1849@mdounin.ru> Hello! On Mon, May 19, 2014 at 02:06:20PM +0400, Konstantin Tokarev wrote: > Всем привет, > > У меня есть каталог с autoindex, в котором находятся текстовые файлы, сжатые gzip. Хотелось бы отдавать эти файлы по такому же принципу, как это делает gzip_static (т.е. отдавать содержимое файла как text/plain с Content-Encoding: gzip), но запросы пойдут к filename.gz, а не к filename. > > Можно ли сделать это штатными средствами? Дописать в нужное место конфига "add_header Content-Encoding gzip;", см. http://nginx.org/r/add_header. Следует, однако, понимать, что gzip_static делает другое. Он не просто отдаёт файл с нужным content-encoding, а выбирает, что именно отдать конкретному клиенту. -- Maxim Dounin http://nginx.org/ From xolodit at gmail.com Thu May 22 10:07:03 2014 From: xolodit at gmail.com (XIT) Date: Thu, 22 May 2014 14:07:03 +0400 Subject: wordpress + nginx Message-ID: Доброго времени. Прошу помощи, т.к. нуб в nginx(. Есть конфиг, сгенерированный панелью ispmanager для работы в режиме nginx+fastcgi. К сожалению с данным конфигом не работает wordpress корректно. Открывается только главная страница, переход по ссылкам приводит к 404 ошибке. Со страницы http://wiki.nginx.org/WordPress подставлял локейшены и так и сяк, но увы. Вот конфиг: ################################################################## #user 'wuser' virtual host 'domain.ru' configuration file server { server_name domain.ru www.domain.ru; charset UTF-8; disable_symlinks if_not_owner from=$root_path; index index.php index.html index.htm; root $root_path; set $root_path /var/www/wuser/data/www/domain.ru; ssi on; access_log /var/www/httpd-logs/domain.ru.access.log ; error_log /var/www/httpd-logs/domain.ru.error.log notice; include /etc/nginx/vhosts-includes/*.conf; location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } } location @fallback { error_log /dev/null crit; access_log off ; } location /webstat/ { charset UTF-8; index index.html; location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } auth_basic "Access limited by ISPmanager"; auth_basic_user_file /var/www/wuser/data/etc/access.domain.ru.VihQs/3k.passwd; } location @php { fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster at domain.ru"; fastcgi_pass unix:/var/www/php-fpm/wuser.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } listen 000.000.000.00:80; } ################################################################## -- Relax, take it easy! -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Fri May 23 10:45:06 2014 From: nginx-forum at nginx.us (neomag) Date: Fri, 23 May 2014 06:45:06 -0400 Subject: =?UTF-8?B?0L3QtSDRgNCw0LHQvtGC0LDQtdGCINCx0LDQu9Cw0L3RgdC40YDQvtCy0YnQuNC6?= Message-ID: <06457ecf608b7d263c555cf4aa606ec0.NginxMailingListRussian@forum.nginx.org> Добрый день имеется следующая конструкция: proxy_pass http://balancer; upstream balancer { server 127.0.0.1:8080 max_fails=10 fail_timeout=20 weight=100 ; server 192.168.1.15:8080 max_fails=10 fail_timeout=20 weight=100 ; server 192.168.1.20:8080 max_fails=10 fail_timeout=20 weight=30 ; ip_hash; } в результате трафик идет на 127.0.0.1 и 192.168.1.15, но совершенно не хочет идти на 3 сервер: 192.168.1.20 с nginx -0 коннектов в его сторону сервер разумеется в рабочем состоянии и успешно отдает контент при обращении напрямую, ip connectivity тоже есть. в логах нет никаких сообщений о 3 сервере. что я делаю не так? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250301,250301#msg-250301 From anatoly at sonru.com Fri May 23 10:54:11 2014 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Fri, 23 May 2014 11:54:11 +0100 Subject: =?UTF-8?B?U1BEWSDQstC80LXRgdGC0LUg0YEg0LLQutC70Y7Rh9C10L3QvdGL0LwgcHJveHlf?= =?UTF-8?B?Y2FjaGVfYnlwYXNzICgjNDI4KQ==?= Message-ID: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> Наткнулся на проблему, с которой, похоже, уже разобрались http://trac.nginx.org/nginx/ticket/428 Вопрос - когда патч планируется внести в релиз? Анатолий From andrey at kopeyko.ru Fri May 23 11:01:18 2014 From: andrey at kopeyko.ru (Andrey Kopeyko) Date: Fri, 23 May 2014 15:01:18 +0400 Subject: =?UTF-8?B?UmU6INC90LUg0YDQsNCx0L7RgtCw0LXRgiDQsdCw0LvQsNC90YHQuNGA0L7QstGJ?= =?UTF-8?B?0LjQug==?= In-Reply-To: <06457ecf608b7d263c555cf4aa606ec0.NginxMailingListRussian@forum.nginx.org> References: <06457ecf608b7d263c555cf4aa606ec0.NginxMailingListRussian@forum.nginx.org> Message-ID: <537F2A7E.8090903@kopeyko.ru> 23.05.2014 14:45, neomag пишет: > Добрый день Добрый день! > имеется следующая конструкция: > > proxy_pass http://balancer; > > upstream balancer { > server 127.0.0.1:8080 max_fails=10 fail_timeout=20 weight=100 ; > server 192.168.1.15:8080 max_fails=10 fail_timeout=20 weight=100 ; > server 192.168.1.20:8080 max_fails=10 fail_timeout=20 weight=30 ; > ip_hash; > } > > > в результате трафик идет на 127.0.0.1 и 192.168.1.15, > но совершенно не хочет идти на 3 сервер: 192.168.1.20 А вы пробовали убрать ip_hash? Без него - тоже трафик не идёт? Пару раз встречался с таким - значения IP-адресов клиентов были такими (ну, вот APNIC так им подсуропил), что при имевшемся числе бэкендов алгоритм ip_hash "игнорировал" один из бэкендов ;-) Пришлось для несчастливого бэкенда сделать 2 одинаковых записи - лишь тогда трафик на него пошёл. > -- Best regards, Andrey Kopeyko From nginx-forum at nginx.us Fri May 23 11:29:54 2014 From: nginx-forum at nginx.us (neomag) Date: Fri, 23 May 2014 07:29:54 -0400 Subject: =?UTF-8?B?UmU6INC90LUg0YDQsNCx0L7RgtCw0LXRgiDQsdCw0LvQsNC90YHQuNGA0L7QstGJ?= =?UTF-8?B?0LjQug==?= In-Reply-To: <537F2A7E.8090903@kopeyko.ru> References: <537F2A7E.8090903@kopeyko.ru> Message-ID: ip_hash убрать не могу, к сожалению -production да и качели с сессиями пользователей начнутся попробовал вариант с умножением записей, даже 3x не помогло вероятно действительно дело в ip_hash т.к. используется система фильтрации трафика QRATOR и нагрузка приходит с ограниченного количества адресов (не более 20) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250301,250305#msg-250305 From andrey at kopeyko.ru Fri May 23 11:37:12 2014 From: andrey at kopeyko.ru (Andrey Kopeyko) Date: Fri, 23 May 2014 15:37:12 +0400 Subject: =?UTF-8?B?UmU6INC90LUg0YDQsNCx0L7RgtCw0LXRgiDQsdCw0LvQsNC90YHQuNGA0L7QstGJ?= =?UTF-8?B?0LjQug==?= In-Reply-To: References: <537F2A7E.8090903@kopeyko.ru> Message-ID: <537F32E8.5050107@kopeyko.ru> 23.05.2014 15:29, neomag пишет: > ip_hash убрать не могу, к сожалению -production > да и качели с сессиями пользователей начнутся > > > попробовал вариант с умножением записей, даже 3x не помогло > > вероятно действительно дело в ip_hash Добавьте на бэкенд ещё 1 адрес, но из сети 192.168.2/24 (из 192.168.1/24 - не поможет) > -- Best regards, Andrey Kopeyko From vbart at nginx.com Fri May 23 12:36:33 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Fri, 23 May 2014 16:36:33 +0400 Subject: =?UTF-8?B?UmU6IFNQRFkg0LLQvNC10YHRgtC1INGBINCy0LrQu9GO0YfQtdC90L3Ri9C8IHBy?= =?UTF-8?B?b3h5X2NhY2hlX2J5cGFzcyAoIzQyOCk=?= In-Reply-To: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> References: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> Message-ID: <1613091.YLkhBN2907@vbart-workstation> On Friday 23 May 2014 11:54:11 Anatoly Mikhailov wrote: > Наткнулся на проблему, с которой, похоже, уже разобрались > http://trac.nginx.org/nginx/ticket/428 > > Вопрос - когда патч планируется внести в релиз? > В тикете на этот вопрос есть ответ: данный патч вносить не планируется. Другое решение - когда руки дойдут. И надеюсь, что скоро это случится. -- Валентин Бартенев From mdounin at mdounin.ru Fri May 23 12:40:30 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 23 May 2014 16:40:30 +0400 Subject: =?UTF-8?B?UmU6INC90LUg0YDQsNCx0L7RgtCw0LXRgiDQsdCw0LvQsNC90YHQuNGA0L7QstGJ?= =?UTF-8?B?0LjQug==?= In-Reply-To: <537F32E8.5050107@kopeyko.ru> References: <537F2A7E.8090903@kopeyko.ru> <537F32E8.5050107@kopeyko.ru> Message-ID: <20140523124030.GI1849@mdounin.ru> Hello! On Fri, May 23, 2014 at 03:37:12PM +0400, Andrey Kopeyko wrote: > 23.05.2014 15:29, neomag пишет: > >ip_hash убрать не могу, к сожалению -production > >да и качели с сессиями пользователей начнутся > > > > > >попробовал вариант с умножением записей, даже 3x не помогло > > > >вероятно действительно дело в ip_hash > > Добавьте на бэкенд ещё 1 адрес, но из сети 192.168.2/24 (из 192.168.1/24 - > не поможет) Адрес бекенда - не важен, важен только адрес клиента, причём без учёта последнего октета. Рассчитывать на равномерную балансировку ip_hash'ом при 20 адресах - не стоит. -- Maxim Dounin http://nginx.org/ From nginx-forum at nginx.us Fri May 23 14:14:48 2014 From: nginx-forum at nginx.us (neomag) Date: Fri, 23 May 2014 10:14:48 -0400 Subject: =?UTF-8?B?UmU6INC90LUg0YDQsNCx0L7RgtCw0LXRgiDQsdCw0LvQsNC90YHQuNGA0L7QstGJ?= =?UTF-8?B?0LjQug==?= In-Reply-To: <20140523124030.GI1849@mdounin.ru> References: <20140523124030.GI1849@mdounin.ru> Message-ID: <10b44f531657db977f337dd0db687f4b.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: > Адрес бекенда - не важен, важен только адрес клиента, причём без печаль, а я уж сел подбирать адреса безуспешно. быть может существуют какие-то сторонние модули, которые могут принимать решение о балансировке на основе X-FORWARDED-FOR ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250301,250320#msg-250320 From mdounin at mdounin.ru Fri May 23 16:06:16 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 23 May 2014 20:06:16 +0400 Subject: =?UTF-8?B?UmU6INC90LUg0YDQsNCx0L7RgtCw0LXRgiDQsdCw0LvQsNC90YHQuNGA0L7QstGJ?= =?UTF-8?B?0LjQug==?= In-Reply-To: <10b44f531657db977f337dd0db687f4b.NginxMailingListRussian@forum.nginx.org> References: <20140523124030.GI1849@mdounin.ru> <10b44f531657db977f337dd0db687f4b.NginxMailingListRussian@forum.nginx.org> Message-ID: <20140523160616.GM1849@mdounin.ru> Hello! On Fri, May 23, 2014 at 10:14:48AM -0400, neomag wrote: > Maxim Dounin Wrote: > > Адрес бекенда - не важен, важен только адрес клиента, причём без > > печаль, а я уж сел подбирать адреса безуспешно. > > быть может существуют какие-то сторонние модули, которые могут принимать > решение о балансировке > на основе X-FORWARDED-FOR ? http://nginx.org/ru/docs/http/ngx_http_realip_module.html -- Maxim Dounin http://nginx.org/ From nginx-forum at nginx.us Sat May 24 12:20:03 2014 From: nginx-forum at nginx.us (neomag) Date: Sat, 24 May 2014 08:20:03 -0400 Subject: =?UTF-8?B?UmU6INC90LUg0YDQsNCx0L7RgtCw0LXRgiDQsdCw0LvQsNC90YHQuNGA0L7QstGJ?= =?UTF-8?B?0LjQug==?= In-Reply-To: <20140523160616.GM1849@mdounin.ru> References: <20140523160616.GM1849@mdounin.ru> Message-ID: <619d0bcafdac02ef59d3a1176e389ef4.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: > > на основе X-FORWARDED-FOR ? > > http://nginx.org/ru/docs/http/ngx_http_realip_module.html спасибо! именно то, что нужно! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250301,250335#msg-250335 From anatoly at sonru.com Mon May 26 09:53:49 2014 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Mon, 26 May 2014 10:53:49 +0100 Subject: =?UTF-8?B?UmU6IFNQRFkg0LLQvNC10YHRgtC1INGBINCy0LrQu9GO0YfQtdC90L3Ri9C8IHBy?= =?UTF-8?B?b3h5X2NhY2hlX2J5cGFzcyAoIzQyOCk=?= In-Reply-To: <1613091.YLkhBN2907@vbart-workstation> References: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> <1613091.YLkhBN2907@vbart-workstation> Message-ID: <87374F83-E54B-455A-9CF5-7751EBC6429E@sonru.com> On 23 May 2014, at 13:36, Валентин Бартенев wrote: > On Friday 23 May 2014 11:54:11 Anatoly Mikhailov wrote: >> Наткнулся на проблему, с которой, похоже, уже разобрались >> http://trac.nginx.org/nginx/ticket/428 >> >> Вопрос - когда патч планируется внести в релиз? >> > > В тикете на этот вопрос есть ответ: данный патч вносить не планируется. > Другое решение - когда руки дойдут. И надеюсь, что скоро это случится. Валентин, в тикете также обсудили, что данное поведение не воспроизводится при отключенном SPDY, таким образом, это похоже на баг. Подобная проблема с closed connection была в SPDY модуле некоторое время назад и без кэширования и она была решена. Может все таки данный патч (кэширование + SPDY) планируется принять в релиз? Анатолий > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From vbart at nginx.com Mon May 26 12:27:33 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Mon, 26 May 2014 16:27:33 +0400 Subject: =?UTF-8?B?UmU6IFNQRFkg0LLQvNC10YHRgtC1INGBINCy0LrQu9GO0YfQtdC90L3Ri9C8IHBy?= =?UTF-8?B?b3h5X2NhY2hlX2J5cGFzcyAoIzQyOCk=?= In-Reply-To: <87374F83-E54B-455A-9CF5-7751EBC6429E@sonru.com> References: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> <1613091.YLkhBN2907@vbart-workstation> <87374F83-E54B-455A-9CF5-7751EBC6429E@sonru.com> Message-ID: <3437025.5GM675oIsJ@vbart-workstation> On Monday 26 May 2014 10:53:49 Anatoly Mikhailov wrote: > On 23 May 2014, at 13:36, Валентин Бартенев wrote: > > > > On Friday 23 May 2014 11:54:11 Anatoly Mikhailov wrote: > > > >> Наткнулся на проблему, с которой, похоже, уже разобрались > >> http://trac.nginx.org/nginx/ticket/428 > >> > >> Вопрос - когда патч планируется внести в релиз? > >> > > > > > > В тикете на этот вопрос есть ответ: данный патч вносить не планируется. > > Другое решение - когда руки дойдут. И надеюсь, что скоро это случится. > > > Валентин, в тикете также обсудили, что данное поведение не воспроизводится > при отключенном SPDY, таким образом, это похоже на баг. Подобная проблема > с closed connection была в SPDY модуле некоторое время назад и без > кэширования и она была решена. Данное поведение воспроизводится в любом случае. Разница лишь в том, что в случае http оно не наносит вреда, а лишь приводит к неоптимальному поведению - закрытию потенциально keepalive соединения, что допустимо. В случае SPDY это приводит к негативным последствиям и разумеется для SPDY это баг - с этим никто не спорит. > Может все таки данный патч (кэширование + SPDY) планируется принять в релиз? Это не зависит от моей воли и желания. Два предложенных решения (наиболее простое из них в тикете) не понравились ревьюверу, а над третьим пока не думал. -- Валентин Бартенев From nginx-forum at nginx.us Mon May 26 13:47:08 2014 From: nginx-forum at nginx.us (Brazzford) Date: Mon, 26 May 2014 09:47:08 -0400 Subject: =?UTF-8?B?0J/RgNC+0LHQu9C10LzQsCDQv9GA0Lgg0L/QvtC70YPRh9C10L3QuNC4INC00LA=?= =?UTF-8?B?0L3QvdGL0YUg0L7Qv9GA0LXQtNC10LvRkdC90L3QvtC5INC00LvQuNC90Ysg?= =?UTF-8?B?0L7RgiBOZ2lueCArIE1lbWNhY2hlZA==?= Message-ID: Здравствуйте! Я изучаю связку Nginx+Memcached+Apache/PHP. nginx.conf у меня стоит по умолчанию, а виртуальный хост имеет такие настройки: server { listen 80; server_name localhost; root /home/brazzford/nginx-www/; index index.php; location / { # All POST request send to backend if ($request_method = POST) { proxy_pass http://localhost:8080; break; } # Enable SSI ssi on; default_type text/html; # Check Memcached set $memcached_key "site:$request_uri"; memcached_pass localhost:11211; memcached_buffer_size 100k; proxy_intercept_errors on; error_page 404 502 = @process; } # Cache miss location @process { proxy_pass http://localhost:8080; ssi on; } # Cache static location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$ { root /var/www; expires 365d; } } У меня есть тестовый PHP скрипт: set($key, $data); if($set_result) echo "SUCCESS!"; else echo $memc->getResultMessage(); ?> И всё работает как надо, то есть сначала я от Apache получаю "SUCCESS", а потом от Nginx и Memcached "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa". Но кода я добавляю к переменной $data "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", то от Nginx я получаю такую бессмыслицу "x?гвдL$pr???@cn-т". То есть, проблема начинается после того, как хранимые данные достигают определённого размера. Memcached+Apache работает правильно, значит проблема в Nginx. Может нужно какой-то параметр изменить? Пробовал менять memcached_buffer_size, как видите поставил на 100к, и всё равно не помогает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250372,250372#msg-250372 From mdounin at mdounin.ru Mon May 26 14:34:16 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 26 May 2014 18:34:16 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0L/RgNC4INC/0L7Qu9GD0YfQtdC90LjQuCA=?= =?UTF-8?B?0LTQsNC90L3Ri9GFINC+0L/RgNC10LTQtdC70ZHQvdC90L7QuSDQtNC70Lg=?= =?UTF-8?B?0L3RiyDQvtGCIE5naW54ICsgTWVtY2FjaGVk?= In-Reply-To: References: Message-ID: <20140526143416.GY1849@mdounin.ru> Hello! On Mon, May 26, 2014 at 09:47:08AM -0400, Brazzford wrote: [...] > И всё работает как надо, то есть сначала я от Apache получаю "SUCCESS", а > потом от Nginx и Memcached "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa > aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa". Но кода я добавляю к переменной > $data "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", то от Nginx я получаю > такую бессмыслицу "x?гвдL$pr???@cn-т". То есть, проблема начинается после > того, как хранимые данные достигают определённого размера. Memcached+Apache > работает правильно, значит проблема в Nginx. Может нужно какой-то параметр > изменить? Пробовал менять memcached_buffer_size, как видите поставил на > 100к, и всё равно не помогает. Выключите сжатие в memcached-клиенте, которым вы кладёте данные в memcached. -- Maxim Dounin http://nginx.org/ From nginx-forum at nginx.us Mon May 26 18:35:20 2014 From: nginx-forum at nginx.us (Brazzford) Date: Mon, 26 May 2014 14:35:20 -0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0L/RgNC4INC/0L7Qu9GD0YfQtdC90LjQuCA=?= =?UTF-8?B?0LTQsNC90L3Ri9GFINC+0L/RgNC10LTQtdC70ZHQvdC90L7QuSDQtNC70Lg=?= =?UTF-8?B?0L3RiyDQvtGCIE5naW54ICsgTWVtY2FjaGVk?= In-Reply-To: References: Message-ID: <2ccd3a82480108038b0940c65b8d6d17.NginxMailingListRussian@forum.nginx.org> Спасибо, помогло! А может быть, подскажете, что мне нужно дописать, чтобы Nginx мог работать с кластером серверов Memcached, для того, чтобы распределялась нагрузка между ними? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250372,250376#msg-250376 From vbart at nginx.com Mon May 26 20:53:12 2014 From: vbart at nginx.com (Valentin V. Bartenev) Date: Tue, 27 May 2014 00:53:12 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0L/RgNC4INC/0L7Qu9GD0YfQtdC90LjQuCA=?= =?UTF-8?B?0LTQsNC90L3Ri9GFINC+0L/RgNC10LTQtdC70ZHQvdC90L7QuSDQtNC70Lg=?= =?UTF-8?B?0L3RiyDQvtGCIE5naW54ICsgTWVtY2FjaGVk?= In-Reply-To: <2ccd3a82480108038b0940c65b8d6d17.NginxMailingListRussian@forum.nginx.org> References: <2ccd3a82480108038b0940c65b8d6d17.NginxMailingListRussian@forum.nginx.org> Message-ID: <5601919.LggVqNpQAs@vbart-laptop> On Monday 26 May 2014 14:35:20 Brazzford wrote: > Спасибо, помогло! А может быть, подскажете, что мне нужно дописать, чтобы > Nginx мог работать с кластером серверов Memcached, для того, чтобы > распределялась нагрузка между ними? > http://nginx.org/ru/docs/http/ngx_http_upstream_module.html -- Валентин Бартенев From anatoly at sonru.com Tue May 27 11:40:35 2014 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Tue, 27 May 2014 12:40:35 +0100 Subject: =?UTF-8?B?UmU6IFNQRFkg0LLQvNC10YHRgtC1INGBINCy0LrQu9GO0YfQtdC90L3Ri9C8IHBy?= =?UTF-8?B?b3h5X2NhY2hlX2J5cGFzcyAoIzQyOCk=?= In-Reply-To: <3437025.5GM675oIsJ@vbart-workstation> References: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> <1613091.YLkhBN2907@vbart-workstation> <87374F83-E54B-455A-9CF5-7751EBC6429E@sonru.com> <3437025.5GM675oIsJ@vbart-workstation> Message-ID: On 26 May 2014, at 13:27, Валентин Бартенев wrote: > On Monday 26 May 2014 10:53:49 Anatoly Mikhailov wrote: >> On 23 May 2014, at 13:36, Валентин Бартенев wrote: >> >> >>> On Friday 23 May 2014 11:54:11 Anatoly Mikhailov wrote: >>> >>>> Наткнулся на проблему, с которой, похоже, уже разобрались >>>> http://trac.nginx.org/nginx/ticket/428 >>>> >>>> Вопрос - когда патч планируется внести в релиз? >>>> >>> >>> >>> В тикете на этот вопрос есть ответ: данный патч вносить не планируется. >>> Другое решение - когда руки дойдут. И надеюсь, что скоро это случится. >> >> >> Валентин, в тикете также обсудили, что данное поведение не воспроизводится >> при отключенном SPDY, таким образом, это похоже на баг. Подобная проблема >> с closed connection была в SPDY модуле некоторое время назад и без >> кэширования и она была решена. > > Данное поведение воспроизводится в любом случае. Разница лишь в том, > что в случае http оно не наносит вреда, а лишь приводит к неоптимальному > поведению - закрытию потенциально keepalive соединения, что допустимо. > > В случае SPDY это приводит к негативным последствиям и разумеется для SPDY > это баг - с этим никто не спорит. > > >> Может все таки данный патч (кэширование + SPDY) планируется принять в релиз? > > Это не зависит от моей воли и желания. Два предложенных решения (наиболее > простое из них в тикете) не понравились ревьюверу, а над третьим пока не > думал. Валентин, пока подходящее решение не будет найдено, есть планы выложить текущий патч сюда http://nginx.org/patches/ ? Это было бы очень удобно. > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From vbart at nginx.com Tue May 27 11:53:50 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 27 May 2014 15:53:50 +0400 Subject: =?UTF-8?B?UmU6IFNQRFkg0LLQvNC10YHRgtC1INGBINCy0LrQu9GO0YfQtdC90L3Ri9C8IHBy?= =?UTF-8?B?b3h5X2NhY2hlX2J5cGFzcyAoIzQyOCk=?= In-Reply-To: References: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> <3437025.5GM675oIsJ@vbart-workstation> Message-ID: <2702734.o9QWP8dTeh@vbart-workstation> On Tuesday 27 May 2014 12:40:35 Anatoly Mikhailov wrote: [..] > > Валентин, пока подходящее решение не будет найдено, есть планы выложить > текущий патч сюда http://nginx.org/patches/ ? Это было бы очень удобно. ok http://nginx.org/patches/patch.spdy_upstream_fix.txt -- Валентин Бартенев From mdounin at mdounin.ru Tue May 27 14:10:16 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 27 May 2014 18:10:16 +0400 Subject: nginx-1.7.1 Message-ID: <20140527141016.GO1849@mdounin.ru> Изменения в nginx 1.7.1 27.05.2014 *) Добавление: переменные "$upstream_cookie_...". *) Добавление: переменная $ssl_client_fingerprint. *) Добавление: директивы error_log и access_log теперь поддерживают логгирование в syslog. *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при соединении. *) Исправление: утечки памяти при использовании директивы "ssl_stapling". Спасибо Filipe da Silva. *) Исправление: директива alias внутри location'а, заданного регулярным выражением, работала неправильно, если использовались директивы if или limit_except. *) Исправление: директива charset не ставила кодировку для сжатых ответов бэкендов. *) Исправление: директива proxy_pass без URI могла использовать оригинальный запрос после установки переменной $args. Спасибо Yichun Zhang. *) Исправление: в работе параметра none директивы smtp_auth; ошибка появилась в 1.5.6. Спасибо Святославу Никольскому. *) Исправление: при совместном использовании sub_filter и SSI ответы могли передаваться неверно. *) Исправление: nginx не собирался с параметром --with-file-aio на Linux/aarch64. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue May 27 18:08:38 2014 From: nginx-forum at nginx.us (polonez) Date: Tue, 27 May 2014 14:08:38 -0400 Subject: limit_except & rewrite Message-ID: <6bd264fbb62b7d43f95f2c7baf07e622.NginxMailingListRussian@forum.nginx.org> Интересно, как избавиться от "IF" в данном примере: location / { if ($request_method = POST){ rewrite ^/(.*)$ /index.php?q=$1; } try_files $uri $uri/ @rewrite; } Все запросы обрабатываются через статику (обычные файлы HTML), помимо отправки POST запросов (с формы обратной связи, добавление товара в корзину и т.д.) где включается обработчик на php пробовал вот так: location / { limit_except POST { rewrite ^/(.*)$ /index.php?q=$1; } try_files $uri $uri/ @rewrite; } но в контексте "limit_except" запрещено использовать директиву "rewrite" Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250405,250405#msg-250405 From nginx-forum at nginx.us Wed May 28 08:18:42 2014 From: nginx-forum at nginx.us (Brazzford) Date: Wed, 28 May 2014 04:18:42 -0400 Subject: =?UTF-8?B?Tmdpbngg0LggTWVtY2FjaGVkINC90LAg0L7QtNC90L7QvCDRhdC+0YHRgtC1INC4?= =?UTF-8?B?0LvQuCDQvtGC0LTQtdC70YzQvdC+Pw==?= Message-ID: <36edbc456f5176068762f33a572561fd.NginxMailingListRussian@forum.nginx.org> Здравствуйте! Может, кто ни нибудь, сказать в каких случаях их можно ставить вмести, а в каких нет, и, хотелось бы, узнать почему. А то я не знаю как мне правильно поступить - снимать один VPS или два =( Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250415,250415#msg-250415 From alex.barut at gmail.com Wed May 28 08:33:42 2014 From: alex.barut at gmail.com (Alex Belyansky) Date: Wed, 28 May 2014 12:33:42 +0400 Subject: =?UTF-8?B?UmU6IE5naW54INC4IE1lbWNhY2hlZCDQvdCwINC+0LTQvdC+0Lwg0YXQvtGB0YI=?= =?UTF-8?B?0LUg0LjQu9C4INC+0YLQtNC10LvRjNC90L4/?= In-Reply-To: <36edbc456f5176068762f33a572561fd.NginxMailingListRussian@forum.nginx.org> References: <36edbc456f5176068762f33a572561fd.NginxMailingListRussian@forum.nginx.org> Message-ID: <53859F66.2000403@gmail.com> Все зависит от объемов того что хотите хранить в мемкеше. Если объемы будут небольшими, то можно и вместе. Я ведь правильно понимаю что будет только Nginx+Memcached на хосте? Делал уже так на фронтенде. Nginx под себя много памяти не требовал, поэтому Memcached себя очень уютно чувствовал. On 28.05.2014 12:18, Brazzford wrote: > Здравствуйте! Может, кто ни нибудь, сказать в каких случаях их можно ставить > вмести, а в каких нет, и, хотелось бы, узнать почему. А то я не знаю как мне > правильно поступить - снимать один VPS или два =( > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250415,250415#msg-250415 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From postmaster at softsearch.ru Wed May 28 08:56:18 2014 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Wed, 28 May 2014 12:56:18 +0400 Subject: =?UTF-8?B?UmU6IE5naW54INC4IE1lbWNhY2hlZCDQvdCwINC+0LTQvdC+0Lwg0YXQvtGB0YI=?= =?UTF-8?B?0LUg0LjQu9C4INC+0YLQtNC10LvRjNC90L4/?= In-Reply-To: <36edbc456f5176068762f33a572561fd.NginxMailingListRussian@forum.nginx.org> References: <36edbc456f5176068762f33a572561fd.NginxMailingListRussian@forum.nginx.org> Message-ID: <1246104618.20140528125618@softsearch.ru> Здравствуйте, Brazzford. > Здравствуйте! Может, кто ни нибудь, сказать в каких случаях их можно > ставить вмести, а в каких нет, и, хотелось бы, узнать почему. А то я > не знаю как мне правильно поступить - снимать один VPS или два =( Ставьте на одном. В 99% случаев всё будет ок. Да и пошустрее будет. -- С уважением, Михаил mailto:postmaster at softsearch.ru From nginx-forum at nginx.us Wed May 28 09:01:29 2014 From: nginx-forum at nginx.us (Brazzford) Date: Wed, 28 May 2014 05:01:29 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC4IE1lbWNhY2hlZCDQvdCwINC+0LTQvdC+0Lwg0YXQvtGB0YI=?= =?UTF-8?B?0LUg0LjQu9C4INC+0YLQtNC10LvRjNC90L4/?= In-Reply-To: <53859F66.2000403@gmail.com> References: <53859F66.2000403@gmail.com> Message-ID: Спасибо за ответ! Тогда, на сколько, я понимаю решение о соединении или разъединении этих серверов зависит, от того, сколько будет отдано памяти для кэша Memcached и сколько конкурентных запросов придётся обслуживать Nginx, так как, с увеличением одновременных запросов Nginx будет потреблять всё больше ресурсов. Может быть подскажете каким способом можно проверить на Ubuntu сколько ресурсов начинает кушать Nginx c увеличением конкурирующих запросов? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250415,250419#msg-250419 From nginx-forum at nginx.us Wed May 28 09:14:13 2014 From: nginx-forum at nginx.us (Brazzford) Date: Wed, 28 May 2014 05:14:13 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC4IE1lbWNhY2hlZCDQvdCwINC+0LTQvdC+0Lwg0YXQvtGB0YI=?= =?UTF-8?B?0LUg0LjQu9C4INC+0YLQtNC10LvRjNC90L4/?= In-Reply-To: References: <53859F66.2000403@gmail.com> Message-ID: Прошу прощение, что обидел Nginx, написал не подумав, он же на обслуживания тысячи конкурирующих соединения тратит всего несколько мегабайт =) Brazzford Wrote: ------------------------------------------------------- > Спасибо за ответ! Тогда, на сколько, я понимаю решение о соединении > или разъединении этих серверов зависит, от того, сколько будет отдано > памяти для кэша Memcached и сколько конкурентных запросов придётся > обслуживать Nginx, так как, с увеличением одновременных запросов > Nginx будет потреблять всё больше ресурсов. Может быть подскажете > каким способом можно проверить на Ubuntu сколько ресурсов начинает > кушать Nginx c увеличением конкурирующих запросов? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250415,250420#msg-250420 From annulen at yandex.ru Wed May 28 09:15:13 2014 From: annulen at yandex.ru (Konstantin Tokarev) Date: Wed, 28 May 2014 13:15:13 +0400 Subject: =?UTF-8?B?UmU6IE5naW54INC4IE1lbWNhY2hlZCDQvdCwINC+0LTQvdC+0Lwg0YXQvtGB0YI=?= =?UTF-8?B?0LUg0LjQu9C4INC+0YLQtNC10LvRjNC90L4/?= In-Reply-To: References: <53859F66.2000403@gmail.com> Message-ID: <806451401268513@web4h.yandex.ru> 28.05.2014, 13:01, "Brazzford" : > Спасибо за ответ! Тогда, на сколько, я понимаю решение о соединении или > разъединении этих серверов зависит, от того, сколько будет отдано памяти для > кэша Memcached и сколько конкурентных запросов придётся обслуживать Nginx, > так как, с увеличением одновременных  запросов Nginx будет потреблять всё > больше ресурсов. Может быть подскажете каким способом можно проверить на > Ubuntu сколько ресурсов начинает кушать Nginx c увеличением конкурирующих > запросов? гугл://нагрузочное тестирование -- Regards, Konstantin From maks.invisible at gmail.com Wed May 28 09:54:08 2014 From: maks.invisible at gmail.com (maks) Date: Wed, 28 May 2014 12:54:08 +0300 Subject: =?UTF-8?B?cHJveHlfcGFzcyDQtNC70Y8gbG9jYXRpb24g0L3QsCDQtNGA0YPQs9C+0Lkg0YE=?= =?UTF-8?B?0LXRgNCy0LXRgA==?= Message-ID: <5385B240.6040206@gmail.com> Прошу не пинать сильно, но голова вскипела (может не внимательно читал). nginx.conf дефолтный для Debian Wheezy Суть задачи - проксировать определенный location на некий сервер с Apache. Возможно ли такое? Пробовал так: location /server1 { ... rewrite ^/server1(.*)$ $1 break; proxy_pass http://server1.com; ... } не получилось. From sytar.alex at gmail.com Wed May 28 09:56:49 2014 From: sytar.alex at gmail.com (Aleksandr Sytar) Date: Wed, 28 May 2014 13:56:49 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0LTQu9GPIGxvY2F0aW9uINC90LAg0LTRgNGD0LPQvtC5?= =?UTF-8?B?INGB0LXRgNCy0LXRgA==?= In-Reply-To: <5385B240.6040206@gmail.com> References: <5385B240.6040206@gmail.com> Message-ID: 28 мая 2014 г., 13:54 пользователь maks написал: > location /server1 { > ... > rewrite ^/server1(.*)$ $1 break; > proxy_pass http://server1.com; > ... > > } location /server1/ { proxy_pass http://server1.com/; } From i.ivantsov at ngenix.net Wed May 28 09:59:10 2014 From: i.ivantsov at ngenix.net (Ilya Ivantsov) Date: Wed, 28 May 2014 13:59:10 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0LTQu9GPIGxvY2F0aW9uINC90LAg0LTRgNGD0LPQvtC5?= =?UTF-8?B?INGB0LXRgNCy0LXRgA==?= In-Reply-To: <5385B240.6040206@gmail.com> References: <5385B240.6040206@gmail.com> Message-ID: <5385B36E.9060503@ngenix.net> 28/05/14 13:54 , maks пишет: > Прошу не пинать сильно, но голова вскипела (может не внимательно читал). > > nginx.conf дефолтный для Debian Wheezy > > Суть задачи - проксировать определенный location на некий сервер с > Apache. Возможно ли такое? > > > Пробовал так: > > location /server1 { > ... > rewrite ^/server1(.*)$ $1 break; > proxy_pass http://server1.com; > ... > > } > > не получилось. Перемудрили, попробуйте так: location /server1/ { ... proxy_pass http://server1.com/; ... } > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From maks.invisible at gmail.com Wed May 28 10:22:25 2014 From: maks.invisible at gmail.com (maks) Date: Wed, 28 May 2014 13:22:25 +0300 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0LTQu9GPIGxvY2F0aW9uINC90LAg0LTRgNGD0LPQvtC5?= =?UTF-8?B?INGB0LXRgNCy0LXRgA==?= In-Reply-To: <5385B36E.9060503@ngenix.net> References: <5385B240.6040206@gmail.com> <5385B36E.9060503@ngenix.net> Message-ID: <5385B8E1.3080804@gmail.com> 28.05.14 12:59, Ilya Ivantsov написав: > Перемудрили, попробуйте так: > > location /server1/ { > ... > proxy_pass http://server1.com/; > ... > > } > Спасибо за ответ. Так тоже пробовал. На сервере, куда нужно проксировать, оказался интересный index.html: После этого перенаправления в браузере получается http://nginx-server.com/cgi-bin/... , которого, естественно, нет. Можно ли как-нибудь заменить этот редирект, чтобы запрос после него принял форму http://nginx-server.com/server1/cgi-bin/... ?? From vbart at nginx.com Wed May 28 10:25:29 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 28 May 2014 14:25:29 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0LTQu9GPIGxvY2F0aW9uINC90LAg0LTRgNGD0LPQvtC5?= =?UTF-8?B?INGB0LXRgNCy0LXRgA==?= In-Reply-To: <5385B8E1.3080804@gmail.com> References: <5385B240.6040206@gmail.com> <5385B36E.9060503@ngenix.net> <5385B8E1.3080804@gmail.com> Message-ID: <1565119.8a21pA2ahz@vbart-workstation> On Wednesday 28 May 2014 13:22:25 maks wrote: > 28.05.14 12:59, Ilya Ivantsov написав: > > Перемудрили, попробуйте так: > > > > location /server1/ { > > > > ... > > proxy_pass http://server1.com/; > > ... > > > > } > > Спасибо за ответ. Так тоже пробовал. > > На сервере, куда нужно проксировать, оказался интересный index.html: > > > > content="0;url=/cgi-bin/some-cgi.exe?param1=value1¶m2=value2"> > > > > > После этого перенаправления в браузере получается > http://nginx-server.com/cgi-bin/... , которого, естественно, нет. > Можно ли как-нибудь заменить этот редирект, чтобы запрос после него > принял форму http://nginx-server.com/server1/cgi-bin/... ?? > http://nginx.org/ru/docs/http/ngx_http_sub_module.html -- Валентин Бартенев From stalker at altlinux.ru Wed May 28 10:26:30 2014 From: stalker at altlinux.ru (Anton Gorlov) Date: Wed, 28 May 2014 14:26:30 +0400 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0LTQu9GPIGxvY2F0aW9uINC90LAg0LTRgNGD0LPQvtC5?= =?UTF-8?B?INGB0LXRgNCy0LXRgA==?= In-Reply-To: <5385B8E1.3080804@gmail.com> References: <5385B240.6040206@gmail.com> <5385B36E.9060503@ngenix.net> <5385B8E1.3080804@gmail.com> Message-ID: <5385B9D6.3070206@altlinux.ru> proxy_redirect off; proxy_set_header Host 'internal.srv.ru'; 28.05.2014 14:22, maks пишет: > > 28.05.14 12:59, Ilya Ivantsov написав: >> Перемудрили, попробуйте так: >> >> location /server1/ { >> ... >> proxy_pass http://server1.com/; >> ... >> >> } >> > > Спасибо за ответ. Так тоже пробовал. > > На сервере, куда нужно проксировать, оказался интересный index.html: > > > > content="0;url=/cgi-bin/some-cgi.exe?param1=value1¶m2=value2"> > > > > > После этого перенаправления в браузере получается > http://nginx-server.com/cgi-bin/... , которого, естественно, нет. > Можно ли как-нибудь заменить этот редирект, чтобы запрос после него > принял форму http://nginx-server.com/server1/cgi-bin/... ?? > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From maks.invisible at gmail.com Wed May 28 10:30:39 2014 From: maks.invisible at gmail.com (maks) Date: Wed, 28 May 2014 13:30:39 +0300 Subject: =?UTF-8?B?UmU6IHByb3h5X3Bhc3Mg0LTQu9GPIGxvY2F0aW9uINC90LAg0LTRgNGD0LPQvtC5?= =?UTF-8?B?INGB0LXRgNCy0LXRgA==?= In-Reply-To: <1565119.8a21pA2ahz@vbart-workstation> References: <5385B240.6040206@gmail.com> <5385B36E.9060503@ngenix.net> <5385B8E1.3080804@gmail.com> <1565119.8a21pA2ahz@vbart-workstation> Message-ID: <5385BACF.2060703@gmail.com> То, что нужно. Спасибо огромное. 28.05.14 13:25, Валентин Бартенев написав(ла): > On Wednesday 28 May 2014 13:22:25 maks wrote: >> 28.05.14 12:59, Ilya Ivantsov написав: >>> Перемудрили, попробуйте так: >>> >>> location /server1/ { >>> >>> ... >>> proxy_pass http://server1.com/; >>> ... >>> >>> } >> Спасибо за ответ. Так тоже пробовал. >> >> На сервере, куда нужно проксировать, оказался интересный index.html: >> >> >> >> > content="0;url=/cgi-bin/some-cgi.exe?param1=value1¶m2=value2"> >> >> >> >> >> После этого перенаправления в браузере получается >> http://nginx-server.com/cgi-bin/... , которого, естественно, нет. >> Можно ли как-нибудь заменить этот редирект, чтобы запрос после него >> принял форму http://nginx-server.com/server1/cgi-bin/... ?? >> > http://nginx.org/ru/docs/http/ngx_http_sub_module.html > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From onokonem at gmail.com Wed May 28 13:36:25 2014 From: onokonem at gmail.com (Daniel Podolsky) Date: Wed, 28 May 2014 17:36:25 +0400 Subject: nginx-1.7.1 In-Reply-To: <20140527141016.GO1849@mdounin.ru> References: <20140527141016.GO1849@mdounin.ru> Message-ID: 2014-05-27 18:10 GMT+04:00 Maxim Dounin : > *) Добавление: директивы error_log и access_log теперь поддерживают > логгирование в syslog. Наконец-то! Спасибо большое! Если не секрет - как удалось договориться с Игорем? :) From vbart at nginx.com Wed May 28 13:44:15 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 28 May 2014 17:44:15 +0400 Subject: nginx-1.7.1 In-Reply-To: References: <20140527141016.GO1849@mdounin.ru> Message-ID: <4285605.HmRFEb7jkY@vbart-workstation> On Wednesday 28 May 2014 17:36:25 Daniel Podolsky wrote: > 2014-05-27 18:10 GMT+04:00 Maxim Dounin : > > > *) Добавление: директивы error_log и access_log теперь поддерживают > > > > логгирование в syslog. > > Наконец-то! Спасибо большое! > > Если не секрет - как удалось договориться с Игорем? :) Этот модуль не использует syslog(), а полностью реализует протокол на UDP. -- Валентин Бартенев From onokonem at gmail.com Wed May 28 13:53:39 2014 From: onokonem at gmail.com (Daniel Podolsky) Date: Wed, 28 May 2014 17:53:39 +0400 Subject: nginx-1.7.1 In-Reply-To: <4285605.HmRFEb7jkY@vbart-workstation> References: <20140527141016.GO1849@mdounin.ru> <4285605.HmRFEb7jkY@vbart-workstation> Message-ID: > Этот модуль не использует syslog(), а полностью реализует протокол на UDP. Когда-то, насколько я помню, и такой вариант Игорь отвергал, как неприемлемый... From vbart at nginx.com Wed May 28 14:03:01 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 28 May 2014 18:03:01 +0400 Subject: nginx-1.7.1 In-Reply-To: References: <20140527141016.GO1849@mdounin.ru> <4285605.HmRFEb7jkY@vbart-workstation> Message-ID: <1427407.DLt0eX14AV@vbart-workstation> On Wednesday 28 May 2014 17:53:39 Daniel Podolsky wrote: > > Этот модуль не использует syslog(), а полностью реализует протокол на > > UDP. > > Когда-то, насколько я помню, и такой вариант Игорь отвергал, как > неприемлемый... Если речь об этом популярном патче: https://github.com/yaoweibin/nginx_syslog_patch то, помимо других проблем, этот вариант использует syslog() и по-прежнему остается неприемлемым. -- Валентин Бартенев From nginx-forum at nginx.us Thu May 29 07:59:56 2014 From: nginx-forum at nginx.us (kirimedia) Date: Thu, 29 May 2014 03:59:56 -0400 Subject: the http output chain is empty bug Message-ID: nginx >= 1.5.7 (в более новых воспроизводится) Собран с lua модулем (0.9.8) (ошибка воспроизводится и с более новыми версиями) # ./sbin/nginx -V nginx version: nginx/1.5.7 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) configure arguments: --add-module=../lua-nginx-module Конфиг user nginx; worker_processes 1; error_log /var/log/nginx/nginx-error.log error; events { use epoll; } http { gzip on; server { listen 80; root /usr/local/nginx/html; location = /empty/ { empty_gif; } location = /include/ { content_by_lua ' ngx.location.capture("/empty/") ngx.location.capture("/empty/") '; } location = /ssi.html { ssi on; } } } Содержимое /usr/local/nginx/html/ssi.html HEADER При запросе http://localhost/ssi.html получаю пустой ответ (без заголовков и без тела) И в логе [alert] 20457#0: *1 the http output chain is empty, client: 127.0.0.1, server: , request: "GET /ssi.html HTTP/1.1", subrequest: "/include/" То есть, если из ssi запроса делаем 2 lua подзапроса и при этом перед ssi запросом что-то выводится, и включен gzip модуль, то получаем пустой ответ. Ошибка появилась с версии 1.5.7. Так как в src/http/modules/ngx_http_gzip_filter_module.c была добавлена проверка, что цепочка чайнов (chain) не NULL - if (ctx->nomem) { + if (ctx->nomem || in == NULL) { При этом при 2х луа подзапросах из луа модуля вызывается ngx_http_lua_flush_pending_output, которая вызывает rc = ngx_http_lua_output_filter(r, NULL) как раз с пустой цепочкой чайнов. И вероятно из за этого и случается ошибка. Помогите понять. Это проблема nginx или lua модуля? И как это можно пофиксить? Зачем это условие в gzip фильтре? Или вероятно из lua модуля должно вызваться ngx_http_send_special(r, flags); с флагом NGX_HTTP_FLUSH, которая вызовет фильтры с некоторым чайном? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250456,250456#msg-250456 From anatoly at sonru.com Thu May 29 11:14:42 2014 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Thu, 29 May 2014 12:14:42 +0100 Subject: =?UTF-8?B?UmU6IE5naW54INC4IE1lbWNhY2hlZCDQvdCwINC+0LTQvdC+0Lwg0YXQvtGB0YI=?= =?UTF-8?B?0LUg0LjQu9C4INC+0YLQtNC10LvRjNC90L4/?= In-Reply-To: <806451401268513@web4h.yandex.ru> References: <53859F66.2000403@gmail.com> <806451401268513@web4h.yandex.ru> Message-ID: <65323E62-00B1-4EF3-B7E7-C321527D0164@sonru.com> On 28 May 2014, at 10:15, Konstantin Tokarev wrote: > > > 28.05.2014, 13:01, "Brazzford" : >> Спасибо за ответ! Тогда, на сколько, я понимаю решение о соединении или >> разъединении этих серверов зависит, от того, сколько будет отдано памяти для >> кэша Memcached и сколько конкурентных запросов придётся обслуживать Nginx, >> так как, с увеличением одновременных запросов Nginx будет потреблять всё >> больше ресурсов. Может быть подскажете каким способом можно проверить на >> Ubuntu сколько ресурсов начинает кушать Nginx c увеличением конкурирующих >> запросов? > > гугл://нагрузочное тестирование каким способом проверить? Сперва можно, например, почитать в чем отличия Unix Domain Sockets от Internet domain sockets, проверить количество допустимых открытых файловых дескрипторов, узнать максимальное количество открытых портов, что очень важно так как соединение устанавливается между парами хост:порт. Nginx обслуживает HTTP соединения, цепочка IP/TCP/TLS/HTTP гораздо длиннее, чем обслуживание запросов Memcache IP/TCP либо просто Unix Domain Sockets, если у вас все на одной машине. Если Nginx запускается в несколько тредов при соответствующей нагрузкой, то помониторить context switching поможет вам лучше понять, выносить MemcacheD на отдельный сервак или оставить на одном. Nice/reniсe поможет вытеснить побольше ресурсов для Memcache, но в Nginx можно явно дать воркеру больший приоритет через параметр worker_priority -5 (-20 максимальный, +20 минимальный). Попробуйте начать мониторить следующие параметры: - Context Switching - Forks - Interrupts - Load Average - IO - Network Connection States - Swap Usage Например, мы все эти данные собираем через Percona Monitoring Plugins в Cacti, но многое из этого можно достать из /proc и мониторить вашим любимым инструментом мониторинга. Анатолий > > -- > Regards, > Konstantin > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From anatoly at sonru.com Thu May 29 11:49:28 2014 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Thu, 29 May 2014 12:49:28 +0100 Subject: =?UTF-8?B?UmU6IFNQRFkg0LLQvNC10YHRgtC1INGBINCy0LrQu9GO0YfQtdC90L3Ri9C8IHBy?= =?UTF-8?B?b3h5X2NhY2hlX2J5cGFzcyAoIzQyOCk=?= In-Reply-To: <2702734.o9QWP8dTeh@vbart-workstation> References: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> <3437025.5GM675oIsJ@vbart-workstation> <2702734.o9QWP8dTeh@vbart-workstation> Message-ID: On 27 May 2014, at 12:53, Валентин Бартенев wrote: > On Tuesday 27 May 2014 12:40:35 Anatoly Mikhailov wrote: > [..] >> >> Валентин, пока подходящее решение не будет найдено, есть планы выложить >> текущий патч сюда http://nginx.org/patches/ ? Это было бы очень удобно. > > ok > > http://nginx.org/patches/patch.spdy_upstream_fix.txt спасибо! соберу на тестовом сервере и проверю как система себя ведет с этим патчем, если не секрет, в коммерческий релиз Nginx этот патч тоже пока не попал? > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From vbart at nginx.com Thu May 29 13:36:47 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 29 May 2014 17:36:47 +0400 Subject: =?UTF-8?B?UmU6IFNQRFkg0LLQvNC10YHRgtC1INGBINCy0LrQu9GO0YfQtdC90L3Ri9C8IHBy?= =?UTF-8?B?b3h5X2NhY2hlX2J5cGFzcyAoIzQyOCk=?= In-Reply-To: References: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> <2702734.o9QWP8dTeh@vbart-workstation> Message-ID: <1878949.JPPHYv9qVD@vbart-workstation> On Thursday 29 May 2014 12:49:28 Anatoly Mikhailov wrote: > On 27 May 2014, at 12:53, Валентин Бартенев wrote: > > > > On Tuesday 27 May 2014 12:40:35 Anatoly Mikhailov wrote: > > [..] > > > >> > >> Валентин, пока подходящее решение не будет найдено, есть планы выложить > >> текущий патч сюда http://nginx.org/patches/ ? Это было бы очень удобно. > > > > > > ok > > > > http://nginx.org/patches/patch.spdy_upstream_fix.txt > > > спасибо! соберу на тестовом сервере и проверю как система себя ведет с этим > патчем, если не секрет, в коммерческий релиз Nginx этот патч тоже пока не > попал? > Пакеты для nginx plus давно собираются с патчем. Таким образом, там проблем наблюдаться не должно. -- Валентин Бартенев From anatoly at sonru.com Thu May 29 13:57:19 2014 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Thu, 29 May 2014 14:57:19 +0100 Subject: =?UTF-8?B?UmU6IFNQRFkg0LLQvNC10YHRgtC1INGBINCy0LrQu9GO0YfQtdC90L3Ri9C8IHBy?= =?UTF-8?B?b3h5X2NhY2hlX2J5cGFzcyAoIzQyOCk=?= In-Reply-To: <1878949.JPPHYv9qVD@vbart-workstation> References: <482D278A-1A4D-47A9-B936-1E1786D37CCC@sonru.com> <2702734.o9QWP8dTeh@vbart-workstation> <1878949.JPPHYv9qVD@vbart-workstation> Message-ID: On 29 May 2014, at 14:36, Валентин Бартенев wrote: > On Thursday 29 May 2014 12:49:28 Anatoly Mikhailov wrote: >> On 27 May 2014, at 12:53, Валентин Бартенев wrote: >> >> >>> On Tuesday 27 May 2014 12:40:35 Anatoly Mikhailov wrote: >>> [..] >>> >>>> >>>> Валентин, пока подходящее решение не будет найдено, есть планы выложить >>>> текущий патч сюда http://nginx.org/patches/ ? Это было бы очень удобно. >>> >>> >>> ok >>> >>> http://nginx.org/patches/patch.spdy_upstream_fix.txt >> >> >> спасибо! соберу на тестовом сервере и проверю как система себя ведет с этим >> патчем, если не секрет, в коммерческий релиз Nginx этот патч тоже пока не >> попал? >> > > Пакеты для nginx plus давно собираются с патчем. Таким образом, там проблем > наблюдаться не должно. Валентин, патч решил проблему, спасибо! Будем ждать данный патч в опен-сорс версии Nginx! > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Thu May 29 14:50:42 2014 From: nginx-forum at nginx.us (Brazzford) Date: Thu, 29 May 2014 10:50:42 -0400 Subject: Nginx+AB test = 500 Internal Server Error Message-ID: Здравствуйте! Тестирую с помощью Apache Benchmark связку Nginx+Memcached. В Mem. храню целиком страницу. Пишу строку: ab -v 2 -n 20 -c 20 http://167.206.133.142/prac_m_n.php > ab_res.txt Всё в порядке. Пишу: ab -v 2 -n 100 -c 100 http://167.206.133.142/prac_m_n.php > ab_res.txt 28 раз получаю нормальный ответ, все остальные ответы: 500 Internal Server Error

500 Internal Server Error


nginx/1.1.19
Подскажите, пожалуйста, в чём может быть проблема? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250467,250467#msg-250467 From vbart at nginx.com Thu May 29 14:57:32 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 29 May 2014 18:57:32 +0400 Subject: Nginx+AB test = 500 Internal Server Error In-Reply-To: References: Message-ID: <3308081.RnAYYS4XXW@vbart-workstation> On Thursday 29 May 2014 10:50:42 Brazzford wrote: > Здравствуйте! Тестирую с помощью Apache Benchmark связку Nginx+Memcached. В > Mem. храню целиком страницу. Пишу строку: > ab -v 2 -n 20 -c 20 http://167.206.133.142/prac_m_n.php > ab_res.txt > Всё в порядке. > > Пишу: > ab -v 2 -n 100 -c 100 http://167.206.133.142/prac_m_n.php > ab_res.txt > > 28 раз получаю нормальный ответ, все остальные ответы: > > > 500 Internal Server Error > >

500 Internal Server Error

>
nginx/1.1.19
Версия nginx из каменного века. > > > > Подскажите, пожалуйста, в чём может быть проблема? > С этим вопросом стоит сперва обратиться к error_log, а только потом сюда, если ещё будет актуально. -- Валентин Бартенев From mdounin at mdounin.ru Thu May 29 15:07:05 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 29 May 2014 19:07:05 +0400 Subject: the http output chain is empty bug In-Reply-To: References: Message-ID: <20140529150705.GL1849@mdounin.ru> Hello! On Thu, May 29, 2014 at 03:59:56AM -0400, kirimedia wrote: > nginx >= 1.5.7 (в более новых воспроизводится) > Собран с lua модулем (0.9.8) (ошибка воспроизводится и с более новыми > версиями) > > # ./sbin/nginx -V > nginx version: nginx/1.5.7 > built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) > configure arguments: --add-module=../lua-nginx-module > > Конфиг > > user nginx; > worker_processes 1; > > error_log /var/log/nginx/nginx-error.log error; > > events { > use epoll; > } > > http { > gzip on; > > server { > listen 80; > root /usr/local/nginx/html; > > location = /empty/ { > empty_gif; > } > > location = /include/ { > content_by_lua ' > ngx.location.capture("/empty/") > ngx.location.capture("/empty/") > '; > } > > location = /ssi.html { > ssi on; > } > } > } > > Содержимое /usr/local/nginx/html/ssi.html > HEADER > > > При запросе http://localhost/ssi.html получаю пустой ответ (без заголовков и > без тела) > И в логе > [alert] 20457#0: *1 the http output chain is empty, client: 127.0.0.1, > server: , request: "GET /ssi.html HTTP/1.1", subrequest: "/include/" > > То есть, если из ssi запроса делаем 2 lua подзапроса и при этом перед ssi > запросом что-то выводится, и включен gzip модуль, то получаем пустой ответ. > > Ошибка появилась с версии 1.5.7. Так как в > src/http/modules/ngx_http_gzip_filter_module.c была добавлена проверка, что > цепочка чайнов (chain) не NULL > - if (ctx->nomem) { > + if (ctx->nomem || in == NULL) { > > При этом при 2х луа подзапросах из луа модуля вызывается > ngx_http_lua_flush_pending_output, которая вызывает > rc = ngx_http_lua_output_filter(r, NULL) как раз с пустой цепочкой чайнов. И > вероятно из за этого и случается ошибка. > > Помогите понять. Это проблема nginx или lua модуля? И как это можно > пофиксить? Скорее всего, это ошибка в lua-модуле. В чём конкретно - отдельный вопрос, есть смысл обрататиться к автору. Тем более, что упомянутое изменение в gzip-фильтре тоже его рук дело. > Зачем это условие в gzip фильтре? Вообще вызов output-фильтра с NULL в качестве цепочки - используется для того, чтобы по возможности "протолкнуть" ранее отправленные буфера, e.g. для освобождения памяти. Ранее gzip-фильтр такие попытки в процессе отправки ответа нивелировал, что неправильно. Вот тут поробный тред про это: http://mailman.nginx.org/pipermail/nginx-devel/2013-October/004429.html > Или вероятно из lua модуля должно вызваться ngx_http_send_special(r, flags); > с флагом NGX_HTTP_FLUSH, которая вызовет фильтры с некоторым чайном? Зависит от того, что именно делается. -- Maxim Dounin http://nginx.org/ From nginx-forum at nginx.us Thu May 29 15:18:25 2014 From: nginx-forum at nginx.us (Brazzford) Date: Thu, 29 May 2014 11:18:25 -0400 Subject: Nginx+AB test = 500 Internal Server Error In-Reply-To: <3308081.RnAYYS4XXW@vbart-workstation> References: <3308081.RnAYYS4XXW@vbart-workstation> Message-ID: <61cdf1e737bd2e76223666a3637a6d2d.NginxMailingListRussian@forum.nginx.org> Да, прошу прощение, надо было лог сначала посмотреть: HTTP/1.0", upstream: "memcached://167.206.133.142:11211", host: "167.206.133.142" 2014/05/29 11:05:51 [emerg] 2185#0: *677 malloc(104857600) failed (12: Cannot allocate memory) while reading response header from upstream, client: 100.84.35.193, server: mynginx, request: "GET /prac_m_n.php 100.84.35.193 - это хост с которого я делаю тест. 167.206.133.142 - тут стоит Nginx и Memcached. И что он тогда тут пишет? Не может выделить памяти пока читает заголовок ответа? Как это понять, я во время тестирования, на хосте, где Nginx, включил htop, никакой нагрузки нет. Почему же он пишет, что не может память выделить? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250467,250470#msg-250470 From vbart at nginx.com Thu May 29 15:23:05 2014 From: vbart at nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 29 May 2014 19:23:05 +0400 Subject: Nginx+AB test = 500 Internal Server Error In-Reply-To: <61cdf1e737bd2e76223666a3637a6d2d.NginxMailingListRussian@forum.nginx.org> References: <3308081.RnAYYS4XXW@vbart-workstation> <61cdf1e737bd2e76223666a3637a6d2d.NginxMailingListRussian@forum.nginx.org> Message-ID: <2457201.9HbBZAWRsb@vbart-workstation> On Thursday 29 May 2014 11:18:25 Brazzford wrote: > Да, прошу прощение, надо было лог сначала посмотреть: > HTTP/1.0", upstream: "memcached://167.206.133.142:11211", host: > "167.206.133.142" > 2014/05/29 11:05:51 [emerg] 2185#0: *677 malloc(104857600) failed (12: > Cannot allocate memory) while reading response header from upstream, client: > 100.84.35.193, server: mynginx, request: "GET /prac_m_n.php > > 100.84.35.193 - это хост с которого я делаю тест. > 167.206.133.142 - тут стоит Nginx и Memcached. > > И что он тогда тут пишет? Не может выделить памяти пока читает заголовок > ответа? Как это понять, я во время тестирования, на хосте, где Nginx, > включил htop, никакой нагрузки нет. Почему же он пишет, что не может память > выделить? > Вероятно потому, что она израсходована. -- Валентин Бартенев From mdounin at mdounin.ru Thu May 29 15:25:14 2014 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 29 May 2014 19:25:14 +0400 Subject: Nginx+AB test = 500 Internal Server Error In-Reply-To: <61cdf1e737bd2e76223666a3637a6d2d.NginxMailingListRussian@forum.nginx.org> References: <3308081.RnAYYS4XXW@vbart-workstation> <61cdf1e737bd2e76223666a3637a6d2d.NginxMailingListRussian@forum.nginx.org> Message-ID: <20140529152513.GN1849@mdounin.ru> Hello! On Thu, May 29, 2014 at 11:18:25AM -0400, Brazzford wrote: > Да, прошу прощение, надо было лог сначала посмотреть: > HTTP/1.0", upstream: "memcached://167.206.133.142:11211", host: > "167.206.133.142" > 2014/05/29 11:05:51 [emerg] 2185#0: *677 malloc(104857600) failed (12: > Cannot allocate memory) while reading response header from upstream, client: > 100.84.35.193, server: mynginx, request: "GET /prac_m_n.php > > 100.84.35.193 - это хост с которого я делаю тест. > 167.206.133.142 - тут стоит Nginx и Memcached. > > И что он тогда тут пишет? Не может выделить памяти пока читает заголовок > ответа? Как это понять, я во время тестирования, на хосте, где Nginx, > включил htop, никакой нагрузки нет. Почему же он пишет, что не может память > выделить? У вас, судя по всему, в конфиге memcached_buffer_size стоит 100m (зачем? загадка...), что ожидаемо приводит к расходу 100 мегабайт памяти на каждый выполняющийся запрос. С учётом того, что "ab -c 100" подразумевает до 100 одновременно выполняющихся запросов, на машине должно быть более 10 гигабайт памяти, иначе тест гарантированно упрётся в память. Подозреваю, что на самом деле памяти меньше. -- Maxim Dounin http://nginx.org/ From nginx-forum at nginx.us Thu May 29 15:27:11 2014 From: nginx-forum at nginx.us (Brazzford) Date: Thu, 29 May 2014 11:27:11 -0400 Subject: Nginx+AB test = 500 Internal Server Error In-Reply-To: <2457201.9HbBZAWRsb@vbart-workstation> References: <2457201.9HbBZAWRsb@vbart-workstation> Message-ID: Хм странно, всего то 100 одновременных запросов, даже Apache, без проблем, отвечает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250467,250475#msg-250475 From alex.barut at gmail.com Thu May 29 15:31:42 2014 From: alex.barut at gmail.com (Alex Belyansky) Date: Thu, 29 May 2014 19:31:42 +0400 Subject: Nginx+AB test = 500 Internal Server Error In-Reply-To: <61cdf1e737bd2e76223666a3637a6d2d.NginxMailingListRussian@forum.nginx.org> References: <3308081.RnAYYS4XXW@vbart-workstation> <61cdf1e737bd2e76223666a3637a6d2d.NginxMailingListRussian@forum.nginx.org> Message-ID: <538752DE.8030903@gmail.com> Вспоминая предыдущий вопрос, могу судить о том, что VPS сделана на технологии OpenVZ. Ограничения там как раз по выделяемой памяти, а не по фактически используемой. В этом случае лучше отказаться от идеи держать Memcached и Nginx рядом. On 29.05.2014 19:18, Brazzford wrote: > Да, прошу прощение, надо было лог сначала посмотреть: > HTTP/1.0", upstream: "memcached://167.206.133.142:11211", host: > "167.206.133.142" > 2014/05/29 11:05:51 [emerg] 2185#0: *677 malloc(104857600) failed (12: > Cannot allocate memory) while reading response header from upstream, client: > 100.84.35.193, server: mynginx, request: "GET /prac_m_n.php > > 100.84.35.193 - это хост с которого я делаю тест. > 167.206.133.142 - тут стоит Nginx и Memcached. > > И что он тогда тут пишет? Не может выделить памяти пока читает заголовок > ответа? Как это понять, я во время тестирования, на хосте, где Nginx, > включил htop, никакой нагрузки нет. Почему же он пишет, что не может память > выделить? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250467,250470#msg-250470 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Thu May 29 16:01:48 2014 From: nginx-forum at nginx.us (Brazzford) Date: Thu, 29 May 2014 12:01:48 -0400 Subject: Nginx+AB test = 500 Internal Server Error In-Reply-To: <20140529152513.GN1849@mdounin.ru> References: <20140529152513.GN1849@mdounin.ru> Message-ID: <9d01c0fe0f920c095bd3193b2df0085b.NginxMailingListRussian@forum.nginx.org> Большое спасибо за такие быстрые ответы! Очень меня выручили. Отдельное спасибо Maxim Dounin за то, что вы из прошлого поста заметили, что у меня memcached_buffer_size стоит 100m, я просто тогда не мог разобраться почему мне Nginx из Memc. казябры выдаёт =) Сейчас поставил 8к, и всё, теперь -n 350 -c 350 без проблем! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250467,250480#msg-250480 From nginx-forum at nginx.us Fri May 30 18:56:13 2014 From: nginx-forum at nginx.us (den68) Date: Fri, 30 May 2014 14:56:13 -0400 Subject: =?UTF-8?B?0JrQsNC6LdCx0Ysg0LrQvtC0INC/0L7QutGA0LDRgdC40LLRiNC1INGB0LTQtdC7?= =?UTF-8?B?0LDRgtGMPw==?= Message-ID: <33f3d4ac873e8f9b2cd0eeb0ec344d31.NginxMailingListRussian@forum.nginx.org> Вот такой кусок конфига, но как-то тяжеловато и неоднозначно выглядит, как облагородить? location ~* ^/download/(.+\.(?:aac|ogg|mp3|wma|wmv|webm|avi|mpe?g|mp4|mpa|asf|rm|rmvb))$ { internal; root $root_download_path; gzip off; mp4; mp4_buffer_size 1m; mp4_max_buffer_size 5m; rewrite ^/download/(.*)$ $1; proxy_hide_header X-Accel-Redirect; add_header ETag $upstream_http_etag; add_header 'Access-Control-Allow-Origin' '*.pick-nik.ru'; add_header 'Access-Control-Allow-Credentials' 'true'; error_log /var/log/httpd/nginx/off; access_log /var/log/httpd/nginx/off; break; } location ~* ^/download/(.+\.(?:flv|fla|swf))$ { internal; root $root_download_path; gzip off; flv; expires max; rewrite ^/download/(.*)$ $1; proxy_hide_header X-Accel-Redirect; add_header ETag $upstream_http_etag; add_header Cache-Control public; add_header 'Access-Control-Allow-Origin' '*.pick-nik.ru'; add_header 'Access-Control-Allow-Credentials' 'true'; error_log /var/log/httpd/nginx/off; access_log /var/log/httpd/nginx/off; break; } location ~* ^/download/(.+\.(?:rar|zip|tar|gz|lzh|lha|xz|7z|rpm))$ { internal; root $root_download_path; gzip off; rewrite ^/download/(.*)$ $1; expires max; proxy_hide_header X-Accel-Redirect; add_header ETag $upstream_http_etag; add_header Cache-Control public; add_header 'Access-Control-Allow-Origin' '*.pick-nik.ru'; add_header 'Access-Control-Allow-Credentials' 'true'; error_log /var/log/httpd/nginx/off; access_log /var/log/httpd/nginx/off; break; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250508,250508#msg-250508 From nginx-forum at nginx.us Sat May 31 18:59:50 2014 From: nginx-forum at nginx.us (lisua) Date: Sat, 31 May 2014 14:59:50 -0400 Subject: =?UTF-8?B?0JrQsNC6INC/0YDQuNCx0LjRgtGMINGB0L/QtdGG0LjRhNC40YfQtdGB0LrQuNGF?= =?UTF-8?B?INCx0L7RgtC+0LIg0YHRgNC10LTRgdGC0LLQsNC80LggTmdpbng=?= Message-ID: Добрый день! Как прибить специфических ботов средствами Nginx: 1) Боты шлют строго keep-alive: 300 в http заголовке 2) Другие боты не шлют поля accept_language Какими правилами без включения расширенного логгирования и бана по крону средствами ipset например, можно прибанить ботов, имееться ввиду бан в реальном времени. Данные о характеристиках ботов получены из другого открытого ПО из его логов. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250520,250520#msg-250520 From postmaster at softsearch.ru Sat May 31 19:44:06 2014 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Sat, 31 May 2014 23:44:06 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9GA0LjQsdC40YLRjCDRgdC/0LXRhtC40YTQuNGH0LXRgdC6?= =?UTF-8?B?0LjRhSDQsdC+0YLQvtCyINGB0YDQtdC00YHRgtCy0LDQvNC4IE5naW54?= In-Reply-To: References: Message-ID: <1193793177.20140531234406@softsearch.ru> Здравствуйте, lisua. > Как прибить специфических ботов средствами Nginx: > 1) Боты шлют строго keep-alive: 300 в http заголовке > 2) Другие боты не шлют поля accept_language > Какими правилами без включения расширенного логгирования и бана по крону > средствами ipset например, можно прибанить ботов, имееться ввиду бан в > реальном времени. > Данные о характеристиках ботов получены из другого открытого ПО из его > логов. Пиши лог нужные поля, а в цикле с паузой в секунду грепай этой лог по известным значения, вытаскивай ip и бань по нему силами фаервола. Это почти реально время, не ресурсозатратно и весьма гибко. Со временем можно будет дополнять правила, по которым ip надо вытаскивать. -- С уважением, Михаил mailto:postmaster at softsearch.ru From nginx-forum at nginx.us Sat May 31 20:04:53 2014 From: nginx-forum at nginx.us (lisua) Date: Sat, 31 May 2014 16:04:53 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9GA0LjQsdC40YLRjCDRgdC/0LXRhtC40YTQuNGH0LXRgdC6?= =?UTF-8?B?0LjRhSDQsdC+0YLQvtCyINGB0YDQtdC00YHRgtCy0LDQvNC4IE5naW54?= In-Reply-To: <1193793177.20140531234406@softsearch.ru> References: <1193793177.20140531234406@softsearch.ru> Message-ID: <2ec36f4bd15df5331ef41f4f6646176d.NginxMailingListRussian@forum.nginx.org> Можно пример "Пиши лог нужные поля, а в цикле с паузой в секунду грепай этой лог по известным значения" Банить умею, а вот с кастом логами Nginx пытался, но ниасилил, к сожалению, и неужели Nginx не умеет с отлупом 444 банить по сигнатуре http хедера досих пор ? У меня последняя версия Nginx, OS Debian 7 64 bit Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250520,250522#msg-250522 From nginx-forum at nginx.us Sat May 31 20:09:04 2014 From: nginx-forum at nginx.us (lisua) Date: Sat, 31 May 2014 16:09:04 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9GA0LjQsdC40YLRjCDRgdC/0LXRhtC40YTQuNGH0LXRgdC6?= =?UTF-8?B?0LjRhSDQsdC+0YLQvtCyINGB0YDQtdC00YHRgtCy0LDQvNC4IE5naW54?= In-Reply-To: <2ec36f4bd15df5331ef41f4f6646176d.NginxMailingListRussian@forum.nginx.org> References: <1193793177.20140531234406@softsearch.ru> <2ec36f4bd15df5331ef41f4f6646176d.NginxMailingListRussian@forum.nginx.org> Message-ID: <4193954dcd9e915b201c567940dcd227.NginxMailingListRussian@forum.nginx.org> Причём парсер строк с таким форматом 178.124.200.135|Mon 26 May 2014 15:21:36 +0200|200|26020||GET / HTTP/1.1|Host: bla.ru|Keep-Alive: 300|Connection: keep-alive|User-Agent: Mozilla/5.0 (compatible; iaskspider/1.0; MSIE 6.0) |Referer: hb4wx3n06hyw22.biz у меня есть уже готовый под другой реверс прокси, но вот как заставить nginx писать лог в такой формат ума не приложу Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250520,250523#msg-250523 From nginx-forum at nginx.us Sat May 31 20:56:52 2014 From: nginx-forum at nginx.us (lisua) Date: Sat, 31 May 2014 16:56:52 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQv9GA0LjQsdC40YLRjCDRgdC/0LXRhtC40YTQuNGH0LXRgdC6?= =?UTF-8?B?0LjRhSDQsdC+0YLQvtCyINGB0YDQtdC00YHRgtCy0LDQvNC4IE5naW54?= In-Reply-To: <4193954dcd9e915b201c567940dcd227.NginxMailingListRussian@forum.nginx.org> References: <1193793177.20140531234406@softsearch.ru> <2ec36f4bd15df5331ef41f4f6646176d.NginxMailingListRussian@forum.nginx.org> <4193954dcd9e915b201c567940dcd227.NginxMailingListRussian@forum.nginx.org> Message-ID: По второму вопросу разобрался сам, те по accept_language блокировке средствами Nginx по отсутствию поля в заголовке, а вот с keep-alive: 300 в http заголовке я пока не понимаю как блокировать, попытки через: if ($http_keepalive_timeout ~* '300') { return 403; } результата на тестовом генераторе с помощью курл не дали. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250520,250524#msg-250524