From mdounin at mdounin.ru Tue Oct 1 14:00:02 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 1 Oct 2013 18:00:02 +0400 Subject: nginx-1.5.6 Message-ID: <20131001140002.GH62063@mdounin.ru> Изменения в nginx 1.5.6 01.10.2013 *) Добавление: директива fastcgi_buffering. *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers. Спасибо Piotr Sikora. *) Добавление: оптимизация SSL handshake при использовании длинных цепочек сертификатов. *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining. *) Исправление: в модуле ngx_http_auth_basic_module при использовании метода шифрования паролей "$apr1$". Спасибо Markus Linnala. *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса мог использоваться неверный location, если для задания location'ов использовались символы разных регистров. *) Исправление: автоматическое перенаправление с добавлением завершающего слэша для проксированных location'ов могло не работать. *) Исправление: в почтовом прокси-сервере. *) Исправление: в модуле ngx_http_spdy_module. -- Maxim Dounin http://nginx.org/en/donation.html From anatoly at sonru.com Tue Oct 1 14:53:27 2013 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Tue, 1 Oct 2013 15:53:27 +0100 Subject: =?UTF-8?B?0LzQvtC00YPQu9GMIG5neF9odHRwX2F1dGhfYmFzaWNfbW9kdWxlINCyIDEuNS42?= Message-ID: <3716C423-50EE-44F7-ADE4-25DE5405A63A@sonru.com> > Исправление: в модуле ngx_http_auth_basic_module при использовании > метода шифрования паролей "$apr1$". > Спасибо Markus Linnala. Максим, это был критический багфикс? Что то серьезное или нет? Анатолий From mdounin at mdounin.ru Tue Oct 1 15:14:29 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 1 Oct 2013 19:14:29 +0400 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCBuZ3hfaHR0cF9hdXRoX2Jhc2ljX21vZHVsZSDQsiAx?= =?UTF-8?B?LjUuNg==?= In-Reply-To: <3716C423-50EE-44F7-ADE4-25DE5405A63A@sonru.com> References: <3716C423-50EE-44F7-ADE4-25DE5405A63A@sonru.com> Message-ID: <20131001151429.GM62063@mdounin.ru> Hello! On Tue, Oct 01, 2013 at 03:53:27PM +0100, Anatoly Mikhailov wrote: > > Исправление: в модуле ngx_http_auth_basic_module при использовании > > метода шифрования паролей "$apr1$". > > Спасибо Markus Linnala. > > > Максим, это был критический багфикс? Что то серьезное или нет? Там недовыделение 7 байт памяти под временное значение. В большинстве случаев ни к чему плохому не приводит (просто используется незанятая память в пуле запроса), в теории - может случиться segfault. http://trac.nginx.org/nginx/ticket/412 -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue Oct 1 15:22:14 2013 From: nginx-forum at nginx.us (Kirill) Date: Tue, 01 Oct 2013 11:22:14 -0400 Subject: Nginx, Node.JS and socket.io 504 timeout Message-ID: Здравствуйте! Nginx config server { listen *:80; server_name live.domain.com; server_tokens off; charset utf-8; error_log /var/log/nginx/live-error.log info; access_log /var/log/nginx/live-access.log; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:1337; proxy_redirect off; } } Node.js отлично работает с таким конфигом. Но если node.js выключен, то по ссылке http://live.domain.com/socket.io/socket.io.js я ожидаю какое-то время(read_timeout) и потом получаю 504 ошибку. Мне надо сделать так, чтобы если node,js выключен и клиент обращается к адресу http://live.domain.com/socket.io/socket.io.js , то ему СРАЗУ же выдается либо 404, либо 502 (что должно быть логично) Иначе я не понимаю как быть если node.js отвалился, а у пользователя не грузится страница из-за того, что js по указанному пути ожидает таймаута. Спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243312,243312#msg-243312 From vbart at nginx.com Tue Oct 1 15:40:19 2013 From: vbart at nginx.com (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Tue, 1 Oct 2013 19:40:19 +0400 Subject: Nginx, Node.JS and socket.io 504 timeout In-Reply-To: References: Message-ID: <201310011940.19284.vbart@nginx.com> On Tuesday 01 October 2013 19:22:14 Kirill wrote: > Здравствуйте! > > Nginx config > > server { > listen *:80; > server_name live.domain.com; > > server_tokens off; > charset utf-8; > > error_log /var/log/nginx/live-error.log info; > access_log /var/log/nginx/live-access.log; > > location / { > proxy_http_version 1.1; > proxy_set_header Upgrade $http_upgrade; > proxy_set_header Connection "upgrade"; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > proxy_set_header Host $http_host; > proxy_set_header X-NginX-Proxy true; > proxy_pass http://127.0.0.1:1337; > proxy_redirect off; > } > } > > Node.js отлично работает с таким конфигом. > Но если node.js выключен, то по ссылке > http://live.domain.com/socket.io/socket.io.js я ожидаю какое-то > время(read_timeout) и потом получаю 504 ошибку. > > Мне надо сделать так, чтобы если node,js выключен и клиент обращается к > адресу http://live.domain.com/socket.io/socket.io.js , то ему СРАЗУ же > выдается либо 404, либо 502 (что должно быть логично) Либо выключайте то, что у вас слушает 1337 порт, либо обучайте это самое отдавать соответствующий код. -- Валентин Бартенев http://nginx.org/en/donation.html From mdounin at mdounin.ru Tue Oct 1 15:45:41 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 1 Oct 2013 19:45:41 +0400 Subject: Nginx, Node.JS and socket.io 504 timeout In-Reply-To: References: Message-ID: <20131001154541.GN62063@mdounin.ru> Hello! On Tue, Oct 01, 2013 at 11:22:14AM -0400, Kirill wrote: > Здравствуйте! > > Nginx config > > server { > listen *:80; > server_name live.domain.com; > > server_tokens off; > charset utf-8; > > error_log /var/log/nginx/live-error.log info; > access_log /var/log/nginx/live-access.log; > > location / { > proxy_http_version 1.1; > proxy_set_header Upgrade $http_upgrade; > proxy_set_header Connection "upgrade"; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > proxy_set_header Host $http_host; > proxy_set_header X-NginX-Proxy true; > proxy_pass http://127.0.0.1:1337; > proxy_redirect off; > } > } > > Node.js отлично работает с таким конфигом. > Но если node.js выключен, то по ссылке > http://live.domain.com/socket.io/socket.io.js я ожидаю какое-то > время(read_timeout) и потом получаю 504 ошибку. > > Мне надо сделать так, чтобы если node,js выключен и клиент обращается к > адресу http://live.domain.com/socket.io/socket.io.js , то ему СРАЗУ же > выдается либо 404, либо 502 (что должно быть логично) > Иначе я не понимаю как быть если node.js отвалился, а у пользователя не > грузится страница из-за того, что js по указанному пути ожидает таймаута. Если на соответствующем порту никто не слушает - nginx должен получить RST в ответ на попытку соединения. Судя по описанию проблемы - у вас этого почему-то не происходит. Ищите в системе - скорее всего срабатывают какие-то ограничения/лимиты. E.g. на FreeBSD за соответствующее место отвечает net.inet.icmp.icmplim. -- Maxim Dounin http://nginx.org/en/donation.html From anatoly at sonru.com Tue Oct 1 15:54:28 2013 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Tue, 1 Oct 2013 16:54:28 +0100 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCBuZ3hfaHR0cF9hdXRoX2Jhc2ljX21vZHVsZSDQsiAx?= =?UTF-8?B?LjUuNg==?= In-Reply-To: <20131001151429.GM62063@mdounin.ru> References: <3716C423-50EE-44F7-ADE4-25DE5405A63A@sonru.com> <20131001151429.GM62063@mdounin.ru> Message-ID: <5462442A-DBE6-48AF-8C4E-B9556FE69AFE@sonru.com> On Oct 1, 2013, at 4:14 PM, Maxim Dounin wrote: > Hello! > > On Tue, Oct 01, 2013 at 03:53:27PM +0100, Anatoly Mikhailov wrote: > >>> Исправление: в модуле ngx_http_auth_basic_module при использовании >>> метода шифрования паролей "$apr1$". >>> Спасибо Markus Linnala. >> >> >> Максим, это был критический багфикс? Что то серьезное или нет? > > Там недовыделение 7 байт памяти под временное значение. В > большинстве случаев ни к чему плохому не приводит (просто > используется незанятая память в пуле запроса), в теории - может > случиться segfault. > > http://trac.nginx.org/nginx/ticket/412 понял, спасибо! > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Wed Oct 2 09:20:32 2013 From: nginx-forum at nginx.us (Unreal) Date: Wed, 02 Oct 2013 05:20:32 -0400 Subject: =?UTF-8?B?c2VjdXJlIGxpbmsg0LIg0YDQsNC30L3Ri9GFIGxvY2F0aW9u?= Message-ID: <5ca2a5b6dba7352f24d5f69f36da08bf.NginxMailingListRussian@forum.nginx.org> Здравствуйте. Столкнулся с проблемой - необходимо использовать secure_link в двух разных location с разными приципами формаирования secure_link_md5 в пределах одного server. Вроде все просто: server { listen 80; root /home/somepath/; server_name example.com; location ~ (\.mp4) { set $secretPharse xxx; set $key $arg_k; set $expire $arg_e; secure_link $key,$expire; secure_link_md5 $secretPharse$expire$remote_addr$uri; if ($secure_link != "1") { error_page 418 = @test2; return 418; } } location @test2 { set $secretPharse xxx2; set $key $arg_k; set $expire $arg_e; set $ip "192.168.1.1"; secure_link $key,$expire; secure_link_md5 $secretPharse$expire$ip$uri; if ($secure_link != "1") { return 403; } } } Но при этом ничего не работает. Собрал с debug, стал смотреть - первый локейшен отрабатывается четко как надо, переходим во второй, все выполняем кроме строк: secure_link $key,$expire; secure_link_md5 $secretPharse$expire$ip$uri; Их nginx пропускает, тоесть повтороно он не обсчитывает md5 хеш... При этом в документации указано, что secure_link может применяться в http, server, location . Что делать? P.S. пробовал также rewrite вместо именованного location, результат тотже самый. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243360,243360#msg-243360 From mdounin at mdounin.ru Wed Oct 2 10:20:19 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 2 Oct 2013 14:20:19 +0400 Subject: =?UTF-8?B?UmU6IHNlY3VyZSBsaW5rINCyINGA0LDQt9C90YvRhSBsb2NhdGlvbg==?= In-Reply-To: <5ca2a5b6dba7352f24d5f69f36da08bf.NginxMailingListRussian@forum.nginx.org> References: <5ca2a5b6dba7352f24d5f69f36da08bf.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131002102019.GT62063@mdounin.ru> Hello! On Wed, Oct 02, 2013 at 05:20:32AM -0400, Unreal wrote: > Здравствуйте. > > Столкнулся с проблемой - необходимо использовать secure_link в двух разных > location с разными приципами формаирования secure_link_md5 в пределах одного > server. Вроде все просто: [...] > Но при этом ничего не работает. Собрал с debug, стал смотреть - первый > локейшен отрабатывается четко как надо, переходим во второй, все выполняем > кроме строк: > secure_link $key,$expire; > secure_link_md5 $secretPharse$expire$ip$uri; > > Их nginx пропускает, тоесть повтороно он не обсчитывает md5 хеш... При этом > в документации указано, что secure_link может применяться в http, server, > location . Применять secure_link можно где угодно, но значение переменной $secure_link вычисляется только один раз за запрос. Единожды вычисленное значение - кешируется. Т.е. посчитать secure_link одним способом, а если не получилось, то другим - нельзя. > Что делать? Заранее разделить location'ы, где secure link'и нужно вычислять по разному, и уже после этого проверять $secure_link. Правильнее всего как-то так: location /old/ { secure_link ... secure_link_md5 ... if ($secure_link != 1) { return 403; } ... } location /new/ { secure_link ... secure_link_md5 ... if ($secure_link != 1) { return 403; } ... } -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Wed Oct 2 23:49:56 2013 From: nginx-forum at nginx.us (Aleus Essentia) Date: Wed, 02 Oct 2013 19:49:56 -0400 Subject: =?UTF-8?B?UmU6INCT0LXQvdC10YDQsNGG0LjRjyDQvtGC0LLQtdGC0LAg0LTQu9GPINC60Ls=?= =?UTF-8?B?0LjQtdC90YLQsCDQuCDQsNGB0LjQvdGF0YDQvtC90L3Ri9C1INGB0L7QutC1?= =?UTF-8?B?0YLRiw==?= In-Reply-To: <20130926122430.GB2271@mdounin.ru> References: <20130926122430.GB2271@mdounin.ru> Message-ID: <71cd8ba09bd4f1c70767793ae8b0557e.NginxMailingListRussian@forum.nginx.org> Вообщем проверил свой код ещё раз - всё работает. Просто буферы чуток неправильно формировал. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243053,243393#msg-243393 From nginx-forum at nginx.us Wed Oct 2 23:58:39 2013 From: nginx-forum at nginx.us (Aleus Essentia) Date: Wed, 02 Oct 2013 19:58:39 -0400 Subject: =?UTF-8?B?0JfQsNC/0YPRgdC6INC/0YDQvtCz0YDQsNC80Lwg0LjQtyDQvNC+0LTRg9C70Y8g?= =?UTF-8?B?bmdpbngu?= Message-ID: Добрый день! Столкнулся со странной проблемой в своём модули. Суть задачи в том, чтобы запустить одну программку, если она ещё не запущена. А проблема в том, что программа запускается далеко не всегда (проверил с разными программами), а после закрытия всех процессов nginx'а она иногда появляется сама в процессах. Причём эта проблема возникает когда запущены 4 процесса nginx. Когда включенна отладка и nginx работает как одиночный процесс, а не как демон, программы нормально запускаются. Вот код запуска: pid = fork(); if (pid < 0) { return NGX_ERROR; } else if (pid == 0) { execl( "anyprogram","anyprogram", (char*)NULL ); _exit(1); } waitpid(pid, &status, 0); Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243394,243394#msg-243394 From nginx-forum at nginx.us Thu Oct 3 13:05:04 2013 From: nginx-forum at nginx.us (Antohat) Date: Thu, 03 Oct 2013 09:05:04 -0400 Subject: =?UTF-8?B?0J/RgNC+0LLQtdGA0LrQsCDQsdGN0LrQtdC90LTQsCDQvdCwINCx0L7Qu9C10LUg?= =?UTF-8?B?0L3QvtCy0YvQuSDRhNCw0LnQuywg0YfQtdC8INCyINC60Y3RiNC1?= Message-ID: Добрый день, Возможно ли настроить кеширование бинарных файлов так, чтобы при запросе nginx делал HEAD запрос к бекенду и проверял, изменился ли файл по заголовкам ETag и/или Last-Modified ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243401,243401#msg-243401 From mdounin at mdounin.ru Thu Oct 3 13:20:18 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 3 Oct 2013 17:20:18 +0400 Subject: =?UTF-8?B?UmU6INCf0YDQvtCy0LXRgNC60LAg0LHRjdC60LXQvdC00LAg0L3QsCDQsdC+0Ls=?= =?UTF-8?B?0LXQtSDQvdC+0LLRi9C5INGE0LDQudC7LCDRh9C10Lwg0LIg0LrRjdGI0LU=?= In-Reply-To: References: Message-ID: <20131003132018.GF62063@mdounin.ru> Hello! On Thu, Oct 03, 2013 at 09:05:04AM -0400, Antohat wrote: > Возможно ли настроить кеширование бинарных файлов так, чтобы при запросе > nginx делал HEAD запрос к бекенду и проверял, изменился ли файл по > заголовкам ETag и/или Last-Modified ? Сейчас - нет, но stay tuned. http://trac.nginx.org/nginx/roadmap -- Maxim Dounin http://nginx.org/en/donation.html From n.g.i.n.x.e.r at gmail.com Fri Oct 4 12:08:01 2013 From: n.g.i.n.x.e.r at gmail.com (=?UTF-8?B?0KDQvtC80LDQvQ==?=) Date: Fri, 4 Oct 2013 16:08:01 +0400 Subject: =?UTF-8?B?cmVkaXJlY3Qg0YEg0L/RgdC10LLQtNC+0L3QuNC80L7Qsg==?= Message-ID: Добрый день, У сайта есть куча псевдонимов, с которых необходимо сделать редиект на основной домен. Сделал с помощью карты map $host $redirectToMainHost { default 0; www.site.ru 1; } server { ... if ($redirectToMainHost = 1) { rewrite ^(.*)$ http://site.ru$1 permanent; } ... } но почему то это приводит к ошибке: pid 73792 (nginx), uid 80: exited on signal 11 в чем я ошибся? -------------- next part -------------- An HTML attachment was scrubbed... URL: From nefer05 at gmail.com Fri Oct 4 12:15:13 2013 From: nefer05 at gmail.com (=?KOI8-R?B?8s/Nwc4g7c/Ty9fJ1MnO?=) Date: Fri, 4 Oct 2013 16:15:13 +0400 Subject: =?UTF-8?B?UmU6IHJlZGlyZWN0INGBINC/0YHQtdCy0LTQvtC90LjQvNC+0LI=?= In-Reply-To: References: Message-ID: Делается отдельная секция server {} с алиасами. А в ней только редирект на основной. А то какой то трэш вечно... 2013/10/4 Роман > Добрый день, > > У сайта есть куча псевдонимов, с которых необходимо сделать редиект на > основной домен. > > Сделал с помощью карты > > map $host $redirectToMainHost { > default 0; > www.site.ru 1; > } > > > server { > ... > if ($redirectToMainHost = 1) { > rewrite ^(.*)$ http://site.ru$1 permanent; > } > ... > } > > но почему то это приводит к ошибке: > > pid 73792 (nginx), uid 80: exited on signal 11 > > в чем я ошибся? > > _______________________________________________ > 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 n.g.i.n.x.e.r at gmail.com Fri Oct 4 12:35:35 2013 From: n.g.i.n.x.e.r at gmail.com (=?UTF-8?B?0KDQvtC80LDQvQ==?=) Date: Fri, 4 Oct 2013 16:35:35 +0400 Subject: =?UTF-8?B?UmU6IHJlZGlyZWN0INGBINC/0YHQtdCy0LTQvtC90LjQvNC+0LI=?= In-Reply-To: References: Message-ID: А как быть, если нужны редиректы типа *.site.ru ? 4 октября 2013 г., 16:15 пользователь Роман Москвитин написал: > Делается отдельная секция server {} с алиасами. А в ней только редирект на > основной. > А то какой то трэш вечно... > > > 2013/10/4 Роман > >> Добрый день, >> >> У сайта есть куча псевдонимов, с которых необходимо сделать редиект на >> основной домен. >> >> Сделал с помощью карты >> >> map $host $redirectToMainHost { >> default 0; >> www.site.ru 1; >> } >> >> >> server { >> ... >> if ($redirectToMainHost = 1) { >> rewrite ^(.*)$ http://site.ru$1 permanent; >> } >> ... >> } >> >> но почему то это приводит к ошибке: >> >> pid 73792 (nginx), uid 80: exited on signal 11 >> >> в чем я ошибся? >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > 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 nefer05 at gmail.com Fri Oct 4 12:54:32 2013 From: nefer05 at gmail.com (=?KOI8-R?B?8s/Nwc4g7c/Ty9fJ1MnO?=) Date: Fri, 4 Oct 2013 16:54:32 +0400 Subject: =?UTF-8?B?UmU6IHJlZGlyZWN0INGBINC/0YHQtdCy0LTQvtC90LjQvNC+0LI=?= In-Reply-To: References: Message-ID: Точно так же. Либо расшифруйте. 2013/10/4 Роман > А как быть, если нужны редиректы типа *.site.ru ? > > > 4 октября 2013 г., 16:15 пользователь Роман Москвитин написал: > > Делается отдельная секция server {} с алиасами. А в ней только редирект на >> основной. >> А то какой то трэш вечно... >> >> >> 2013/10/4 Роман >> >>> Добрый день, >>> >>> У сайта есть куча псевдонимов, с которых необходимо сделать редиект на >>> основной домен. >>> >>> Сделал с помощью карты >>> >>> map $host $redirectToMainHost { >>> default 0; >>> www.site.ru 1; >>> } >>> >>> >>> server { >>> ... >>> if ($redirectToMainHost = 1) { >>> rewrite ^(.*)$ http://site.ru$1 permanent; >>> } >>> ... >>> } >>> >>> но почему то это приводит к ошибке: >>> >>> pid 73792 (nginx), uid 80: exited on signal 11 >>> >>> в чем я ошибся? >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > 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 Fri Oct 4 12:58:13 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 4 Oct 2013 16:58:13 +0400 Subject: =?UTF-8?B?UmU6IHJlZGlyZWN0INGBINC/0YHQtdCy0LTQvtC90LjQvNC+0LI=?= In-Reply-To: References: Message-ID: <20131004125813.GN62063@mdounin.ru> Hello! On Fri, Oct 04, 2013 at 04:08:01PM +0400, Роман wrote: > Добрый день, > > У сайта есть куча псевдонимов, с которых необходимо сделать редиект на > основной домен. > > Сделал с помощью карты > > map $host $redirectToMainHost { > default 0; > www.site.ru 1; > } > > > server { > ... > if ($redirectToMainHost = 1) { > rewrite ^(.*)$ http://site.ru$1 permanent; > } > ... > } > > но почему то это приводит к ошибке: > > pid 73792 (nginx), uid 80: exited on signal 11 > > в чем я ошибся? Как уже подсказали, правильно - сделать отдельный блок server{}, где и обрабатывать всё, что нужно редиректить. Подробности можно почитать где-то тут: http://nginx.org/ru/docs/http/request_processing.html http://nginx.org/ru/docs/http/server_names.html Но таки если падает, то в любом случае имеет смысл разобраться и исправить. Для этого желательно убедиться, что проблема воспроизводится в свежих версиях, после чего прислать nginx -V, конфиг и backtrace. Подробнее тут: http://wiki.nginx.org/Debugging -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Sat Oct 5 03:03:18 2013 From: nginx-forum at nginx.us (Aleus Essentia) Date: Fri, 04 Oct 2013 23:03:18 -0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YHQuiDQv9GA0L7Qs9GA0LDQvNC8INC40Lcg0LzQvtC00YM=?= =?UTF-8?B?0LvRjyBuZ2lueC4=?= In-Reply-To: References: Message-ID: <2e4273ef0305152632a63481262d4184.NginxMailingListRussian@forum.nginx.org> Моя программа не запускалась потому, что nginx по умолчанию в режиме демона с мастер процессом запускает worker-процессы не от root, под которым запущен master-процесс, а из-под пользователя nobody. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243394,243448#msg-243448 From nginx-forum at nginx.us Sat Oct 5 03:26:36 2013 From: nginx-forum at nginx.us (Aleus Essentia) Date: Fri, 04 Oct 2013 23:26:36 -0400 Subject: =?UTF-8?B?0JrQsNC6INGB0LTQtdC70LDRgtGMINCw0YHRgdC40L3RhdGA0L7QvdC90YvQuSA=?= =?UTF-8?B?0LLQsNGA0LjQsNC90YIg0L7QsdGA0LDQsdC+0YLRh9C40LrQsCBjcmVhdGUg?= =?UTF-8?B?cmVxdWVzdD8=?= Message-ID: В обработчик событий create_request мы заполняем цепучку буферов u->request_bufs, которые потом отдаётся наверх к upstream-серверу. Но сам обработчик CreateRequest не является асинхронным, как, скажем, обработчик process_header. Проблема в том, что нужно запускать upstream-сервер из модуля (если он не запущен) перед обработчиком process_header (перед его запуском мы можем перехватывать обработку только в create_request, а запускаться он может несколько минут. Подскажите, как можно исхитрится в этой ситуации? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243449,243449#msg-243449 From nginx-forum at nginx.us Sat Oct 5 04:26:25 2013 From: nginx-forum at nginx.us (Aleus Essentia) Date: Sat, 05 Oct 2013 00:26:25 -0400 Subject: =?UTF-8?B?0KDQsNC30LvQuNGH0LjRjyDQsiDQv9C10YDQtdC80LXQvdC90YvRhSDQsNC00YA=?= =?UTF-8?B?0LXRgdCw?= Message-ID: <4fecae33cef2d7c37dd31b38162f6521.NginxMailingListRussian@forum.nginx.org> Вопрос: в чём разница следующих переменных: r->headers_in.host, r->headers_in.server, r->connection->addr_text? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243450,243450#msg-243450 From ru at nginx.com Mon Oct 7 08:44:46 2013 From: ru at nginx.com (Ruslan Ermilov) Date: Mon, 7 Oct 2013 12:44:46 +0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C70LjRh9C40Y8g0LIg0L/QtdGA0LXQvNC10L3QvdGL0YUg0LA=?= =?UTF-8?B?0LTRgNC10YHQsA==?= In-Reply-To: <4fecae33cef2d7c37dd31b38162f6521.NginxMailingListRussian@forum.nginx.org> References: <4fecae33cef2d7c37dd31b38162f6521.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131007084446.GA98583@lo0.su> On Sat, Oct 05, 2013 at 12:26:25AM -0400, Aleus Essentia wrote: > Вопрос: в чём разница следующих переменных: > r->headers_in.host, Значение заголовка Host из запроса. > r->headers_in.server, Имя запрашиваемого хоста (определяется либо из строки запроса, либо по заголовку Host). > r->connection->addr_text? Текстовое представление адреса клиента. From chipitsine at gmail.com Mon Oct 7 17:31:22 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Mon, 7 Oct 2013 23:31:22 +0600 Subject: =?UTF-8?B?0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LUgWC1BY2NlbC1DaGFyc2V0ID8=?= Message-ID: Добрый день! приведите, пожалуйста, пример, как можно использовать X-Accel-Charset ? не могу придумать такую ситуацию. Илья Шипицин From igor at sysoev.ru Mon Oct 7 17:52:09 2013 From: igor at sysoev.ru (Igor Sysoev) Date: Mon, 7 Oct 2013 21:52:09 +0400 Subject: =?UTF-8?B?UmU6INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IFgtQWNjZWwtQ2hhcnNldCA/?= In-Reply-To: References: Message-ID: On Oct 7, 2013, at 21:31 , Илья Шипицин wrote: > Добрый день! > > приведите, пожалуйста, пример, как можно использовать X-Accel-Charset ? > не могу придумать такую ситуацию. В Рамблере использовалось. Для чего - уже не помню и из переписки не ясно. Может, Макс вспомнит - в почте оно тоже использовалось. Возможно, для интеграции с поиском. -- Igor Sysoev http://nginx.com From sb at waeme.net Mon Oct 7 21:08:28 2013 From: sb at waeme.net (Sergey Budnevitch) Date: Tue, 8 Oct 2013 01:08:28 +0400 Subject: =?UTF-8?B?UmU6INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IFgtQWNjZWwtQ2hhcnNldCA/?= In-Reply-To: References: Message-ID: <55DA1727-1346-463A-857F-C778376675B2@waeme.net> On 7 Oct2013, at 21:31 , Илья Шипицин wrote: > Добрый день! > > приведите, пожалуйста, пример, как можно использовать X-Accel-Charset ? > не могу придумать такую ситуацию. Есть два варианта: а) это можно реализовать, чтобы люди потом ломали голову как бы это использовать. b) вы разве не видели сайты, которые выдаются в одной кодировке, а в заголовках совсем другая? From mdounin at mdounin.ru Mon Oct 7 22:53:44 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 8 Oct 2013 02:53:44 +0400 Subject: =?UTF-8?B?UmU6INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IFgtQWNjZWwtQ2hhcnNldCA/?= In-Reply-To: References: Message-ID: <20131007225344.GE76294@mdounin.ru> Hello! On Mon, Oct 07, 2013 at 09:52:09PM +0400, Igor Sysoev wrote: > On Oct 7, 2013, at 21:31 , Илья Шипицин wrote: > > > Добрый день! > > > > приведите, пожалуйста, пример, как можно использовать X-Accel-Charset ? > > не могу придумать такую ситуацию. > > В Рамблере использовалось. Для чего - уже не помню и из переписки не ясно. > Может, Макс вспомнит - в почте оно тоже использовалось. Возможно, для > интеграции с поиском. В почте use case был какой-то такой: - Пользователь сам выбирает charset, в котором ему отдавать страницы, в настройках. - Бекенд при этом сам ничего не конвертирует, выдаёт страницы как есть, и при необходимости просит nginx их переконвертировать в нужный пользователю charset. С тех пор надобность в подобных ухищениях практически полностью отпала, клиентов, не понимающих UTF-8, почитай что и не осталось. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Mon Oct 7 23:12:46 2013 From: nginx-forum at nginx.us (Aleus Essentia) Date: Mon, 07 Oct 2013 19:12:46 -0400 Subject: =?UTF-8?B?UmU6INCg0LDQt9C70LjRh9C40Y8g0LIg0L/QtdGA0LXQvNC10L3QvdGL0YUg0LA=?= =?UTF-8?B?0LTRgNC10YHQsA==?= In-Reply-To: <20131007084446.GA98583@lo0.su> References: <20131007084446.GA98583@lo0.su> Message-ID: <2c86ee163a0d319cbd1ebfc7bec1ec18.NginxMailingListRussian@forum.nginx.org> Благодарю, так и предполагал. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243450,243494#msg-243494 From chipitsine at gmail.com Tue Oct 8 03:29:29 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 8 Oct 2013 09:29:29 +0600 Subject: =?UTF-8?B?UmU6INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IFgtQWNjZWwtQ2hhcnNldCA/?= In-Reply-To: <55DA1727-1346-463A-857F-C778376675B2@waeme.net> References: <55DA1727-1346-463A-857F-C778376675B2@waeme.net> Message-ID: у нас все use-case заключаются в том, что nginx проксирует на http, собственно в этом варианте бекенд честно выставляет кодировку, без необходимости использования X-Accel-Charset. я так и подозревал, что этот хедер задумывался для других ситуаций, было интересно послушать примеры. 8 октября 2013 г., 3:08 пользователь Sergey Budnevitch написал: > > On 7 Oct2013, at 21:31 , Илья Шипицин wrote: > >> Добрый день! >> >> приведите, пожалуйста, пример, как можно использовать X-Accel-Charset ? >> не могу придумать такую ситуацию. > > Есть два варианта: > а) это можно реализовать, чтобы люди потом ломали голову как бы это использовать. > b) вы разве не видели сайты, которые выдаются в одной кодировке, а в заголовках совсем другая? > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Tue Oct 8 13:42:26 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 8 Oct 2013 17:42:26 +0400 Subject: nginx-1.4.3 Message-ID: <20131008134226.GO76294@mdounin.ru> Изменения в nginx 1.4.3 08.10.2013 *) Исправление: в рабочем процессе мог произойти segmentation fault, если использовался модуль ngx_http_spdy_module и директива client_body_in_file_only. *) Исправление: на старте или во время переконфигурации мог произойти segmentation fault, если использовалась директива try_files с пустым параметром. *) Исправление: переменная $request_time не работала в nginx/Windows. *) Исправление: в модуле ngx_http_auth_basic_module при использовании метода шифрования паролей "$apr1$". Спасибо Markus Linnala. *) Исправление: в модуле ngx_http_autoindex_module. *) Исправление: в почтовом прокси-сервере. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue Oct 8 15:05:06 2013 From: nginx-forum at nginx.us (winbackgo) Date: Tue, 08 Oct 2013 11:05:06 -0400 Subject: =?UTF-8?B?0KHQsdGA0L7RgSDQutGN0YjQsCDRgdGC0LDRgtC40LrQuA==?= Message-ID: Добрый день Почему-то nginx перестал сбрасывать кэш статики. Есть к примеру /script.js?1.5.0 если изменть файл и обратиться к /script.js?1.5.1 то nginx продалжает отдавать старый файл (ответ идет 200 а не 304). Как решить проблему? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243528,243528#msg-243528 From mdounin at mdounin.ru Tue Oct 8 16:05:29 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 8 Oct 2013 20:05:29 +0400 Subject: =?UTF-8?B?UmU6INCh0LHRgNC+0YEg0LrRjdGI0LAg0YHRgtCw0YLQuNC60Lg=?= In-Reply-To: References: Message-ID: <20131008160529.GR76294@mdounin.ru> Hello! On Tue, Oct 08, 2013 at 11:05:06AM -0400, winbackgo wrote: > Добрый день > > Почему-то nginx перестал сбрасывать кэш статики. Есть к примеру > /script.js?1.5.0 если изменть файл и обратиться к /script.js?1.5.1 то nginx > продалжает отдавать старый файл (ответ идет 200 а не 304). Как решить > проблему? Наш штатный телепат только что вернулся из отпуска и сейчас очень занят, но я попробую догадаться - скорее всего у вас включён open_file_cache. Решение - дождаться, когда пройдёт означенное в настройках open_file_cache время, либо же сбросить кеш, что проще всего сделать, послав сигнал HUP nginx'у. Ну и переконфигуровать nginx так, чтобы больше у вас подобных проблем не возникало. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue Oct 8 16:20:32 2013 From: nginx-forum at nginx.us (winbackgo) Date: Tue, 08 Oct 2013 12:20:32 -0400 Subject: =?UTF-8?B?UmU6INCh0LHRgNC+0YEg0LrRjdGI0LAg0YHRgtCw0YLQuNC60Lg=?= In-Reply-To: <20131008160529.GR76294@mdounin.ru> References: <20131008160529.GR76294@mdounin.ru> Message-ID: <3432e3fa30f382b4bf28a88f915f1c8f.NginxMailingListRussian@forum.nginx.org> Спасибо. Да вы правы. Имеются такие параметры: open_file_cache max=2000; open_file_cache_valid 1360s; open_file_cache_min_uses 3; open_file_cache_errors on; По сути все устраивает, файлы не так часто меняются. Значит сбросить кэш автоматически через query_string не получиться в таком случае? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243528,243532#msg-243532 From mdounin at mdounin.ru Tue Oct 8 16:29:00 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 8 Oct 2013 20:29:00 +0400 Subject: =?UTF-8?B?UmU6INCh0LHRgNC+0YEg0LrRjdGI0LAg0YHRgtCw0YLQuNC60Lg=?= In-Reply-To: <3432e3fa30f382b4bf28a88f915f1c8f.NginxMailingListRussian@forum.nginx.org> References: <20131008160529.GR76294@mdounin.ru> <3432e3fa30f382b4bf28a88f915f1c8f.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131008162900.GS76294@mdounin.ru> Hello! On Tue, Oct 08, 2013 at 12:20:32PM -0400, winbackgo wrote: > Спасибо. Да вы правы. Имеются такие параметры: > open_file_cache max=2000; > open_file_cache_valid 1360s; > open_file_cache_min_uses 3; > open_file_cache_errors on; > > По сути все устраивает, файлы не так часто меняются. Значит сбросить кэш > автоматически через query_string не получиться в таком случае? Нет. Кеш открытых дескрипторов файлов, он же open_file_cache, никак не зависит от того, каким именно был запрос. Скорее всего он вам просто не нужен, ибо на unix'ах операция открытия файла - дешёвая. Померяйте разницу под реальной нагрузкой. -- Maxim Dounin http://nginx.org/en/donation.html From vladimir at skubriev.ru Wed Oct 9 07:53:15 2013 From: vladimir at skubriev.ru (Vladimir Skubriev) Date: Wed, 09 Oct 2013 11:53:15 +0400 Subject: =?UTF-8?B?0L/RgNCw0LLQuNC70YzQvdCw0Y8g0L3QsNGB0YLRgNC+0LnQutCwINC/0YDQvtC6?= =?UTF-8?B?0YHQuCDQvdCwINC90LXRgdC60L7Qu9GM0LrQviDRgdCw0LnRgtC+0LIu?= Message-ID: <52550B6B.6080408@skubriev.ru> Прошу прощения за такой простой вопрос. Есть сервер с настроенным apache и несклькими Virtualhosts внутри ЛВС: ServerName redmine.example.lab ServerAlias redmine.examplelab.com ServerAlias redmine ServerAlias redmine-dev.example.lab # TODO remove this before production release ServerAdmin skubriev at examplelab.com DocumentRoot /mnt/datafs/redmine/public ErrorLog /mnt/datafs/log/error-redmine.log CustomLog /mnt/datafs/log/access-remine.log combined LogLevel warn # This is unsecure, see # http://httpd.apache.org/docs/current/misc/security_tips.html # Protecting System Settings # This prevents the use of .htaccess files in all directories apart from those specifically enabled. AllowOverride all # Autofind resources(files) is unsecure - disable this extension by symbol (minus) Options -MultiViews # Setup Mercurial Repos PerlLoadModule Apache2::Redmine PerlLoadModule Authen::Simple::LDAP WSGIScriptAlias /hg "/mnt/datafs/config/hgweb.wsgi" #Redmine auth PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=redmine;host=localhost" RedmineDbUser "redmine" RedmineDbPass "redmine" AuthType Basic AuthName "exampleLab Mercurial Repository" Require valid-user ServerName git.example.lab ServerAlias git.examplelab.com ServerAlias git ServerAdmin skubriev at examplelab.com ErrorLog /mnt/datafs/log/error-git.log CustomLog /mnt/datafs/log/access-git.log combined LogLevel warn SetEnv GIT_PROJECT_ROOT /mnt/datafs/repos/git SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias / /usr/lib/git-core/git-http-backend/ # Load Redmine.pm PerlLoadModule Apache2::Redmine AuthType Basic AuthName "examplelab Redmine git repositories" AuthUserFile /dev/null Require valid-user RedmineGitSmartHttp yes #Redmine auth PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=redmine;host=localhost" RedmineDbUser "redmine" RedmineDbPass "redmine" На шлюзе стоит nginx со следующей конфигурацией: upstream backendredmine { server 192.168.128.11:80; } upstream backendredminedev { server 192.168.128.12:80; } server { listen 80; server_name redmine.examplelab.com; access_log /var/log/nginx/redmineproxy.acess.log; error_log /var/log/nginx/redmineproxy.error.log; location / { proxy_pass http://backendredmine; } } server { # http://habrahabr.ru/post/195808/ listen 443 ssl; server_name redmine.examplelab.com; keepalive_timeout 60; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; #private ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH"; add_header Strict-Transport-Security 'max-age=604800'; access_log /var/log/nginx/redmineproxy-https.acess.log; error_log /var/log/nginx/redmineproxy-https.error.log; location / { proxy_pass http://backendredminedev; } } Сейчас пользователи работают через 80 порт только: server { listen 80; server_name redmine.examplelab.com; В дальнейшем мне нужно будет перевести всех на redmine-dev backend и настроить https. Т.е. чтобы пользователи при обращении redmine.examplelab.com могли работать как с веб мордой Redmine, с репозиториями git и hg по HTTP и по HTTPS Проблема в том, что если я попытаюсь откуда нибудь из Интернет зайти на https://redmine.examplelab.com, то я почему то попадаю на git и вылазит окно авторизации. Веб морда редмаин почему то ни когда не открывается. Я не понимаю, что вообще настраиваю. Это можно сказать мой третий веб сервер и первый прокси. Объясните пожалуйста какая взаимосвязь между прокси и сервером внутри сети на пальцах что-ли. Что нужно почитать перед тем, как браться настраивать веб сервер? Просто обычно делаешь все по каким нибудь статьям в Интернет. Спору нет к результату приходишь. Но ясности понимания работы HTTP это не привносит. Я конечно в курсе что есть стандарты и в Интернет много информации. Но возможно существует какая то хорошая статья где принцип работы разжевывается. Было бы неплохо, если бы эта статья было про проксирование. Спасибо. -- С Уважением, специалист по техническому и программному обеспечению, системный администратор Скубриев Владимир ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Россия, Ростовская область, г. Таганрог тел. моб: +7 (918) 504 38 20 skype: v.skubriev icq: 214-800-502 www: skubriev.ru From nginx-forum at nginx.us Wed Oct 9 09:23:50 2013 From: nginx-forum at nginx.us (Cergoo) Date: Wed, 09 Oct 2013 05:23:50 -0400 Subject: Redirect Message-ID: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> В Апаче и IIS есть модуль Redirect который маршрутизирует запросы пришедшие на сервер, в NGINX есть только модуль проксирования, почему отсутсвует просто модуль редиректа?, ведь зачастую в проксировании(то есть пропускании через себя и запросов и ответов) необходимости нет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243543#msg-243543 From undying-m at yandex.ru Wed Oct 9 09:38:12 2013 From: undying-m at yandex.ru (Den Bozhok) Date: Wed, 09 Oct 2013 13:38:12 +0400 Subject: Redirect In-Reply-To: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> References: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> Message-ID: <205861381311492@web10m.yandex.ru> Но ведь есть return: http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#return 09.10.2013, 13:24, "Cergoo" : > В Апаче и IIS есть модуль Redirect который маршрутизирует запросы пришедшие > на сервер, в NGINX есть только модуль проксирования, почему отсутсвует > просто модуль редиректа?, ведь зачастую в проксировании(то есть пропускании > через себя и запросов и ответов) необходимости нет. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243543#msg-243543 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Wed Oct 9 09:49:18 2013 From: nginx-forum at nginx.us (Neutrino_9) Date: Wed, 09 Oct 2013 05:49:18 -0400 Subject: =?UTF-8?B?bmdpbnggKyBodHRwIHJlZGlzIG1vZHVsZSDQutC10YjQuNGA0L7QstCw0L3QuNC1?= =?UTF-8?B?INGB0YLQsNGC0LjRh9C10YHQutC+0LPQviDQutC+0L3RgtC10L3RgtCwLg==?= Message-ID: Добрый день. Предо мной стоит задача кэширования статического контента прямо в Redis. Для взаимодействия с Redis -ом использую модуль http_redis_module (http://wiki.nginx.org/HttpRedis). Проблема в том что строчка set $redis_key "$uri?$args"; у меня не работает (OS-mac os-x), то есть когда проверяю, то в redis-cli нет ключа с значением $uri?$args. Что делать?. Вот мой конфиг worker_processes 1; pid nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; error_log /var/log/nginx-error.log debug; access_log /var/log/nginx_access.log; location / { root /Users/my_comp/nginx/nginx_2/temp_content/; set $redis_db "1"; set $redis_key "$uri?$args"; redis_pass 127.0.0.1:6379; error_page 404 502 504 = @fallback; } location @fallback { proxy_pass http://127.0.0.1:6379; } } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243545,243545#msg-243545 From nginx-forum at nginx.us Wed Oct 9 10:01:40 2013 From: nginx-forum at nginx.us (Cergoo) Date: Wed, 09 Oct 2013 06:01:40 -0400 Subject: Redirect In-Reply-To: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> References: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> Message-ID: <790aa242a37860e68c3affd2db5ba951.NginxMailingListRussian@forum.nginx.org> --Но ведь есть return: --http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#return Сколь понимаю это посылает клиенту ответ с предписанием перейти по другому url. модуль "редирект" не извещает клиента, он пересылает запрос на новый адрес(но не подменяет адрес клиента на свой то есть не перехватывает ответы) и http сервер сам отсылает ответ клиенту минуя редиректора. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243547#msg-243547 From undying-m at yandex.ru Wed Oct 9 10:14:58 2013 From: undying-m at yandex.ru (Den Bozhok) Date: Wed, 09 Oct 2013 14:14:58 +0400 Subject: Redirect In-Reply-To: <790aa242a37860e68c3affd2db5ba951.NginxMailingListRussian@forum.nginx.org> References: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> <790aa242a37860e68c3affd2db5ba951.NginxMailingListRussian@forum.nginx.org> Message-ID: <323731381313698@web10m.yandex.ru> An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Wed Oct 9 11:29:03 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 9 Oct 2013 15:29:03 +0400 Subject: =?UTF-8?B?UmU6INC/0YDQsNCy0LjQu9GM0L3QsNGPINC90LDRgdGC0YDQvtC50LrQsCDQv9GA?= =?UTF-8?B?0L7QutGB0Lgg0L3QsCDQvdC10YHQutC+0LvRjNC60L4g0YHQsNC50YLQvtCy?= =?UTF-8?B?Lg==?= In-Reply-To: <52550B6B.6080408@skubriev.ru> References: <52550B6B.6080408@skubriev.ru> Message-ID: <20131009112902.GV76294@mdounin.ru> Hello! On Wed, Oct 09, 2013 at 11:53:15AM +0400, Vladimir Skubriev wrote: > Есть сервер с настроенным apache и несклькими Virtualhosts внутри ЛВС: [...] > proxy_pass http://backendredminedev; [...] > Проблема в том, что если я попытаюсь откуда нибудь из Интернет зайти > на https://redmine.examplelab.com, то я почему то попадаю на git и > вылазит окно авторизации. Веб морда редмаин почему то ни когда не > открывается. Когда вы пишете "proxy_pass http://backendredminedev" - на бекенд уходит заголовок "Host: backendredminedev". Если на бекенде при этом используются виртуальные сервера - то нужно либо прописать нужное имя в алиасы, либо, наоборот, обучить nginx использовать нужное имя в запросе (обычно это делается с помощью "proxy_set_header Host $host;" в конфиге nginx'а). Иначе бекенд не сможет правильно выбрать виртуальный сервер - он же ничего не знает про "backendredminedev". Ссылки по теме: http://nginx.org/r/proxy_pass http://nginx.org/r/proxy_set_header > Что нужно почитать перед тем, как браться настраивать веб сервер? > Просто обычно делаешь все по каким нибудь статьям в Интернет. Спору > нет к результату приходишь. Но ясности понимания работы HTTP это не > привносит. Если хочется полноценного понимания - я бы рекомендовал ознакомиться со стандартом, RFC 2616: http://tools.ietf.org/html/rfc2616 Но это может быть немного сложно на начальном этапе, возможно имеет смысл поискать что-нибудь более популярное - например, начать со статьи в Bикипедии: http://en.wikipedia.org/wiki/HTTP Более приятных популярных источников не подскажу, sorry. Общий совет - осторожнее с русскоязычными документами - они в заметном проценте случаев оставляют желать. Что же касается nginx'а, то в первую очередь имеет смысл ознакомиться вот с этими тремя статьями: http://nginx.org/ru/docs/http/request_processing.html http://nginx.org/ru/docs/http/server_names.html http://nginx.org/ru/docs/http/configuring_https_servers.html -- Maxim Dounin http://nginx.org/en/donation.html From mdounin at mdounin.ru Wed Oct 9 11:34:26 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 9 Oct 2013 15:34:26 +0400 Subject: =?UTF-8?B?UmU6IG5naW54ICsgaHR0cCByZWRpcyBtb2R1bGUg0LrQtdGI0LjRgNC+0LLQsNC9?= =?UTF-8?B?0LjQtSDRgdGC0LDRgtC40YfQtdGB0LrQvtCz0L4g0LrQvtC90YLQtdC90YI=?= =?UTF-8?B?0LAu?= In-Reply-To: References: Message-ID: <20131009113426.GW76294@mdounin.ru> Hello! On Wed, Oct 09, 2013 at 05:49:18AM -0400, Neutrino_9 wrote: > Добрый день. Предо мной стоит задача кэширования статического контента прямо > в Redis. Для взаимодействия с Redis -ом использую модуль http_redis_module > (http://wiki.nginx.org/HttpRedis). Проблема в том что строчка set $redis_key > "$uri?$args"; у меня не работает (OS-mac os-x), то есть когда проверяю, то > в redis-cli нет ключа с значением $uri?$args. Что делать?. Вот мой конфиг А вы соответсвующий ключ в Redis кладёте? Модуль этого не делает, он позволяет только забрать оттуда ответ. -- Maxim Dounin http://nginx.org/en/donation.html From vladimir at skubriev.ru Wed Oct 9 12:21:01 2013 From: vladimir at skubriev.ru (Vladimir Skubriev) Date: Wed, 09 Oct 2013 16:21:01 +0400 Subject: =?UTF-8?B?UmU6INC/0YDQsNCy0LjQu9GM0L3QsNGPINC90LDRgdGC0YDQvtC50LrQsCDQv9GA?= =?UTF-8?B?0L7QutGB0Lgg0L3QsCDQvdC10YHQutC+0LvRjNC60L4g0YHQsNC50YLQvtCy?= =?UTF-8?B?Lg==?= In-Reply-To: <20131009112902.GV76294@mdounin.ru> References: <52550B6B.6080408@skubriev.ru> <20131009112902.GV76294@mdounin.ru> Message-ID: <52554A2D.8050105@skubriev.ru> On 10/09/2013 03:29 PM, Maxim Dounin wrote: > Hello! > > On Wed, Oct 09, 2013 at 11:53:15AM +0400, Vladimir Skubriev wrote: > >> Есть сервер с настроенным apache и несклькими Virtualhosts внутри ЛВС: > [...] > >> proxy_pass http://backendredminedev; > [...] > >> Проблема в том, что если я попытаюсь откуда нибудь из Интернет зайти >> на https://redmine.examplelab.com, то я почему то попадаю на git и >> вылазит окно авторизации. Веб морда редмаин почему то ни когда не >> открывается. > Когда вы пишете "proxy_pass http://backendredminedev" - на бекенд > уходит заголовок "Host: backendredminedev". > > Если на бекенде при этом используются виртуальные сервера - то > нужно либо прописать нужное имя в алиасы, либо, наоборот, обучить > nginx использовать нужное имя в запросе (обычно это делается с > помощью "proxy_set_header Host $host;" в конфиге nginx'а). Иначе > бекенд не сможет правильно выбрать виртуальный сервер - он же > ничего не знает про "backendredminedev". > > Ссылки по теме: > > http://nginx.org/r/proxy_pass > http://nginx.org/r/proxy_set_header > >> Что нужно почитать перед тем, как браться настраивать веб сервер? >> Просто обычно делаешь все по каким нибудь статьям в Интернет. Спору >> нет к результату приходишь. Но ясности понимания работы HTTP это не >> привносит. > Если хочется полноценного понимания - я бы рекомендовал > ознакомиться со стандартом, RFC 2616: > > http://tools.ietf.org/html/rfc2616 > > Но это может быть немного сложно на начальном этапе, возможно > имеет смысл поискать что-нибудь более популярное - например, > начать со статьи в Bикипедии: > > http://en.wikipedia.org/wiki/HTTP > > Более приятных популярных источников не подскажу, sorry. Общий > совет - осторожнее с русскоязычными документами - они в заметном > проценте случаев оставляют желать. > > Что же касается nginx'а, то в первую очередь имеет смысл > ознакомиться вот с этими тремя статьями: > > http://nginx.org/ru/docs/http/request_processing.html > http://nginx.org/ru/docs/http/server_names.html > http://nginx.org/ru/docs/http/configuring_https_servers.html > Большое спасибо за подробный и хороший ответ. Пошел делать RTFM. -- С Уважением, специалист по техническому и программному обеспечению, системный администратор Скубриев Владимир ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Россия, Ростовская область, г. Таганрог тел. моб: +7 (918) 504 38 20 skype: v.skubriev icq: 214-800-502 www: skubriev.ru From marck at rinet.ru Wed Oct 9 22:46:27 2013 From: marck at rinet.ru (Dmitry Morozovsky) Date: Thu, 10 Oct 2013 02:46:27 +0400 (MSK) Subject: =?UTF-8?B?UmU6INC/0YDQsNCy0LjQu9GM0L3QsNGPINC90LDRgdGC0YDQvtC50LrQsCDQv9GA?= =?UTF-8?B?0L7QutGB0Lgg0L3QsCDQvdC10YHQutC+0LvRjNC60L4g0YHQsNC50YLQvtCy?= =?UTF-8?B?Lg==?= In-Reply-To: <20131009112902.GV76294@mdounin.ru> References: <52550B6B.6080408@skubriev.ru> <20131009112902.GV76294@mdounin.ru> Message-ID: On Wed, 9 Oct 2013, Maxim Dounin wrote: > > Есть сервер с настроенным apache и несклькими Virtualhosts внутри ЛВС: [snip] > Если хочется полноценного понимания - я бы рекомендовал > ознакомиться со стандартом, RFC 2616: [snip all the rest] Макс, не могу удержаться, хотя clearly OT: ты демонстрируешь какое-то невероятное количество терпения и мудрости в ответах. No sarcasm. Much kudos. Спасибо за вашу работу. -- Sincerely, D.Marck [DM5020, MCK-RIPE, DM3-RIPN] [ FreeBSD committer: marck at FreeBSD.org ] ------------------------------------------------------------------------ *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck at rinet.ru *** ------------------------------------------------------------------------ From admin at sysadmins.el.kg Thu Oct 10 04:11:11 2013 From: admin at sysadmins.el.kg (admin at sysadmins.el.kg) Date: Thu, 10 Oct 2013 10:11:11 +0600 Subject: =?UTF-8?B?0J7Qv9GC0LjQvNC40LfQsNGG0LjRjyDQtNC70Y8g0L7RgtC00LDRh9C4INGB0YI=?= =?UTF-8?B?0LDRgtC40LrQuA==?= In-Reply-To: References: <52550B6B.6080408@skubriev.ru> <20131009112902.GV76294@mdounin.ru> Message-ID: <525628DF.2030306@sysadmins.el.kg> Имеются тормоза с отдачей графики - в один поток файлы отдаются влегкую, при скачивании больших файлов складывается канал у клиента :) А вот с отдачей мелких файлов (99% файлов являются картинками с развернутой иерархией директорий) пачкой наблюдаются жесткие тормоза. Раздел с файлами - ramfs, синхронизируется скриптами с SSD-накопителем по мере появления изменений на последнем. Конфиг: user nobody; worker_processes 8; worker_rlimit_nofile 8192; worker_priority -5; timer_resolution 100ms; error_log /var/log/nginx/error.log warn; events { worker_connections 8192; use epoll; } http { include mime.types; default_type application/octet-stream; server_tokens off; ignore_invalid_headers on; if_modified_since before; reset_timedout_connection on; underscores_in_headers on; sendfile on; sendfile_max_chunk 128k; keepalive_requests 1000; keepalive_timeout 30; keepalive_disable msie6; tcp_nopush on; tcp_nodelay on; send_timeout 30; connection_pool_size 256; client_header_buffer_size 256k; large_client_header_buffers 4 256k; client_max_body_size 200M; client_body_buffer_size 256k; client_header_timeout 30; client_body_timeout 30; request_pool_size 32k; postpone_output 1460; access_log off; output_buffers 128 512k; open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 1; open_file_cache_errors off; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; ssl_session_cache builtin:1000 shared:SSL:10m; server { listen 0.0.0.0:80 rcvbuf=16834 sndbuf=16384 backlog=32000 default; server_name cdn.image.kg; access_log off; location / { root /var/www/ramdrive; expires max; add_header Cache-Control public; try_files $uri $uri/ /notfound.png; } } # SSL server { listen 0.0.0.0:443 ssl default_server rcvbuf=16384 sndbuf=16384 backlog=32000 ; server_name cdn.image.kg; access_log off; ssl on; ssl_certificate /etc/nginx/ssl/cdn.image.kg.crt; ssl_certificate_key /etc/nginx/ssl/cdn.image.kg.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH"; location / { root /var/www/ramdrive; expires max; add_header Cache-Control public; try_files $uri $uri/ /notfound.png; } } } И еще в логах очень много такого: 2013/10/10 06:10:51 [alert] 26609#0: *13726 pread() read only 24709 of 24711 from "/var/www/ramdrive/6/2/45/125/WD63s4ds84de254.jpg" while sending response to client, client: , server: cdn.image.kg, request: "GET /6/2/45/125/WD63s4ds84de254.jpg?code=4532ew3 HTTP/1.1", host: "cdn.image.kg", referrer: "https://cdn.image.kg/view.php" From onokonem at gmail.com Thu Oct 10 04:37:47 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Thu, 10 Oct 2013 08:37:47 +0400 Subject: =?UTF-8?B?UmU6INCe0L/RgtC40LzQuNC30LDRhtC40Y8g0LTQu9GPINC+0YLQtNCw0YfQuCA=?= =?UTF-8?B?0YHRgtCw0YLQuNC60Lg=?= In-Reply-To: <525628DF.2030306@sysadmins.el.kg> References: <52550B6B.6080408@skubriev.ru> <20131009112902.GV76294@mdounin.ru> <525628DF.2030306@sysadmins.el.kg> Message-ID: > А вот с отдачей мелких файлов (99% файлов являются картинками с развернутой > иерархией директорий) пачкой наблюдаются жесткие тормоза. Жесткие тормоза - это как именно выражается? Мало rps? Мала утилизация канала? Высока нагрузка на CPU? > Раздел с файлами > - ramfs, синхронизируется скриптами с SSD-накопителем по мере появления > изменений на последнем. А что именно заставило вас создать конфигурацию с рамдрайвом? С чем не справился кеш ФС? From admin at sysadmins.el.kg Thu Oct 10 05:09:58 2013 From: admin at sysadmins.el.kg (admin at sysadmins.el.kg) Date: Thu, 10 Oct 2013 11:09:58 +0600 Subject: =?UTF-8?B?UmU6INCe0L/RgtC40LzQuNC30LDRhtC40Y8g0LTQu9GPINC+0YLQtNCw0YfQuCA=?= =?UTF-8?B?0YHRgtCw0YLQuNC60Lg=?= In-Reply-To: References: <52550B6B.6080408@skubriev.ru> <20131009112902.GV76294@mdounin.ru> <525628DF.2030306@sysadmins.el.kg> Message-ID: <525636A6.4000003@sysadmins.el.kg> Тормоза проявляются в том, что при пакетнойзагрузке файлов они не отдаются разом, во много потоков, а встают в очередь. При одновременном старте 850 запросов, последний из них обрабатывался в течении 28 секунд. Это при среднем размере картинок в 30-50кбайт! Сеть при этом (по мнению atop) нагружается не более чем на 1%, CPU максимум на 15%. Природа возникновения рамдрайва такова - физически накопитель "проживает" в соседнем стойле, в SAN. К машине с nginx (KVM-guest) цепляется посредством iscsi. Помимо нас к тому же SAN, возможно по тому же каналу, цепляются и остальные "жители" хостовой машины. Использование рамдрайва позволяет при сохранении высокой скорости чтения избежать зависимости от возможных лагов в сети, кратковременного извлечения винта из стораджа (например в случае замены). 10.10.2013 10:37, Daniel Podolsky пишет: >> А вот с отдачей мелких файлов (99% файлов являются картинками с развернутой >> иерархией директорий) пачкой наблюдаются жесткие тормоза. > Жесткие тормоза - это как именно выражается? Мало rps? Мала утилизация > канала? Высока нагрузка на CPU? > >> Раздел с файлами >> - ramfs, синхронизируется скриптами с SSD-накопителем по мере появления >> изменений на последнем. > А что именно заставило вас создать конфигурацию с рамдрайвом? С чем не > справился кеш ФС? > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Thu Oct 10 06:02:04 2013 From: nginx-forum at nginx.us (neo) Date: Thu, 10 Oct 2013 02:02:04 -0400 Subject: =?UTF-8?B?TkdpbnggKyBhcGFjaGUg0L/RgNC+0LLQtdGA0LrQsCDRgNCw0LHQvtGC0Ys=?= Message-ID: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> Привет всем Ситуация такая есть ВПС centos 5.9 панель ispmanager через панель управления был добавлен NGinx, периодический появляется ошибка 1. (504 nginx gateway time out) 2. при это сайт отвечает по адресу mysite.com:81 хотя по идеи не должен , как проверить корректность настроек ? и так же как настроить двух двухуровневый динамический кэш для NGinx ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243574,243574#msg-243574 From daniel at quietsupport.net Thu Oct 10 08:03:47 2013 From: daniel at quietsupport.net (Daniel Yavorovich) Date: Thu, 10 Oct 2013 11:03:47 +0300 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> References: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> Message-ID: <52565F63.80404@quietsupport.net> Здравствуйте! Ошибка возникает на этапе перегенерации конфигов nginx и его жёсткого перезапуска. Решить вопрос можно путём изменения способа перезагрузки nginx с restart на reload. Перечитать конфигурацию nginx без обрыва существующий соединений можно так: nginx -s reload или с помощью init-скриптов дистрибутива. Спасибо. On 10/10/2013 09:02 AM, neo wrote: > Привет всем > Ситуация такая есть ВПС centos 5.9 панель ispmanager через панель управления > был добавлен NGinx, периодический появляется ошибка 1. (504 nginx gateway > time out) 2. при это сайт отвечает по адресу mysite.com:81 хотя по идеи не > должен , как проверить корректность настроек ? и так же как настроить двух > двухуровневый динамический кэш для NGinx ? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243574,243574#msg-243574 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Daniel Yavorovich http://quietsupport.net/ http://hosting4django.net/ From nginx-forum at nginx.us Thu Oct 10 08:25:42 2013 From: nginx-forum at nginx.us (neo) Date: Thu, 10 Oct 2013 04:25:42 -0400 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> References: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> Message-ID: Думаю тут дело не в этом Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243574,243576#msg-243576 From morozov.gleb at active.by Thu Oct 10 08:35:45 2013 From: morozov.gleb at active.by (=?KOI8-R?B?58zFwiDtz9LP2s/X?=) Date: Thu, 10 Oct 2013 11:35:45 +0300 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: References: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> Message-ID: Проанализируйте журнал работы nginx на наличие 504, выявите проблемный запрос и сопоставьте с тем, чем в это время занимался бэкэнд. Для настройки кеширования обратитесь к документации. On 10 October 2013 11:25, neo wrote: > Думаю тут дело не в этом > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,243574,243576#msg-243576 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, *Морозов Глеб* Системный администратор отдела VIP-клиентов | ActiveCloud | http://www.active.by Т +375 17 2 911 511 доб. 306 | morozov.gleb at active.by Облачные решения | Серверы и инфраструктура | IaaS | SaaS | Хостинг | Домены -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Thu Oct 10 09:04:47 2013 From: nginx-forum at nginx.us (neo) Date: Thu, 10 Oct 2013 05:04:47 -0400 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: References: Message-ID: <8c2657824a6823e137f2d6413b765171.NginxMailingListRussian@forum.nginx.org> Просто думаю дело в не правильной конфигурации(, апач не должен отвечать из внешки Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243574,243578#msg-243578 From johnbat26 at gmail.com Thu Oct 10 09:24:26 2013 From: johnbat26 at gmail.com (=?utf-8?B?0JHQsNGC0L7Qs9C+0LIg0JXQstCz0LXQvdC40Lk=?=) Date: Thu, 10 Oct 2013 13:24:26 +0400 Subject: =?UTF-8?B?0J7RiNC40LHQutCwOiBjYWNoZSBmaWxlIkZJTEVOQU1FIiBoYXMgdG9vIGxvbmcg?= =?UTF-8?B?aGVhZGVyLi4u?= Message-ID: <1616556.LNjpDEAsS4@dragon> Привет всем. Мы используем proxy cache в nginx для кэширования скриншотов телеканалов. Это обычные изображения в jpg. Но nginx бросает следующую ошибку: 2013/10/09 18:52:45 [crit] 20249#0: *571428758 cache file "/dev/shm/screenshots/5/be/af8e98d9a99932db76fd5970feef4be5" has too long header, client: 10.24.131.7, server: _, request: "GET Вопрос: Каким параметром можно настроить длина заголовка? -------------- next part -------------- An HTML attachment was scrubbed... URL: From morozov.gleb at active.by Thu Oct 10 09:31:31 2013 From: morozov.gleb at active.by (=?KOI8-R?B?58zFwiDtz9LP2s/X?=) Date: Thu, 10 Oct 2013 12:31:31 +0300 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: <8c2657824a6823e137f2d6413b765171.NginxMailingListRussian@forum.nginx.org> References: <8c2657824a6823e137f2d6413b765171.NginxMailingListRussian@forum.nginx.org> Message-ID: Данная настройка выполнена при активации nginx через ispmanager. Решение лучше уточнить на спец. форуме ispmanager. Вы конечно можете заставить слушать apache 127.0.0.1, так же изменив при этом NameVirtualHost, VirtualHost и proxy_pass в nginx, но ispmanager и дальше будет создавать "www-домены" с подобной конфигурацией. 2013/10/10 neo > Просто думаю дело в не правильной конфигурации(, апач не должен отвечать из > внешки > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,243574,243578#msg-243578 > > _______________________________________________ > 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 russjura at gmail.com Thu Oct 10 10:00:33 2013 From: russjura at gmail.com (=?KOI8-R?B?4NLJyg==?=) Date: Thu, 10 Oct 2013 13:00:33 +0300 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: References: <8c2657824a6823e137f2d6413b765171.NginxMailingListRussian@forum.nginx.org> Message-ID: На крайняк... можно бреши закрыть через iptables, но лучше конечно правильно конфигурить апачу, изначально на 127.0.0.1 10 октября 2013 г., 12:31 пользователь Глеб Морозов написал: > Данная настройка выполнена при активации nginx через ispmanager. Решение > лучше уточнить на спец. форуме ispmanager. Вы конечно можете заставить > слушать apache 127.0.0.1, так же изменив при этом NameVirtualHost, > VirtualHost и proxy_pass в nginx, но ispmanager и дальше будет создавать > "www-домены" с подобной конфигурацией. > > > 2013/10/10 neo > >> Просто думаю дело в не правильной конфигурации(, апач не должен отвечать >> из >> внешки >> >> Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,243574,243578#msg-243578 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > 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 Thu Oct 10 12:07:02 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 10 Oct 2013 16:07:02 +0400 Subject: =?UTF-8?B?UmU6INC/0YDQsNCy0LjQu9GM0L3QsNGPINC90LDRgdGC0YDQvtC50LrQsCDQv9GA?= =?UTF-8?B?0L7QutGB0Lgg0L3QsCDQvdC10YHQutC+0LvRjNC60L4g0YHQsNC50YLQvtCy?= =?UTF-8?B?Lg==?= In-Reply-To: References: <52550B6B.6080408@skubriev.ru> <20131009112902.GV76294@mdounin.ru> Message-ID: <20131010120702.GA76294@mdounin.ru> Hello! On Thu, Oct 10, 2013 at 02:46:27AM +0400, Dmitry Morozovsky wrote: > On Wed, 9 Oct 2013, Maxim Dounin wrote: > > > > Есть сервер с настроенным apache и несклькими Virtualhosts внутри ЛВС: > > [snip] > > > Если хочется полноценного понимания - я бы рекомендовал > > ознакомиться со стандартом, RFC 2616: > > [snip all the rest] > > Макс, не могу удержаться, хотя clearly OT: ты демонстрируешь какое-то > невероятное количество терпения и мудрости в ответах. > > No sarcasm. Much kudos. > > Спасибо за вашу работу. Спасибо за тёплые слова, Дима. [sarcasm mode on] Секрет прост: если что, я первые варианты писем - не отправляю. Иногда это выходит боком - людям приходится ждать ответов месяцами... ;) [sarcasm mode off] -- Maxim Dounin http://xkcd.com/386/ From mdounin at mdounin.ru Thu Oct 10 12:31:27 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 10 Oct 2013 16:31:27 +0400 Subject: =?UTF-8?B?UmU6INCe0YjQuNCx0LrQsDogY2FjaGUgZmlsZSJGSUxFTkFNRSIgaGFzIHRvbyBs?= =?UTF-8?B?b25nIGhlYWRlci4uLg==?= In-Reply-To: <1616556.LNjpDEAsS4@dragon> References: <1616556.LNjpDEAsS4@dragon> Message-ID: <20131010123127.GB76294@mdounin.ru> Hello! On Thu, Oct 10, 2013 at 01:24:26PM +0400, Батогов Евгений wrote: > Привет всем. > Мы используем proxy cache в nginx для кэширования скриншотов телеканалов. Это обычные изображения в jpg. > > Но nginx бросает следующую ошибку: > 2013/10/09 18:52:45 [crit] 20249#0: *571428758 cache file > "/dev/shm/screenshots/5/be/af8e98d9a99932db76fd5970feef4be5" has too long header, client: > 10.24.131.7, server: _, request: "GET > > > Вопрос: Каким параметром можно настроить длина заголовка? Заголовок cache-файла - это ключ кеширования + немного других метаданных + заголовок ответа бекенда. Длину загаловка настроить нельзя, можно: a) повлиять на длины составляющих заголовка, в частности - на длину ключа и на длину заголовков ответа от бекенда; б) увеличить размер буфера, используемого для чтения заголовка, с помощью директивы proxy_buffer_size, описание тут: http://nginx.org/r/proxy_buffer_size. Вообще процитированные ошибки должны появляться только в том случае, если ответ был сохранён с одним значением proxy_buffer_size, а вернуть его пытаются в location'е с другим значением. Если вдруг есть основания полагать, что ошибки возникают в других условиях - имеет смысл поразбираться подробнее, в частности - посмотреть внимательно на кеш-файлы, возможно они просто почему-то битые. -- Maxim Dounin http://nginx.org/en/donation.html From denis at webmaster.spb.ru Fri Oct 11 09:01:48 2013 From: denis at webmaster.spb.ru (denis) Date: Fri, 11 Oct 2013 13:01:48 +0400 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: <52565F63.80404@quietsupport.net> References: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> <52565F63.80404@quietsupport.net> Message-ID: <5257BE7C.3080802@webmaster.spb.ru> 10.10.2013 12:03, Daniel Yavorovich пишет: > Здравствуйте! > > Ошибка возникает на этапе перегенерации конфигов nginx и его жёсткого > перезапуска. Решить вопрос можно путём изменения способа перезагрузки > nginx с restart на reload. > > Перечитать конфигурацию nginx без обрыва существующий соединений можно > так: > > nginx -s reload > У релоада есть большая проблема: он некорректно делает конфигтест, поэтому если есть ошибки в конфиге, reload может сказать что всё ок, а restart говорит о реальных проблемах. И после такого релоада сначала всё работает, но по мере обновления воркеров появляются отказы. From mdounin at mdounin.ru Fri Oct 11 11:11:05 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 11 Oct 2013 15:11:05 +0400 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: <5257BE7C.3080802@webmaster.spb.ru> References: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> <52565F63.80404@quietsupport.net> <5257BE7C.3080802@webmaster.spb.ru> Message-ID: <20131011111105.GN76294@mdounin.ru> Hello! On Fri, Oct 11, 2013 at 01:01:48PM +0400, denis wrote: > 10.10.2013 12:03, Daniel Yavorovich пишет: > >Здравствуйте! > > > >Ошибка возникает на этапе перегенерации конфигов nginx и его > >жёсткого перезапуска. Решить вопрос можно путём изменения способа > >перезагрузки nginx с restart на reload. > > > >Перечитать конфигурацию nginx без обрыва существующий соединений > >можно так: > > > >nginx -s reload > > > У релоада есть большая проблема: он некорректно делает конфигтест, > поэтому если есть ошибки в конфиге, reload может сказать что всё ок, > а restart говорит о реальных проблемах. И после такого релоада > сначала всё работает, но по мере обновления воркеров появляются > отказы. Если вы готовы привести конкретные примеры того, о чём написали выше - сообщайте, с удовольствием рассмотрим с подробностями. Но мне почему-то кажется, что вы просто недоразобрались в том, что наблюдали, и списали это на якобы существующие проблемы релоада. -- Maxim Dounin http://nginx.org/en/donation.html From igor at sysoev.ru Fri Oct 11 15:04:56 2013 From: igor at sysoev.ru (Igor Sysoev) Date: Fri, 11 Oct 2013 17:04:56 +0200 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: <5257BE7C.3080802@webmaster.spb.ru> References: <7fae50500d0a8aac58627157fcb7e5e1.NginxMailingListRussian@forum.nginx.org> <52565F63.80404@quietsupport.net> <5257BE7C.3080802@webmaster.spb.ru> Message-ID: <873F6BC3-5FA2-42EB-A04A-A361D0E4B57B@sysoev.ru> nginx -t nginx -s reload -- Igor Sysoev 11.10.2013, в 11:01, denis написал(а): > 10.10.2013 12:03, Daniel Yavorovich пишет: >> Здравствуйте! >> >> Ошибка возникает на этапе перегенерации конфигов nginx и его жёсткого перезапуска. Решить вопрос можно путём изменения способа перезагрузки nginx с restart на reload. >> >> Перечитать конфигурацию nginx без обрыва существующий соединений можно так: >> >> nginx -s reload > У релоада есть большая проблема: он некорректно делает конфигтест, поэтому если есть ошибки в конфиге, reload может сказать что всё ок, а restart говорит о реальных проблемах. И после такого релоада сначала всё работает, но по мере обновления воркеров появляются отказы. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Sat Oct 12 11:37:38 2013 From: nginx-forum at nginx.us (Haikson) Date: Sat, 12 Oct 2013 07:37:38 -0400 Subject: MODx setup Message-ID: <0d465500aa8eceb18e2ec2d952e0ddb5.NginxMailingListRussian@forum.nginx.org> Нужна помощь в понимании как действовать. Пытаюсь установить MODx Revo Вот настройки nginx. server { listen 80; server_name xn----7sbitcnbnlgdqs1b8l.xn--p1ai; charset utf8; autoindex off; access_log /srv/logs/poly_access.log; error_log /srv/logs/poly_error.log error; root /srv/www/haikson/poly; index index.php; rewrite_log on; location /core/ { deny all; } location / { try_files $uri $uri/ @modx; } location @modx { rewrite ^/(.*)$ /index.php?q=$1; } location ~* "/\.ht" { deny all; # запретить все для всех return 404; # вернуть код ошибки 404 } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|bmp)$ { access_log off; expires 30d; break; } location ~ .php$ { try_files $fastcgi_script_name =404; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/var/run/php-fpm/phpfpm.socket; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PHP_VALUE "apc.cache_by_default=0"; include fastcgi_params; } } Открываю /setup/ - всё нормально Пытаюсь перейти на сл. уровень (/setup/?action=welcome ) перебрасывает на /?action=welcome Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243636,243636#msg-243636 From me at kemko.ru Sat Oct 12 11:50:12 2013 From: me at kemko.ru (=?koi8-r?B?5M3J1NLJyiDhzsTSxcXX?=) Date: Sat, 12 Oct 2013 15:50:12 +0400 Subject: MODx setup In-Reply-To: <0d465500aa8eceb18e2ec2d952e0ddb5.NginxMailingListRussian@forum.nginx.org> References: <0d465500aa8eceb18e2ec2d952e0ddb5.NginxMailingListRussian@forum.nginx.org> Message-ID: <64191381578612@web16j.yandex.ru> http://nginx.org/en/docs/http/ngx_http_index_module.html#index . Либо попробовать набирать полный адрес, видимо что-то вроде /setup/index.php?action=welcome 12.10.2013, 15:37, "Haikson" : > Нужна помощь в понимании как действовать. Пытаюсь установить MODx Revo > Вот настройки nginx. > server { >     listen      80; >     server_name xn----7sbitcnbnlgdqs1b8l.xn--p1ai; >     charset     utf8; >     autoindex   off; >     access_log  /srv/logs/poly_access.log; >     error_log   /srv/logs/poly_error.log error; >     root        /srv/www/haikson/poly; >     index index.php; >     rewrite_log         on; > >     location /core/ { >         deny all; >     } > >     location / { >         try_files $uri $uri/ @modx; >     } > >     location @modx { >         rewrite         ^/(.*)$ /index.php?q=$1; >     } > >     location ~* "/\.ht" { >         deny all;   # запретить все для всех >         return 404; # вернуть код ошибки 404 >     } > >     location = /favicon.ico { >         log_not_found off; >         access_log off; >     } >     location = /robots.txt { >         allow all; >         log_not_found off; >         access_log off; >     } > >     location ~* \.(jpg|jpeg|gif|css|png|js|ico|bmp)$ { >         access_log       off; >         expires 30d; >         break; >     } > >     location ~ .php$ { >         try_files $fastcgi_script_name =404; >         fastcgi_split_path_info ^(.+\.php)(.*)$; >         fastcgi_pass > unix:/var/run/php-fpm/phpfpm.socket; >         fastcgi_index                       index.php; >         fastcgi_param   SCRIPT_FILENAME > $document_root$fastcgi_script_name; >         fastcgi_param   PATH_TRANSLATED > $document_root$fastcgi_script_name; >         fastcgi_param   PATH_INFO           $fastcgi_path_info; >         fastcgi_param   PHP_VALUE           "apc.cache_by_default=0"; >         include                             fastcgi_params; >     } > } > > Открываю /setup/ - всё нормально > Пытаюсь перейти на сл. уровень (/setup/?action=welcome ) перебрасывает на > /?action=welcome > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243636,243636#msg-243636 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Sat Oct 12 12:41:56 2013 From: nginx-forum at nginx.us (Haikson) Date: Sat, 12 Oct 2013 08:41:56 -0400 Subject: MODx setup In-Reply-To: <64191381578612@web16j.yandex.ru> References: <64191381578612@web16j.yandex.ru> Message-ID: <5a2156dadb39c2906d7bf280525b307c.NginxMailingListRussian@forum.nginx.org> Не помогло. Ни первый ни второй варианты. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243636,243638#msg-243638 From nginx-forum at nginx.us Sat Oct 12 16:42:22 2013 From: nginx-forum at nginx.us (Neutrino_9) Date: Sat, 12 Oct 2013 12:42:22 -0400 Subject: =?UTF-8?B?0JrQsNC6INCyIG5naW54INC/0L7Qu9GD0YfQuNGC0YwgaHRtbCDQutC+0LQg0Lc=?= =?UTF-8?B?0LDQv9GA0LDRiNC40LLQsNC10LzQvtC5INGB0YLRgNCw0L3QuNGG0YsgPw==?= Message-ID: Пожалуйста помогите. Прохожу интерншип в одной компании, дали мне такое задание: написать модуль для nginx, которая кеширует страницы прямо в redis, то есть сперва пользователь делает запрос, nginx проверяет присутствует ли запрашиваемая страница в кеше redis если да то берет и возвращает пользователю, если нет, то обращается к бекенду берет оттуда страницу возвращает пользователю и записивает в кеш redis. Запись в кеш redis должен сделать именно nginx а не бекенд ..... такие уж условия. А теперь вопрос который мучает меня уже 3 недели, как в nginx получить html код запрашиваемой страницы (то есть html контент index.html страницы например), что бы потом записать в кеш redis ? Если не тут то не знаю даже где еще могут ответить на мой вопрос. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243641,243641#msg-243641 From pavel2000 at ngs.ru Sat Oct 12 17:05:58 2013 From: pavel2000 at ngs.ru (Pavel V.) Date: Sun, 13 Oct 2013 00:05:58 +0700 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQsiBuZ2lueCDQv9C+0LvRg9GH0LjRgtGMIGh0bWwg0LrQvtC0?= =?UTF-8?B?INC30LDQv9GA0LDRiNC40LLQsNC10LzQvtC5INGB0YLRgNCw0L3QuNGG0Ysg?= =?UTF-8?B?Pw==?= In-Reply-To: References: Message-ID: <641676457.20131013000558@ngs.ru> Здравствуйте, Neutrino_9. Хорошо Вам, молодым - глаза горят, святая в вера в то, что всё получится /самой собой/. Плохо Вам... фантазии нет, логичности мышления - нет. Но светлым стремлениям надо помочь. Объясняю: "Знание принципов избавляет от знания фактов". Попробуйте воспользоваться этим подходом. У Nginx есть модули, которые умеют записывать (даже не просто обрабатывать, а именно записывать!) ответ от бэкенда. А раз есть такие модули, значит в них есть реализация того, что требуется Вам. Попробуйте почитать документацию по модулям Nginx. Для начала - по официальным. Авось и найдете что-нибудь, для Вас подходящее. Успехов. > Пожалуйста помогите. Прохожу интерншип в одной компании, дали мне такое > задание: написать модуль для nginx, которая кеширует страницы прямо в redis, > то есть сперва пользователь делает запрос, nginx проверяет присутствует ли > запрашиваемая страница в кеше redis если да то берет и возвращает > пользователю, если нет, то обращается к бекенду берет оттуда страницу > возвращает пользователю и записивает в кеш redis. Запись в кеш redis должен > сделать именно nginx а не бекенд ..... такие уж условия. А теперь вопрос > который мучает меня уже 3 недели, как в nginx получить html код > запрашиваемой страницы (то есть html контент index.html страницы например), > что бы потом записать в кеш redis ? > Если не тут то не знаю даже где еще могут ответить на мой вопрос. > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243641,243641#msg-243641 > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, Pavel mailto:pavel2000 at ngs.ru From chipitsine at gmail.com Sat Oct 12 17:27:58 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Sat, 12 Oct 2013 23:27:58 +0600 Subject: MODx setup In-Reply-To: <0d465500aa8eceb18e2ec2d952e0ddb5.NginxMailingListRussian@forum.nginx.org> References: <0d465500aa8eceb18e2ec2d952e0ddb5.NginxMailingListRussian@forum.nginx.org> Message-ID: Уважаемые разработчики nginx, давайте сделаем раздел с примерами конфигов для распространенных CMS (с разбором нюансов, почему именно так), иначе тиражирование быдлоконфигов, когда .htaccess превращается в кучу непонятно чего, никогда не закончится. я мог бы сколько то времени уделить php-ным CMS-кам. рабочий конфиг для MODx, только что проверил: server { listen 80; server_name localhost; root /srv/modx; location / { try_files $uri $uri/ @modx; index index.php index.html index.htm; } location ~ \.php$ { try_files $uri @zend; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } location @modx { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/index.php; } } 12 октября 2013 г., 17:37 пользователь Haikson написал: > Нужна помощь в понимании как действовать. Пытаюсь установить MODx Revo > Вот настройки nginx. > server { > listen 80; > server_name xn----7sbitcnbnlgdqs1b8l.xn--p1ai; > charset utf8; > autoindex off; > access_log /srv/logs/poly_access.log; > error_log /srv/logs/poly_error.log error; > root /srv/www/haikson/poly; > index index.php; > rewrite_log on; > > location /core/ { > deny all; > } > > location / { > try_files $uri $uri/ @modx; > } > > location @modx { > rewrite ^/(.*)$ /index.php?q=$1; > } > > location ~* "/\.ht" { > deny all; # запретить все для всех > return 404; # вернуть код ошибки 404 > } > > location = /favicon.ico { > log_not_found off; > access_log off; > } > location = /robots.txt { > allow all; > log_not_found off; > access_log off; > } > > location ~* \.(jpg|jpeg|gif|css|png|js|ico|bmp)$ { > access_log off; > expires 30d; > break; > } > > location ~ .php$ { > try_files $fastcgi_script_name =404; > fastcgi_split_path_info ^(.+\.php)(.*)$; > fastcgi_pass > unix:/var/run/php-fpm/phpfpm.socket; > fastcgi_index index.php; > fastcgi_param SCRIPT_FILENAME > $document_root$fastcgi_script_name; > fastcgi_param PATH_TRANSLATED > $document_root$fastcgi_script_name; > fastcgi_param PATH_INFO $fastcgi_path_info; > fastcgi_param PHP_VALUE "apc.cache_by_default=0"; > include fastcgi_params; > } > } > > Открываю /setup/ - всё нормально > Пытаюсь перейти на сл. уровень (/setup/?action=welcome ) перебрасывает на > /?action=welcome > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243636,243636#msg-243636 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From chipitsine at gmail.com Sat Oct 12 17:32:26 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Sat, 12 Oct 2013 23:32:26 +0600 Subject: MODx setup In-Reply-To: References: <0d465500aa8eceb18e2ec2d952e0ddb5.NginxMailingListRussian@forum.nginx.org> Message-ID: в пример конфига закралась опечатка, должно быть "modx" вместо "zend". на практике эта опечатка навряд ли приведет к ошибкам, по логике пользователь должен обратиться к несуществующему файлу /aaa/bbb/x.php, который проксируется на index.php движка. это скорее защита от "совсем глупости", таких урлов, modx, конечно не делает. конфиг рабочий, несмотря на опечатку, сайт и админка работают 12 октября 2013 г., 23:27 пользователь Илья Шипицин написал: > Уважаемые разработчики nginx, давайте сделаем раздел с примерами > конфигов для распространенных CMS (с разбором нюансов, почему именно > так), иначе тиражирование быдлоконфигов, когда .htaccess превращается > в кучу непонятно чего, никогда не закончится. > > я мог бы сколько то времени уделить php-ным CMS-кам. > > рабочий конфиг для MODx, только что проверил: > > > server { > listen 80; > server_name localhost; > > root /srv/modx; > > location / { > try_files $uri $uri/ @modx; > index index.php index.html index.htm; > } > > location ~ \.php$ { > try_files $uri @zend; > include fastcgi_params; > fastcgi_param SCRIPT_FILENAME > $document_root$fastcgi_script_name; > fastcgi_pass 127.0.0.1:9000; > fastcgi_index index.php; > } > > location @modx { > include fastcgi_params; > fastcgi_pass 127.0.0.1:9000; > fastcgi_index index.php; > fastcgi_param SCRIPT_FILENAME $document_root/index.php; > } > > > } > > 12 октября 2013 г., 17:37 пользователь Haikson написал: >> Нужна помощь в понимании как действовать. Пытаюсь установить MODx Revo >> Вот настройки nginx. >> server { >> listen 80; >> server_name xn----7sbitcnbnlgdqs1b8l.xn--p1ai; >> charset utf8; >> autoindex off; >> access_log /srv/logs/poly_access.log; >> error_log /srv/logs/poly_error.log error; >> root /srv/www/haikson/poly; >> index index.php; >> rewrite_log on; >> >> location /core/ { >> deny all; >> } >> >> location / { >> try_files $uri $uri/ @modx; >> } >> >> location @modx { >> rewrite ^/(.*)$ /index.php?q=$1; >> } >> >> location ~* "/\.ht" { >> deny all; # запретить все для всех >> return 404; # вернуть код ошибки 404 >> } >> >> location = /favicon.ico { >> log_not_found off; >> access_log off; >> } >> location = /robots.txt { >> allow all; >> log_not_found off; >> access_log off; >> } >> >> location ~* \.(jpg|jpeg|gif|css|png|js|ico|bmp)$ { >> access_log off; >> expires 30d; >> break; >> } >> >> location ~ .php$ { >> try_files $fastcgi_script_name =404; >> fastcgi_split_path_info ^(.+\.php)(.*)$; >> fastcgi_pass >> unix:/var/run/php-fpm/phpfpm.socket; >> fastcgi_index index.php; >> fastcgi_param SCRIPT_FILENAME >> $document_root$fastcgi_script_name; >> fastcgi_param PATH_TRANSLATED >> $document_root$fastcgi_script_name; >> fastcgi_param PATH_INFO $fastcgi_path_info; >> fastcgi_param PHP_VALUE "apc.cache_by_default=0"; >> include fastcgi_params; >> } >> } >> >> Открываю /setup/ - всё нормально >> Пытаюсь перейти на сл. уровень (/setup/?action=welcome ) перебрасывает на >> /?action=welcome >> >> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243636,243636#msg-243636 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Sat Oct 12 17:59:33 2013 From: nginx-forum at nginx.us (Neutrino_9) Date: Sat, 12 Oct 2013 13:59:33 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQsiBuZ2lueCDQv9C+0LvRg9GH0LjRgtGMIGh0bWwg0LrQvtC0?= =?UTF-8?B?INC30LDQv9GA0LDRiNC40LLQsNC10LzQvtC5INGB0YLRgNCw0L3QuNGG0Ysg?= =?UTF-8?B?Pw==?= In-Reply-To: <641676457.20131013000558@ngs.ru> References: <641676457.20131013000558@ngs.ru> Message-ID: А что это за модуль который умеет читать ответ от бекенда, можно пример или имя модуля ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243641,243645#msg-243645 From hunter at comsys.com.ua Sat Oct 12 18:15:06 2013 From: hunter at comsys.com.ua (Sergey Smitienko) Date: Sat, 12 Oct 2013 21:15:06 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQsiBuZ2lueCDQv9C+0LvRg9GH0LjRgtGMIGh0bWwg0LrQvtC0?= =?UTF-8?B?INC30LDQv9GA0LDRiNC40LLQsNC10LzQvtC5INGB0YLRgNCw0L3QuNGG0Ysg?= =?UTF-8?B?Pw==?= In-Reply-To: References: <641676457.20131013000558@ngs.ru> Message-ID: <525991AA.3070505@comsys.com.ua> Переписать proxy_store ? > А что это за модуль который умеет читать ответ от бекенда, можно пример или > имя модуля ? -- Sergey Smitienko From pavel2000 at ngs.ru Sat Oct 12 18:29:04 2013 From: pavel2000 at ngs.ru (Pavel V.) Date: Sun, 13 Oct 2013 01:29:04 +0700 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQsiBuZ2lueCDQv9C+0LvRg9GH0LjRgtGMIGh0bWwg0LrQvtC0?= =?UTF-8?B?INC30LDQv9GA0LDRiNC40LLQsNC10LzQvtC5INGB0YLRgNCw0L3QuNGG0Ysg?= =?UTF-8?B?Pw==?= In-Reply-To: References: <641676457.20131013000558@ngs.ru> Message-ID: <12310652042.20131013012904@ngs.ru> Здравствуйте, Neutrino_9. Вы писали 13 октября 2013 г., 0:59:33: > А что это за модуль который умеет читать ответ от бекенда, можно пример или > имя модуля ? Уж прочитать официальную документацию Вы могли бы. Я не вижу смысла для Вас в чьих либо ответах, т.к. вы не умеете (их) читать. В Ваши успехи я больше не верю. -- С уважением, Pavel mailto:pavel2000 at ngs.ru From nginx-forum at nginx.us Sat Oct 12 18:32:26 2013 From: nginx-forum at nginx.us (Neutrino_9) Date: Sat, 12 Oct 2013 14:32:26 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQsiBuZ2lueCDQv9C+0LvRg9GH0LjRgtGMIGh0bWwg0LrQvtC0?= =?UTF-8?B?INC30LDQv9GA0LDRiNC40LLQsNC10LzQvtC5INGB0YLRgNCw0L3QuNGG0Ysg?= =?UTF-8?B?Pw==?= In-Reply-To: <525991AA.3070505@comsys.com.ua> References: <525991AA.3070505@comsys.com.ua> Message-ID: <460aa588d0a0f5c4a25c97a964c18a27.NginxMailingListRussian@forum.nginx.org> А как на счет proxy_buffers ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243641,243648#msg-243648 From nginx-forum at nginx.us Sat Oct 12 18:36:31 2013 From: nginx-forum at nginx.us (Neutrino_9) Date: Sat, 12 Oct 2013 14:36:31 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQsiBuZ2lueCDQv9C+0LvRg9GH0LjRgtGMIGh0bWwg0LrQvtC0?= =?UTF-8?B?INC30LDQv9GA0LDRiNC40LLQsNC10LzQvtC5INGB0YLRgNCw0L3QuNGG0Ysg?= =?UTF-8?B?Pw==?= In-Reply-To: <12310652042.20131013012904@ngs.ru> References: <12310652042.20131013012904@ngs.ru> Message-ID: У меня всего лишь пару дней для решения проблемы, если можете дать конкретный ответ то пожайлуста, если нет то продолжайте не верит в мой успех. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243641,243649#msg-243649 From nginx-forum at nginx.us Sat Oct 12 20:48:16 2013 From: nginx-forum at nginx.us (littlefuntik) Date: Sat, 12 Oct 2013 16:48:16 -0400 Subject: =?UTF-8?B?0J/QvtC80L7Qs9C40YLQtSDRgSDQvdCw0YHRgtGA0L7QudC60LDQvNC4IG5naW54?= =?UTF-8?B?LmNvbmYg0LTQu9GPIFdvcmRwcmVzcw==?= Message-ID: <2301f64a1e0e8dabfe632e9d8714a4dc.NginxMailingListRussian@forum.nginx.org> Главная страница грузится, а другие страницы предлагает сохранить и в итоге сохраняется файл index.php... Я в шоке, как это исправить? Подскажите плыс... Вот мои настройки nginx: server { server_name funtik.net.ua; access_log /var/log/nginx-funtik.net.ua.access.log; error_log /var/log/nginx-funtik.net.ua.error.log; root /usr/home/funtik/webs/funtik.net.ua/public_html; index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?q=$1 last; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243651,243651#msg-243651 From vovansystems at gmail.com Sat Oct 12 20:51:44 2013 From: vovansystems at gmail.com (VovansystemS) Date: Sat, 12 Oct 2013 23:51:44 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YEg0L3QsNGB0YLRgNC+0LnQutCw0LzQuCBu?= =?UTF-8?B?Z2lueC5jb25mINC00LvRjyBXb3JkcHJlc3M=?= In-Reply-To: <2301f64a1e0e8dabfe632e9d8714a4dc.NginxMailingListRussian@forum.nginx.org> References: <2301f64a1e0e8dabfe632e9d8714a4dc.NginxMailingListRussian@forum.nginx.org> Message-ID: > Главная страница грузится, а другие страницы предлагает сохранить и в итоге > Подскажите > плыс... http://codex.wordpress.org/Nginx вот тут неплохо описано From nginx-forum at nginx.us Sat Oct 12 22:11:22 2013 From: nginx-forum at nginx.us (littlefuntik) Date: Sat, 12 Oct 2013 18:11:22 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0YEg0L3QsNGB0YLRgNC+0LnQutCw0LzQuCBu?= =?UTF-8?B?Z2lueC5jb25mINC00LvRjyBXb3JkcHJlc3M=?= In-Reply-To: References: Message-ID: <990142ff79bd3f7ff44afe51122f8684.NginxMailingListRussian@forum.nginx.org> Спасибо, я очистил кеш браузера, и этот глюк пропал :D Смешно даже.... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243651,243654#msg-243654 From nginx-forum at nginx.us Sun Oct 13 21:36:51 2013 From: nginx-forum at nginx.us (naive) Date: Sun, 13 Oct 2013 17:36:51 -0400 Subject: =?UTF-8?B?0JLQvtC/0YDQvtGBINC/0L4gY2xpZW50IGJvZHkgaW4gZmlsZSBvbmx5INCyINC6?= =?UTF-8?B?0L7QvdGC0LXQutGB0YLQtSBmaWxlIHVwbG9hZA==?= Message-ID: <6474d4c72332869655be468c51443cc5.NginxMailingListRussian@forum.nginx.org> Доброй ночи! Возник вопрос по использованию client_body_in_file_only для обработки file upload. Есть подробный how-to, раскрывающий данную тему: https://coderwall.com/p/swgfvw Однако, возникает вопрос - что произойдёт, если при записи файла в client_body_temp_path файл с подобным именем будет уже существовать? Такая ситуация, как мне кажется, может произойти в случаях: 1. количество файлов станет >= 10^10 2. файлы будут восстановлены из бекапа, при этом id будет высчитываться "по-порядку" 3. случайно сгенерированный id совпадёт с именем уже существующего файла Возможные варианты: 1. ошибка 2. перезапись файла 3. генерация нового id, при наличии ранее созданного файла с таким же именем (если кол-во файлов <10^10) Вопрос, на который я хочу ответить - можно ли хранить uploaded files прямо в client_body_temp_path или же необходим CLI-скрипт, перемещающий файлы в другую директорию с гарантированно уникальным id или проверкой уникальности? И смежный подвопрос - когда появится возможность влиять на client_body_temp_path и имена файлов, которые генерятся при записи (насколько я понимаю, сейчас они имеют вид [\d]{10})? Спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243660,243660#msg-243660 From mdounin at mdounin.ru Sun Oct 13 23:07:23 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 14 Oct 2013 03:07:23 +0400 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+IGNsaWVudCBib2R5IGluIGZpbGUgb25seSA=?= =?UTF-8?B?0LIg0LrQvtC90YLQtdC60YHRgtC1IGZpbGUgdXBsb2Fk?= In-Reply-To: <6474d4c72332869655be468c51443cc5.NginxMailingListRussian@forum.nginx.org> References: <6474d4c72332869655be468c51443cc5.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131013230723.GA56471@mdounin.ru> Hello! On Sun, Oct 13, 2013 at 05:36:51PM -0400, naive wrote: > Доброй ночи! > > Возник вопрос по использованию client_body_in_file_only для обработки file > upload. > > Есть подробный how-to, раскрывающий данную тему: > https://coderwall.com/p/swgfvw > > Однако, возникает вопрос - что произойдёт, если при записи файла в > client_body_temp_path файл с подобным именем будет уже существовать? > Такая ситуация, как мне кажется, может произойти в случаях: > 1. количество файлов станет >= 10^10 > 2. файлы будут восстановлены из бекапа, при этом id будет высчитываться > "по-порядку" > 3. случайно сгенерированный id совпадёт с именем уже существующего файла > > Возможные варианты: > 1. ошибка > 2. перезапись файла > 3. генерация нового id, при наличии ранее созданного файла с таким же именем > (если кол-во файлов <10^10) Если при создании временного файла nginx натыкается на уже существующий файл, то он пробует ещё раз, выбрав другое имя файла. Подробнее можно почитать в src/core/ngx_files.c, в функции ngx_create_temp_file(). > Вопрос, на который я хочу ответить - можно ли хранить uploaded files прямо в > client_body_temp_path или же необходим CLI-скрипт, перемещающий файлы в > другую директорию с гарантированно уникальным id или проверкой > уникальности? Каталог для хранения временных файлов не предназначен для того, чтобы в нём держали файлы дольше, чем это необходимо для обработки этих файлов. Фатальных проблем при коллизиях не возникнет, см. выше, но и хорошего тоже немного. > И смежный подвопрос - когда появится возможность влиять на > client_body_temp_path и имена файлов, которые генерятся при записи > (насколько я понимаю, сейчас они имеют вид [\d]{10})? Возможность влиять на имена файлов есть и сейчас, она подробно документирована тут: http://nginx.org/r/client_body_temp_path А именно - можно задавать желаемую иерархию подкаталогов. Более никаких возможностей для влияния не планируется. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Mon Oct 14 09:47:46 2013 From: nginx-forum at nginx.us (Cergoo) Date: Mon, 14 Oct 2013 05:47:46 -0400 Subject: Redirect In-Reply-To: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> References: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> Message-ID: <97dc565a8e050ed7b786f771e39eae88.NginxMailingListRussian@forum.nginx.org> для меня тема редиректа ещё интересна, если кто может растолковать было бы замечательно, а то я подозреваю, что возможно я просто не знаю как правильно делать редирект без уведомления клиента. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243668#msg-243668 From nginx-forum at nginx.us Mon Oct 14 12:07:57 2013 From: nginx-forum at nginx.us (naive) Date: Mon, 14 Oct 2013 08:07:57 -0400 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+IGNsaWVudCBib2R5IGluIGZpbGUgb25seSA=?= =?UTF-8?B?0LIg0LrQvtC90YLQtdC60YHRgtC1IGZpbGUgdXBsb2Fk?= In-Reply-To: <20131013230723.GA56471@mdounin.ru> References: <20131013230723.GA56471@mdounin.ru> Message-ID: <3a19f369241f7e624e8cc770d5fa4497.NginxMailingListRussian@forum.nginx.org> Максим, добрый день! Спасибо за развернутый ответ. Несколько комментариев: > Каталог для хранения временных файлов не предназначен для того, > чтобы в нём держали файлы дольше, чем это необходимо для обработки > этих файлов. Фатальных проблем при коллизиях не возникнет, см. > выше, но и хорошего тоже немного. По идее, весь метод с использованием client_body_in_file_only и client_body_temp_path изначально не предназначен для handling file upload. Тем не менее, если уж использовать эту возможность, то хотелось бы избежать лишних действий (перемещения файлов/смены имен) и установки чего-то кроме nginx-extras на storage-машину. Поэтому, если кроме того, что tmp dir принципиально не предназначен для длительного хранения файлов (с чем я, безусловно, согласен) - других серьёзных аргументов нет - то вариант остаётся приемлемым. > Возможность влиять на имена файлов есть и сейчас, она подробно > документирована тут: > > http://nginx.org/r/client_body_temp_path > > А именно - можно задавать желаемую иерархию подкаталогов. Более > никаких возможностей для влияния не планируется. Речь как раз шла про имена файлов, поскольку level 1-3 помогает лишь решить вопрос максимального количества файлов в папке, но не их общего максимального количества и именования. Ещё раз спасибо за комментарии. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243661,243671#msg-243671 From anatoly at sonru.com Mon Oct 14 12:48:25 2013 From: anatoly at sonru.com (Anatoly Mikhailov) Date: Mon, 14 Oct 2013 13:48:25 +0100 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+IGNsaWVudCBib2R5IGluIGZpbGUgb25seSA=?= =?UTF-8?B?0LIg0LrQvtC90YLQtdC60YHRgtC1IGZpbGUgdXBsb2Fk?= In-Reply-To: <3a19f369241f7e624e8cc770d5fa4497.NginxMailingListRussian@forum.nginx.org> References: <20131013230723.GA56471@mdounin.ru> <3a19f369241f7e624e8cc770d5fa4497.NginxMailingListRussian@forum.nginx.org> Message-ID: On Oct 14, 2013, at 1:07 PM, naive wrote: > Максим, добрый день! > > Спасибо за развернутый ответ. > > Несколько комментариев: > >> Каталог для хранения временных файлов не предназначен для того, >> чтобы в нём держали файлы дольше, чем это необходимо для обработки >> этих файлов. Фатальных проблем при коллизиях не возникнет, см. >> выше, но и хорошего тоже немного. > > По идее, весь метод с использованием client_body_in_file_only и > client_body_temp_path изначально не предназначен для handling file upload. > > Тем не менее, если уж использовать эту возможность, то хотелось бы избежать > лишних действий (перемещения файлов/смены имен) и установки чего-то кроме > nginx-extras на storage-машину. > > Поэтому, если кроме того, что tmp dir принципиально не предназначен для > длительного хранения файлов (с чем я, безусловно, согласен) - других > серьёзных аргументов нет - то вариант остаётся приемлемым. другие варианты есть, но назвать их приемлемыми ну никак нельзя, эпическая история тут: https://github.com/vkholodkov/nginx-upload-module/issues/41 > >> Возможность влиять на имена файлов есть и сейчас, она подробно >> документирована тут: >> >> http://nginx.org/r/client_body_temp_path >> >> А именно - можно задавать желаемую иерархию подкаталогов. Более >> никаких возможностей для влияния не планируется. > > Речь как раз шла про имена файлов, поскольку level 1-3 помогает лишь решить > вопрос максимального количества файлов в папке, но не их общего > максимального количества и именования. > > Ещё раз спасибо за комментарии. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243661,243671#msg-243671 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Mon Oct 14 14:03:00 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 14 Oct 2013 18:03:00 +0400 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+IGNsaWVudCBib2R5IGluIGZpbGUgb25seSA=?= =?UTF-8?B?0LIg0LrQvtC90YLQtdC60YHRgtC1IGZpbGUgdXBsb2Fk?= In-Reply-To: <3a19f369241f7e624e8cc770d5fa4497.NginxMailingListRussian@forum.nginx.org> References: <20131013230723.GA56471@mdounin.ru> <3a19f369241f7e624e8cc770d5fa4497.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131014140300.GE2144@mdounin.ru> Hello! On Mon, Oct 14, 2013 at 08:07:57AM -0400, naive wrote: > > Каталог для хранения временных файлов не предназначен для того, > > чтобы в нём держали файлы дольше, чем это необходимо для обработки > > этих файлов. Фатальных проблем при коллизиях не возникнет, см. > > выше, но и хорошего тоже немного. > > По идее, весь метод с использованием client_body_in_file_only и > client_body_temp_path изначально не предназначен для handling file upload. Директива client_body_in_file_only как раз предназначена для того, чтобы лишний раз не гонять тело запроса в рамках одной машины, а записать его на диск и передать на обработку бекенду уже файл. И та же функциональность используется в модуле DAV, но уже в рамках самого nginx'а. > Тем не менее, если уж использовать эту возможность, то хотелось бы избежать > лишних действий (перемещения файлов/смены имен) и установки чего-то кроме > nginx-extras на storage-машину. Где вы видите лишнее действие? Файл записывается в каталог для временных файлов под временным именем, после окончания загрузки, если всё хорошо, - перемещается куда надо под постоянным именем и/или обрабатывается иначе. Если вдруг во временном каталоге остаются файлы на время большее, чем нужно для обработки - это повод предположить наличие проблемы и заняться её решением. Перемещение файла в рамках одной файловой системы - крайне дешёвая операция, не стоит на ней экономить. На неудобстве работы с получившейся помойкой, а равно на попытках найти свободное имя для очередного файла, если файлов будет действительно много, вы потеряете больше. Что до установки "чего-то", то в указанном вами пакете есть как минимум два встроенных в nginx скриптовых языка, на которых можно сделать любую обработку. [...] > > Возможность влиять на имена файлов есть и сейчас, она подробно > > документирована тут: > > > > http://nginx.org/r/client_body_temp_path > > > > А именно - можно задавать желаемую иерархию подкаталогов. Более > > никаких возможностей для влияния не планируется. > > Речь как раз шла про имена файлов, поскольку level 1-3 помогает лишь решить > вопрос максимального количества файлов в папке, но не их общего > максимального количества и именования. Я прекрасно понял ваш вопрос, и ответил на него максимально подробно. Вопросов, которые вы пытаетесь решить - не стоит при использовании client_body_temp_path по назначению. И по этой же причине не сущетсвует планов по решению этих вопросов. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Mon Oct 14 16:58:52 2013 From: nginx-forum at nginx.us (naive) Date: Mon, 14 Oct 2013 12:58:52 -0400 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+IGNsaWVudCBib2R5IGluIGZpbGUgb25seSA=?= =?UTF-8?B?0LIg0LrQvtC90YLQtdC60YHRgtC1IGZpbGUgdXBsb2Fk?= In-Reply-To: <20131013230723.GA56471@mdounin.ru> References: <20131013230723.GA56471@mdounin.ru> Message-ID: <5ae43c287ff170272d3d7f81d84e9f86.NginxMailingListRussian@forum.nginx.org> Спасибо всем за комментарии. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243661,243686#msg-243686 From vadim.lazovskiy at gmail.com Tue Oct 15 05:29:55 2013 From: vadim.lazovskiy at gmail.com (Vadim Lazovskiy) Date: Tue, 15 Oct 2013 09:29:55 +0400 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+IGNsaWVudCBib2R5IGluIGZpbGUgb25seSA=?= =?UTF-8?B?0LIg0LrQvtC90YLQtdC60YHRgtC1IGZpbGUgdXBsb2Fk?= In-Reply-To: <20131014140300.GE2144@mdounin.ru> References: <20131013230723.GA56471@mdounin.ru> <3a19f369241f7e624e8cc770d5fa4497.NginxMailingListRussian@forum.nginx.org> <20131014140300.GE2144@mdounin.ru> Message-ID: Здравствуйте. Директива client_body_in_file_only как раз предназначена для того, > чтобы лишний раз не гонять тело запроса в рамках одной машины, а > записать его на диск и передать на обработку бекенду уже файл. И > та же функциональность используется в модуле DAV, но уже в рамках > самого nginx'а. Достаточно сомнительная экономия. PHP, например, этот файл прочитает и все равно запишет свой(-и) отдельный(-ые) - то что извлек из тела запроса. Ну это так, ностальгия по upload-module Валерия Холодкова. -- Best Regards, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Tue Oct 15 05:59:52 2013 From: nginx-forum at nginx.us (Aleus Essentia) Date: Tue, 15 Oct 2013 01:59:52 -0400 Subject: =?UTF-8?B?0J/QtdGA0LXQtNCw0YfQsCDQt9Cw0LPQvtC70L7QstC60L7QsiDQutC70LjQtdC9?= =?UTF-8?B?0YLRgw==?= Message-ID: <98f7227ea2e6ff0b114a3ee563c7034e.NginxMailingListRussian@forum.nginx.org> Добрый день! Подскажите, можно ли указать NGINX'у сразу передавать заголовки клиенту, без ожидания получения полностью всего заголовка? У меня есть upstream-сервер, который после запроса от клиента в некоторых случаях может долго отвечать, больше 5 минут. Поэтому для поддержания соединения upstream отсылает незначащие строки заголовка раз в 10 секунд. Но NGINX копит заголовок, пока не наткнётся на \n\n. Как решить эту проблему? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243691,243691#msg-243691 From danila at shtan.ru Tue Oct 15 09:07:55 2013 From: danila at shtan.ru (Danila Shtan) Date: Tue, 15 Oct 2013 15:07:55 +0600 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10LTQsNGH0LAg0LfQsNCz0L7Qu9C+0LLQutC+0LIg0LrQu9C4?= =?UTF-8?B?0LXQvdGC0YM=?= In-Reply-To: <98f7227ea2e6ff0b114a3ee563c7034e.NginxMailingListRussian@forum.nginx.org> References: <98f7227ea2e6ff0b114a3ee563c7034e.NginxMailingListRussian@forum.nginx.org> Message-ID: http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_buffering ? Д. 2013/10/15 Aleus Essentia > Добрый день! > > Подскажите, можно ли указать NGINX'у сразу передавать заголовки клиенту, > без > ожидания получения полностью всего заголовка? > > У меня есть upstream-сервер, который после запроса от клиента в некоторых > случаях может долго отвечать, больше 5 минут. Поэтому для поддержания > соединения upstream отсылает незначащие строки заголовка раз в 10 секунд. > Но > NGINX копит заголовок, пока не наткнётся на \n\n. > > Как решить эту проблему? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,243691,243691#msg-243691 > > _______________________________________________ > 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 Tue Oct 15 10:25:42 2013 From: nginx-forum at nginx.us (Craken) Date: Tue, 15 Oct 2013 06:25:42 -0400 Subject: Redirect In-Reply-To: <97dc565a8e050ed7b786f771e39eae88.NginxMailingListRussian@forum.nginx.org> References: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> <97dc565a8e050ed7b786f771e39eae88.NginxMailingListRussian@forum.nginx.org> Message-ID: <593a4920dd4c380a9b9e74c904a2409c.NginxMailingListRussian@forum.nginx.org> rewrite last; - не? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243699#msg-243699 From gmm at csdoc.com Tue Oct 15 10:38:44 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Tue, 15 Oct 2013 13:38:44 +0300 Subject: Redirect In-Reply-To: <97dc565a8e050ed7b786f771e39eae88.NginxMailingListRussian@forum.nginx.org> References: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> <97dc565a8e050ed7b786f771e39eae88.NginxMailingListRussian@forum.nginx.org> Message-ID: <525D1B34.4070400@csdoc.com> On 14.10.2013 12:47, Cergoo wrote: > для меня тема редиректа ещё интересна, если кто может растолковать было бы > замечательно, а то я подозреваю, что возможно я просто не знаю как правильно > делать редирект без уведомления клиента. никак. redirect всегда происходит с уведомлением клиента подробнее - http://www.ietf.org/rfc/rfc2616.txt, п. 10.3. если вопрос был про rewrite, то надо читать документацию, http://nginx.org/en/docs/http/ngx_http_rewrite_module.html только надо быть осторожным с применением директивы if, потому что в текущей реализации if имеются баги http://wiki.nginx.org/IfIsEvil -- Best regards, Gena From nginx-forum at nginx.us Tue Oct 15 10:45:32 2013 From: nginx-forum at nginx.us (antarey) Date: Tue, 15 Oct 2013 06:45:32 -0400 Subject: =?UTF-8?Q?WebDav_=D0=BD=D0=B0_Windows?= Message-ID: <19f2c2da9d8d48dfcaee866d30387b42.NginxMailingListRussian@forum.nginx.org> Здравствуйте. Помогите поднять webdav с помощью nginx на Windows. Скачал nginx/Windows-1.5.6 Согласно инстукций настроил вебдав вот конф #user nobody; worker_processes 1; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 8080; server_name webdav; charset utf-8; #access_log logs/host.access.log main; location / { auth_basic "Закритий сайт"; auth_basic_user_file ./conf/htpasswd; root html; client_body_temp_path ./temp/client_body_temp; dav_methods PUT DELETE MKCOL COPY MOVE; create_full_put_path on; dav_access user:rw group:rw all:rw; limit_except GET { allow 127.0.0.1; deny all; } # root html; # index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # ## error_page 500 502 503 504 /50x.html; ## location = /50x.html { ## root html; ## } Если удаляю index.htm получаю 403 ошибку. Подключить диск net use * 127.0.0.1:8080 не могу - сетевой ресурс не доступен Что я делаю не так??? или надо перекомпилировать ?? - если да то как сие реализовать в винде? И второй вопрос - как раздавать конкретным пользователям конкретные права на конкретные папки? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243701,243701#msg-243701 From nginx-forum at nginx.us Tue Oct 15 10:48:20 2013 From: nginx-forum at nginx.us (antarey) Date: Tue, 15 Oct 2013 06:48:20 -0400 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: <19f2c2da9d8d48dfcaee866d30387b42.NginxMailingListRussian@forum.nginx.org> References: <19f2c2da9d8d48dfcaee866d30387b42.NginxMailingListRussian@forum.nginx.org> Message-ID: И такой вопрос - как правильно прописать путь к папке webdav - в винде ето D:\myCloud а никсовский вариант как будет выглядеть? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243701,243702#msg-243702 From vadim.lazovskiy at gmail.com Tue Oct 15 11:02:21 2013 From: vadim.lazovskiy at gmail.com (Vadim Lazovskiy) Date: Tue, 15 Oct 2013 15:02:21 +0400 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: <19f2c2da9d8d48dfcaee866d30387b42.NginxMailingListRussian@forum.nginx.org> References: <19f2c2da9d8d48dfcaee866d30387b42.NginxMailingListRussian@forum.nginx.org> Message-ID: Здравствуйте. На данный момент Nginx поддерживает не все методы необходимые для полноценной работы WebDav. Но есть 3rd party модуль: https://github.com/arut/nginx-dav-ext-module реализующий методы OPTIONS и PROPFIND 15 октября 2013 г., 14:45 пользователь antarey написал: > Здравствуйте. Помогите поднять webdav с помощью nginx на Windows. > Скачал nginx/Windows-1.5.6 > Согласно инстукций настроил вебдав > вот конф > > #user nobody; > worker_processes 1; > > error_log logs/error.log; > #error_log logs/error.log notice; > #error_log logs/error.log info; > > #pid logs/nginx.pid; > > > events { > worker_connections 1024; > } > > > http { > include mime.types; > default_type application/octet-stream; > > #log_format main '$remote_addr - $remote_user [$time_local] > "$request" > ' > # '$status $body_bytes_sent "$http_referer" ' > # '"$http_user_agent" "$http_x_forwarded_for"'; > > #access_log logs/access.log main; > > sendfile on; > #tcp_nopush on; > > #keepalive_timeout 0; > keepalive_timeout 65; > > #gzip on; > > server { > listen 8080; > server_name webdav; > > charset utf-8; > > #access_log logs/host.access.log main; > > location / { > auth_basic "Закритий сайт"; > auth_basic_user_file ./conf/htpasswd; > root html; > client_body_temp_path ./temp/client_body_temp; > dav_methods PUT DELETE MKCOL COPY MOVE; > create_full_put_path on; > dav_access user:rw group:rw all:rw; > > limit_except GET { > allow 127.0.0.1; > deny all; > } > # root html; > # index index.html index.htm; > > } > > #error_page 404 /404.html; > > # redirect server error pages to the static page /50x.html > # > ## error_page 500 502 503 504 /50x.html; > ## location = /50x.html { > ## root html; > ## } > > Если удаляю index.htm получаю 403 ошибку. Подключить диск net use * > 127.0.0.1:8080 не могу - сетевой ресурс не доступен > Что я делаю не так??? или надо перекомпилировать ?? - если да то как сие > реализовать в винде? > И второй вопрос - как раздавать конкретным пользователям конкретные права > на > конкретные папки? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,243701,243701#msg-243701 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best Regards, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Tue Oct 15 11:24:14 2013 From: nginx-forum at nginx.us (antarey) Date: Tue, 15 Oct 2013 07:24:14 -0400 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: References: Message-ID: <100274ca05b4bbaaf14114b641d0caff.NginxMailingListRussian@forum.nginx.org> а как его прикрутить на винде? ./configure --with-http_dav_module --add-module= ???? Vadim Lazovskiy Wrote: ------------------------------------------------------- > Здравствуйте. > > На данный момент Nginx поддерживает не все методы необходимые для > полноценной работы WebDav. > Но есть 3rd party модуль: https://github.com/arut/nginx-dav-ext-module > реализующий > методы OPTIONS и PROPFIND > > > 15 октября 2013 г., 14:45 пользователь antarey > написал: > > > Здравствуйте. Помогите поднять webdav с помощью nginx на Windows. > > Скачал nginx/Windows-1.5.6 > > Согласно инстукций настроил вебдав > > вот конф > > > > #user nobody; > > worker_processes 1; > > > > error_log logs/error.log; > > #error_log logs/error.log notice; > > #error_log logs/error.log info; > > > > #pid logs/nginx.pid; > > > > > > events { > > worker_connections 1024; > > } > > > > > > http { > > include mime.types; > > default_type application/octet-stream; > > > > #log_format main '$remote_addr - $remote_user [$time_local] > > "$request" > > ' > > # '$status $body_bytes_sent "$http_referer" ' > > # '"$http_user_agent" "$http_x_forwarded_for"'; > > > > #access_log logs/access.log main; > > > > sendfile on; > > #tcp_nopush on; > > > > #keepalive_timeout 0; > > keepalive_timeout 65; > > > > #gzip on; > > > > server { > > listen 8080; > > server_name webdav; > > > > charset utf-8; > > > > #access_log logs/host.access.log main; > > > > location / { > > auth_basic "Закритий сайт"; > > auth_basic_user_file ./conf/htpasswd; > > root html; > > client_body_temp_path ./temp/client_body_temp; > > dav_methods PUT DELETE MKCOL COPY MOVE; > > create_full_put_path on; > > dav_access user:rw group:rw all:rw; > > > > limit_except GET { > > allow 127.0.0.1; > > deny all; > > } > > # root html; > > # index index.html index.htm; > > > > } > > > > #error_page 404 /404.html; > > > > # redirect server error pages to the static page /50x.html > > # > > ## error_page 500 502 503 504 /50x.html; > > ## location = /50x.html { > > ## root html; > > ## } > > > > Если удаляю index.htm получаю 403 ошибку. Подключить диск net use > * > > 127.0.0.1:8080 не могу - сетевой ресурс не доступен > > Что я делаю не так??? или надо перекомпилировать ?? - если да то > как сие > > реализовать в винде? > > И второй вопрос - как раздавать конкретным пользователям конкретные > права > > на > > конкретные папки? > > > > Posted at Nginx Forum: > > http://forum.nginx.org/read.php?21,243701,243701#msg-243701 > > > > _______________________________________________ > > 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 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243701,243704#msg-243704 From nginx-forum at nginx.us Tue Oct 15 11:42:35 2013 From: nginx-forum at nginx.us (Craken) Date: Tue, 15 Oct 2013 07:42:35 -0400 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: <5257BE7C.3080802@webmaster.spb.ru> References: <5257BE7C.3080802@webmaster.spb.ru> Message-ID: denis Wrote: ------------------------------------------------------- > У релоада есть большая проблема: он некорректно делает конфигтест, > поэтому если есть ошибки в конфиге, reload может сказать что всё ок, а > > restart говорит о реальных проблемах. И после такого релоада сначала > всё > работает, но по мере обновления воркеров появляются отказы. ------------------------------------------------------- Очень часто видел такие проблемы у apache. С nginx'ом таких проблем не наблюдалось, хотя для переконфигурации всегда использую именно reload. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243574,243706#msg-243706 From mdounin at mdounin.ru Tue Oct 15 12:16:36 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 15 Oct 2013 16:16:36 +0400 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10LTQsNGH0LAg0LfQsNCz0L7Qu9C+0LLQutC+0LIg0LrQu9C4?= =?UTF-8?B?0LXQvdGC0YM=?= In-Reply-To: <98f7227ea2e6ff0b114a3ee563c7034e.NginxMailingListRussian@forum.nginx.org> References: <98f7227ea2e6ff0b114a3ee563c7034e.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131015121636.GF2144@mdounin.ru> Hello! On Tue, Oct 15, 2013 at 01:59:52AM -0400, Aleus Essentia wrote: > Добрый день! > > Подскажите, можно ли указать NGINX'у сразу передавать заголовки клиенту, без > ожидания получения полностью всего заголовка? > > У меня есть upstream-сервер, который после запроса от клиента в некоторых > случаях может долго отвечать, больше 5 минут. Поэтому для поддержания > соединения upstream отсылает незначащие строки заголовка раз в 10 секунд. Но > NGINX копит заголовок, пока не наткнётся на \n\n. > > Как решить эту проблему? Никак. Для отправки чего-либо клиенту nginx'у нужны все заголовки ответа - или в какой-то момент могло бы оказаться, что часть заголовков клиенту уже ушла, а в очередном заголовке нас попросили, например, сделать X-Accel-Redirect в другое место. Не говоря уже про то, что чуть менее, чем любой фильтр не сможет даже начать работать с ответом, если не видит всех заголовков. Чтобы подобных сюрпризов и сложностей не возникало - в nginx'е вообще нет возможности работать с отдельными заголовками. Отправляются только все заголовки целиком, никак иначе. Или убирайте nginx, или меняйте логику работы бекенда. -- Maxim Dounin http://nginx.org/en/donation.html From citrin at citrin.ru Tue Oct 15 12:26:32 2013 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Tue, 15 Oct 2013 16:26:32 +0400 Subject: allow/deny and return Message-ID: <525D3478.10905@citrin.ru> В такой конфигурации: location /closed { allow 10.1.1.1; deny all; return 200 "secret\n"; } allow/deny ни на что не влияют. IMHO стоит написать об этом в документации, момент не очевидный с первого взгляда. From mdounin at mdounin.ru Tue Oct 15 12:45:28 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 15 Oct 2013 16:45:28 +0400 Subject: allow/deny and return In-Reply-To: <525D3478.10905@citrin.ru> References: <525D3478.10905@citrin.ru> Message-ID: <20131015124528.GH2144@mdounin.ru> Hello! On Tue, Oct 15, 2013 at 04:26:32PM +0400, Anton Yuzhaninov wrote: > В такой конфигурации: > > location /closed { > allow 10.1.1.1; > deny all; > return 200 "secret\n"; > } > > allow/deny ни на что не влияют. > > IMHO стоит написать об этом в документации, момент не очевидный с первого взгляда. Если ты готов предолжить хороший способ написать об этом - мы с удовольствием. Я, например, хорошего способа не знаю. Потому что не с первого взгляда - момент в общем-то очевидный (у прочитавших документацию на модуль rewrite вопросов, как мне кажется, возникнуть не должно), а как это корректно рассказать не читавшим... -- Maxim Dounin http://nginx.org/en/donation.html From ru at nginx.com Tue Oct 15 12:52:29 2013 From: ru at nginx.com (Ruslan Ermilov) Date: Tue, 15 Oct 2013 16:52:29 +0400 Subject: allow/deny and return In-Reply-To: <20131015124528.GH2144@mdounin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> Message-ID: <20131015125229.GC56191@lo0.su> On Tue, Oct 15, 2013 at 04:45:28PM +0400, Maxim Dounin wrote: > Hello! > > On Tue, Oct 15, 2013 at 04:26:32PM +0400, Anton Yuzhaninov wrote: > > > В такой конфигурации: > > > > location /closed { > > allow 10.1.1.1; > > deny all; > > return 200 "secret\n"; > > } > > > > allow/deny ни на что не влияют. > > > > IMHO стоит написать об этом в документации, момент не очевидный с первого взгляда. > > Если ты готов предолжить хороший способ написать об этом - мы с > удовольствием. > > Я, например, хорошего способа не знаю. Потому что не с первого > взгляда - момент в общем-то очевидный (у прочитавших документацию > на модуль rewrite вопросов, как мне кажется, возникнуть не > должно), а как это корректно рассказать не читавшим... Пока про это у нас есть такое: http://www.aosabook.org/en/nginx.html Читать со слов "Which brings us to the phases." From gmm at csdoc.com Tue Oct 15 12:59:53 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Tue, 15 Oct 2013 15:59:53 +0300 Subject: allow/deny and return In-Reply-To: <20131015124528.GH2144@mdounin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> Message-ID: <525D3C49.9080806@csdoc.com> On 15.10.2013 15:45, Maxim Dounin wrote: >> В такой конфигурации: >> >> location /closed { >> allow 10.1.1.1; >> deny all; >> return 200 "secret\n"; >> } >> >> allow/deny ни на что не влияют. >> >> IMHO стоит написать об этом в документации, момент не очевидный с первого взгляда. > > Если ты готов предолжить хороший способ написать об этом - мы с > удовольствием. > > Я, например, хорошего способа не знаю. Потому что не с первого > взгляда - момент в общем-то очевидный (у прочитавших документацию > на модуль rewrite вопросов, как мне кажется, возникнуть не > должно), а как это корректно рассказать не читавшим... в документации http://nginx.org/en/docs/http/ngx_http_access_module.html ничего не написано о том, что директивы allow и deny работают не всегда. я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html но так и не смог понять, почему allow и deny тут не будут работать. это все похоже на BUG, потому что пользователи обычно подразумевают, что сначала работает access module и только потом - rewrite_module. по крайней мере, в UNIX и даже в WINDOWS все работает именно так: если доступа к файлу нет, никаких операций с ним сделать нельзя. -- Best regards, Gena From nginx-forum at nginx.us Tue Oct 15 13:00:06 2013 From: nginx-forum at nginx.us (antarey) Date: Tue, 15 Oct 2013 09:00:06 -0400 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: <100274ca05b4bbaaf14114b641d0caff.NginxMailingListRussian@forum.nginx.org> References: <100274ca05b4bbaaf14114b641d0caff.NginxMailingListRussian@forum.nginx.org> Message-ID: нашел инструкцию - http://nginx.org/en/docs/howto_build_on_win32.html - но честно говоря не совсем понял что за чем. все что у меня получилось - скачать исходники, все остальное - ничего не понятно 1.Start MSYS bash. - bash.exe???? зачем? 2. Create a build and lib directories, and unpack zlib, PCRE and OpenSSL libraries sources into lib directory: mkdir objs mkdir objs/lib cd objs/lib tar -xzf ../../pcre-8.32.tar.gz tar -xzf ../../zlib-1.2.7.tar.gz tar -xzf ../../openssl-1.0.1e.tar.gz в каком каталоге создавать ети каталоги? в каталоге c:\Program Files\Mercurial\nginx\ ????? 3. Run configure script: с помощью чего запускать етот скрипт, чем выполнять и тд. на https://github.com/arut/nginx-dav-ext-module написано Requirements: libexpat-dev - что ето, где взять, куда кидать,как юзать????? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243701,243712#msg-243712 From mdounin at mdounin.ru Tue Oct 15 13:45:50 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 15 Oct 2013 17:45:50 +0400 Subject: allow/deny and return In-Reply-To: <525D3C49.9080806@csdoc.com> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> Message-ID: <20131015134550.GJ2144@mdounin.ru> Hello! On Tue, Oct 15, 2013 at 03:59:53PM +0300, Gena Makhomed wrote: > On 15.10.2013 15:45, Maxim Dounin wrote: > > >>В такой конфигурации: > >> > >>location /closed { > >> allow 10.1.1.1; > >> deny all; > >> return 200 "secret\n"; > >>} > >> > >>allow/deny ни на что не влияют. > >> > >>IMHO стоит написать об этом в документации, момент не очевидный с первого взгляда. > > > >Если ты готов предолжить хороший способ написать об этом - мы с > >удовольствием. > > > >Я, например, хорошего способа не знаю. Потому что не с первого > >взгляда - момент в общем-то очевидный (у прочитавших документацию > >на модуль rewrite вопросов, как мне кажется, возникнуть не > >должно), а как это корректно рассказать не читавшим... > > в документации http://nginx.org/en/docs/http/ngx_http_access_module.html > ничего не написано о том, что директивы allow и deny работают не всегда. > > я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html > но так и не смог понять, почему allow и deny тут не будут работать. Потому что директивы модуля rewrite - это фактически часть выбора конфигурации. И именно от выбранной конфигурации зависит, что можно, а что - нельзя. > это все похоже на BUG, потому что пользователи обычно подразумевают, > что сначала работает access module и только потом - rewrite_module. > > по крайней мере, в UNIX и даже в WINDOWS все работает именно так: > если доступа к файлу нет, никаких операций с ним сделать нельзя. В Антоном конфиге нет файла. Есть инструкция "при выборе конфигурации для обработки запросов вернуть ответ с кодом 200". (И да, я таки считаю, что возможность задавать тело ответа была добавлена в диркетиву return зря, не её это работа. Надо было сделать отдельный модуль a la empty gif, подобных вопросов было бы меньше. Но таки этот фарш уже поздно проворачивать назад.) -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue Oct 15 15:03:40 2013 From: nginx-forum at nginx.us (yevhen) Date: Tue, 15 Oct 2013 11:03:40 -0400 Subject: Problem with proxy_pass, Message-ID: <60e32e12add4ee6b562d349ad640d81c.NginxMailingListRussian@forum.nginx.org> Hi, I am using latest nginx (1.4.3) on centos with next location configuration: location ~^/3g { auth_basic "Restricted"; auth_basic_user_file htpasswd; rewrite ^/3g/(.*)$ /$1 break; proxy_pass http://127.0.0.1:18001; # proxy_redirect off; proxy_redirect 127.0.0.1:18001/ /3g/; proxy_set_header SCRIPT_NAME /3g; proxy_set_header X-Script-Name /3g; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; } 127.0.0.1 - is reverse ssh tunnel to some hardware, with apache on it. if I use location / - all works perfect, but with location /3g opening http://SERVER_IP/3g - I see next in firebug: http://SERVER_IP/cgi-bin/dlDevices.plx?Command=DeviceList&Date=Tue So somehow cgi-bin is not redirected to /3g location. Please help. Thank you Yevhen Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243720,243720#msg-243720 From tals1975 at gmail.com Tue Oct 15 15:14:21 2013 From: tals1975 at gmail.com (Sergey Talchuk) Date: Tue, 15 Oct 2013 18:14:21 +0300 Subject: nginx -t > Illegal instruction Message-ID: Всем привет! собрал nginx для своей системы без проблем (собирал на ней же). Только похоже при запуске nginx -t не может определить тип процессора. К сожалению, система находится на носителе доступном только для чтения. Поэтому отдебажить системные библиотеки не представляется возможным. Надеюсь на помощь. Заранее спасибо. Сергей linux 2.4.28 uClibc i486 ====== $ nginx -V nginx version: nginx/1.5.6 configure arguments: --prefix=/mnt/C/sys/share/nginx --sbin-path=/mnt/C/sys/sbin/nginx --conf-path=/mnt/C/sys/etc/nginx/nginx.conf --error-log- path=/mnt/C/sys/var/nginx/log/error.log --pid-path=/mnt/C/sys/var/nginx/run/nginx.pid --lock-path=/mnt/C/sys/var/nginx/run/nginx.lock --http-log- path=/mnt/C/sys/var/nginx/log/access.log --http-client-body-temp-path=/mnt/C/sys/var/nginx/tmp/client_body_temp --http-proxy-temp- path=/mnt/C/sys/var/nginx/tmp/proxy_temp --http-fastcgi-temp-path=/mnt/C/sys/var/nginx/tmp/fastcgi_temp --without-http_charset_module --without- http_gzip_module --without-http_ssi_module --without-http_userid_module --without-http_access_module --without-http_auth_basic_module --without- http_autoindex_module --without-http_geo_module --without-http_map_module --without-http_referer_module --without-http_rewrite_module --without- http_proxy_module --without-http_fastcgi_module --without-http_memcached_module --without-http_limit_conn_module --without-http_empty_gif_module --without-http_browser_module --without-http_upstream_ip_hash_module --without-mail_pop3_module --without-mail_imap_module --without- mail_smtp_module --without-pcre --with-debug ======= CFLAGS="-g -O0" \ ./configure \ --prefix=/mnt/C/sys/share/nginx \ --sbin-path=/mnt/C/sys/sbin/nginx \ --conf-path=/mnt/C/sys/etc/nginx/nginx.conf \ --error-log-path=/mnt/C/sys/var/nginx/log/error.log \ --pid-path=/mnt/C/sys/var/nginx/run/nginx.pid \ --lock-path=/mnt/C/sys/var/nginx/run/nginx.lock \ --http-log-path=/mnt/C/sys/var/nginx/log/access.log \ --http-client-body-temp-path=/mnt/C/sys/var/nginx/tmp/client_body_temp \ --http-proxy-temp-path=/mnt/C/sys/var/nginx/tmp/proxy_temp \ --http-fastcgi-temp-path=/mnt/C/sys/var/nginx/tmp/fastcgi_temp \ --without-http_charset_module \ --without-http_gzip_module \ --without-http_ssi_module \ --without-http_userid_module \ --without-http_access_module \ --without-http_auth_basic_module \ --without-http_autoindex_module \ --without-http_geo_module \ --without-http_map_module \ --without-http_referer_module \ --without-http_rewrite_module \ --without-http_proxy_module \ --without-http_fastcgi_module \ --without-http_memcached_module \ --without-http_limit_conn_module \ --without-http_empty_gif_module \ --without-http_browser_module \ --without-http_upstream_ip_hash_module \ --without-mail_pop3_module \ --without-mail_imap_module \ --without-mail_smtp_module \ --without-pcre \ --with-debug sed -i -e 's/#ifndef NGX_HAVE_GNU_CRYPT_R/#if 0/' src/os/unix/ngx_linux_config.h make ======= (gdb) run Starting program: /tmp/mnt/C/sys/sbin/nginx Program received signal SIGILL, Illegal instruction. 0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at src/core/ngx_cpuinfo.c:30 30 src/core/ngx_cpuinfo.c: No such file or directory. in src/core/ngx_cpuinfo.c (gdb) bt #0 0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at src/core/ngx_cpuinfo.c:30 #1 0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84 #2 0x0806e4f7 in ngx_os_init (log=0x80c27a8) at src/os/unix/ngx_posix_init.c:60 #3 0x08049e21 in main (argc=1, argv=0xbffffb94) at src/core/nginx.c:312 #4 0x40100b49 in __uClibc_main () from /lib/libc.so.0 (gdb) backtrace full #0 0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at src/core/ngx_cpuinfo.c:30 No locals. #1 0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84 vendor = (u_char *) 0x806e4d7 "\203▒\020▒▒▒\f\b\203=▒▒\f\b" vbuf = {0, 0, 0, 0, 0} cpu = {3221224340, 3221223832, 1073744062, 1073762344} model = 3221224588 #2 0x0806e4f7 in ngx_os_init (log=0x80c27a8) at src/os/unix/ngx_posix_init.c:60 n = 0 #3 0x08049e21 in main (argc=1, argv=0xbffffb94) at src/core/nginx.c:312 i = -1073743152 log = (ngx_log_t *) 0x80c27a8 cycle = (ngx_cycle_t *) 0xbffffc8c init_cycle = {conf_ctx = 0x0, pool = 0x80cd080, log = 0x80c27a8, new_log = {log_level = 0, file = 0x0, connection = 0, handler = 0, data = 0x0, action = 0x0, next = 0x0}, log_use_stderr = 0, files = 0x0, free_connections = 0x0, free_connection_n = 0, reusable_connections_queue = {prev = 0x0, next = 0x0}, listening = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, paths = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, open_files = { last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0, nalloc = 0, pool = 0x0}, shared_memory = {last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0, nalloc = 0, pool = 0x0}, connection_n = 0, files_n = 0, connections = 0x0, read_events = 0x0, write_events = 0x0, old_cycle = 0x0, conf_file = {len = 31, data = 0x80af0e0 "/mnt/C/sys/etc/nginx/nginx.conf"}, conf_param = {len = 0, data = 0x0}, conf_prefix = {len = 21, data = 0x80af0e0 "/mnt/C/sys/etc/nginx/nginx.conf"}, prefix = {len = 23, data = 0x80af0b6 "/mnt/C/sys/share/nginx/"}, lock_file = {len = 0, data = 0x0}, hostname = {len = 0, data = 0x0}} ccf = (ngx_core_conf_t *) 0x0 #4 0x40100b49 in __uClibc_main () from /lib/libc.so.0 No symbol table info available. =========== cat /proc/cpuinfo processor : 0 vendor_id : CyrixInstead cpu family : 4 model : 1 model name : Cx486SLC stepping : unknown fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : no fpu_exception : no cpuid level : -1 wp : yes flags : bogomips : 44.33 =========== $ nginx -t Illegal instruction $ strace nginx -t execve("/usr/sbin/nginx", ["nginx", "-t"], [/* 31 vars */]) = 0 old_mmap(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x40005000 stat("/etc/ld.so.cache", 0xbffff874) = -1 ENOENT (No such file or directory) open("/lib/libcrypto.so.0.9.7", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib/libcrypto.so.0.9.7", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/libcrypto.so.0.9.7", O_RDONLY) = 4 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x40006000 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\266\2\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 876544, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x40007000 old_mmap(0x40007000, 783880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0xbffff90c00000000) = 0x40007000 old_mmap(0x400c7000, 73020, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xbffff90c000bf000) = 0x400c7000 old_mmap(0x400d9000, 14264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x400d9000 close(4) = 0 munmap(0x40006000, 4096) = 0 open("/lib/libc.so.0", O_RDONLY) = 4 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x40006000 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\377\0\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 606208, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x400dd000 old_mmap(0x400dd000, 574824, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0xbffff90c00000000) = 0x400dd000 old_mmap(0x4016a000, 4488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xbffff90c0008d000) = 0x4016a000 old_mmap(0x4016c000, 19256, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x4016c000 close(4) = 0 munmap(0x40006000, 4096) = 0 open("/lib/libdl.so.0", O_RDONLY) = 4 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x40006000 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \7\0\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 12288, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x40171000 old_mmap(0x40171000, 4820, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0xbffff90c00000000) = 0x40171000 old_mmap(0x40173000, 1052, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xbffff90c00001000) = 0x40173000 close(4) = 0 munmap(0x40006000, 4096) = 0 ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 brk(0) = 0x80ccaa0 brk(0x80cdaa0) = 0x80cdaa0 brk(0x80ce000) = 0x80ce000 gettimeofday({1381849325, 873891}, NULL) = 0 open("/etc/TZ", O_RDONLY) = 4 read(4, "FET-3\n", 68) = 6 read(4, "", 62) = 0 close(4) = 0 getpid() = 10038 open("/mnt/C/sys/var/nginx/log/error.log", O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0644) = 4 uname({sys="Linux", node="myhost", ...}) = 0 _sysctl({{CTL_KERN, KERN_RTSIGMAX}, 2, 0x80cca54, 4, (nil), 0}) = 0 --- SIGILL (Illegal instruction) @ 0 (0) --- +++ killed by SIGILL +++ Illegal instruction -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Tue Oct 15 15:39:00 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 15 Oct 2013 19:39:00 +0400 Subject: nginx -t > Illegal instruction In-Reply-To: References: Message-ID: <20131015153900.GO2144@mdounin.ru> Hello! On Tue, Oct 15, 2013 at 06:14:21PM +0300, Sergey Talchuk wrote: > Всем привет! > > собрал nginx для своей системы без проблем (собирал на ней же). Только > похоже при запуске nginx -t не может определить тип процессора. К > сожалению, система находится на носителе доступном только для чтения. > Поэтому отдебажить системные библиотеки не представляется возможным. > Надеюсь на помощь. [...] > Program received signal SIGILL, Illegal instruction. > 0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at src/core/ngx_cpuinfo.c:30 > 30 src/core/ngx_cpuinfo.c: No such file or directory. > in src/core/ngx_cpuinfo.c > (gdb) bt > #0 0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at > src/core/ngx_cpuinfo.c:30 > #1 0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84 > #2 0x0806e4f7 in ngx_os_init (log=0x80c27a8) at > src/os/unix/ngx_posix_init.c:60 [...] > cat /proc/cpuinfo > processor : 0 > vendor_id : CyrixInstead > cpu family : 4 > model : 1 > model name : Cx486SLC > stepping : unknown > fdiv_bug : no > hlt_bug : no > f00f_bug : no > coma_bug : no > fpu : no > fpu_exception : no > cpuid level : -1 > wp : yes > flags : > bogomips : 44.33 Ваш процессор настолько старый, что не поддерживает инструкцию cpuid. Quick and dirty workaround - добавить return в самом начале функции ngx_cpuinfo() в src/core/ngx_cpuinfo.c: diff --git a/src/core/ngx_cpuinfo.c b/src/core/ngx_cpuinfo.c --- a/src/core/ngx_cpuinfo.c +++ b/src/core/ngx_cpuinfo.c @@ -75,6 +75,8 @@ ngx_cpuinfo(void) u_char *vendor; uint32_t vbuf[5], cpu[4], model; + return; + vbuf[0] = 0; vbuf[1] = 0; vbuf[2] = 0; -- Maxim Dounin http://nginx.org/en/donation.html From gmm at csdoc.com Tue Oct 15 16:14:22 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Tue, 15 Oct 2013 19:14:22 +0300 Subject: allow/deny and return In-Reply-To: <20131015134550.GJ2144@mdounin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> Message-ID: <525D69DE.7080105@csdoc.com> On 15.10.2013 16:45, Maxim Dounin wrote: >>>> В такой конфигурации: >>>> >>>> location /closed { >>>> allow 10.1.1.1; >>>> deny all; >>>> return 200 "secret\n"; >>>> } >>>> >>>> allow/deny ни на что не влияют. ... >> я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html >> но так и не смог понять, почему allow и deny тут не будут работать. > Потому что директивы модуля rewrite - это фактически часть выбора > конфигурации. И именно от выбранной конфигурации зависит, что > можно, а что - нельзя. вот дословно что сейчас написано в документации: The ngx_http_rewrite_module module is used to change URIs using regular expressions, return redirects, and conditionally select configurations. "conditionally select configurations" - это только evil директива "if". остальные директивы, кроме rewrite, являются unconditional. разве нет? >> это все похоже на BUG, потому что пользователи обычно подразумевают, >> что сначала работает access module и только потом - rewrite_module. >> >> по крайней мере, в UNIX и даже в WINDOWS все работает именно так: >> если доступа к файлу нет, никаких операций с ним сделать нельзя. > В Антоном конфиге нет файла. Есть инструкция "при выборе > конфигурации для обработки запросов вернуть ответ с кодом 200". файла нет. но есть location /closed и есть директивы задания доступа кому allow, а кому deny. то что return срабатывает раньше deny - это будет совершенно неожиданно для более чем 99% пользователей nginx... > (И да, я таки считаю, что возможность задавать тело ответа была > добавлена в диркетиву return зря, не её это работа. Надо было > сделать отдельный модуль a la empty gif, подобных вопросов было бы > меньше. Но таки этот фарш уже поздно проворачивать назад.) почему поздно? и сейчас можно сделать отдельный модуль return, который будет срабатывать как content handler возвращая код статуса и урл/текст return code [text]; return code URL; return URL; а из модуля rewrite директиву return тогда можно будет вообще убрать. в этом случае - вообще ничего не изменится, кроме того, что директивы из access module отработают раньше, чем return, как это и должно быть. P.S. есть такая книга "Безумно просто. Вдохновляющие примеры Apple" http://www.mann-ivanov-ferber.ru/books/paperbook/bezumno-prosto/ см. "Отрывки из книги, [PDF] Введение. Посох Простоты 113 КБ". из рецензии: ?Простота всегда в моде?, ? говорит автор книги Кен Сигал. ?Бизнес тенденции приходят и уходят, но простота остается всегда. Предпочтение простоте заложено в нашей ДНК и это вряд ли изменится в течение нескольких миллиардов лет. Организации, которые понимают это могут превратить простоту в конкурентное преимущество. Поэтому, что это просто жизненный факт: при наличие выбора, человек всегда выберет более простой путь. Внутри огранизации простота экономит время и деньги, создает лучшие условия работы и поднимает боевой дух. Совсем не плохо для концепции, которая не стоит ни копейки?. -- Best regards, Gena From mdounin at mdounin.ru Tue Oct 15 16:57:49 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 15 Oct 2013 20:57:49 +0400 Subject: allow/deny and return In-Reply-To: <525D69DE.7080105@csdoc.com> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> Message-ID: <20131015165749.GQ2144@mdounin.ru> Hello! On Tue, Oct 15, 2013 at 07:14:22PM +0300, Gena Makhomed wrote: > On 15.10.2013 16:45, Maxim Dounin wrote: > > >>>>В такой конфигурации: > >>>> > >>>>location /closed { > >>>> allow 10.1.1.1; > >>>> deny all; > >>>> return 200 "secret\n"; > >>>>} > >>>> > >>>>allow/deny ни на что не влияют. > ... > >>я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html > >>но так и не смог понять, почему allow и deny тут не будут работать. > > >Потому что директивы модуля rewrite - это фактически часть выбора > >конфигурации. И именно от выбранной конфигурации зависит, что > >можно, а что - нельзя. > > вот дословно что сейчас написано в документации: > > The ngx_http_rewrite_module module is used to change URIs using regular > expressions, return redirects, and conditionally select configurations. > > "conditionally select configurations" - это только evil директива "if". > остальные директивы, кроме rewrite, являются unconditional. разве нет? Все директивы модуля rewrite - это в той или иной степени выбор конфигурации, даже если они unconditional. E.g., банальный set: set $file ".htpasswd"; auth_basic_user_file /path/to/$file; так или иначе определяет конфигурацию, которая будет в дальнейшем использоваться для обработки запроса. Выполнять сначала access-проверки, и только потом директивы модуля rewrite - ни разу не вариант. Не говоря уже о том, что директивы модуля rewrite - нельзя рассматривать отдельно друг от друга. Это инструкции, которые компилируются и выполняются вместе, о чём подробно рассказано в той самой документации модуля rewrite, со ссылки на которую я и начал. > >>это все похоже на BUG, потому что пользователи обычно подразумевают, > >>что сначала работает access module и только потом - rewrite_module. > >> > >>по крайней мере, в UNIX и даже в WINDOWS все работает именно так: > >>если доступа к файлу нет, никаких операций с ним сделать нельзя. > > >В Антоном конфиге нет файла. Есть инструкция "при выборе > >конфигурации для обработки запросов вернуть ответ с кодом 200". > > файла нет. но есть location /closed и есть директивы задания доступа > кому allow, а кому deny. то что return срабатывает раньше deny - это > будет совершенно неожиданно для более чем 99% пользователей nginx... С якобы багом разобрались - отлично. Возвращаемся к исходному разговору - если есть идеи, как _хорошо_ объяснить пользователям, почему так - you are welcome. > >(И да, я таки считаю, что возможность задавать тело ответа была > >добавлена в диркетиву return зря, не её это работа. Надо было > >сделать отдельный модуль a la empty gif, подобных вопросов было бы > >меньше. Но таки этот фарш уже поздно проворачивать назад.) > > почему поздно? и сейчас можно сделать отдельный модуль return, который > будет срабатывать как content handler возвращая код статуса и урл/текст > > return code [text]; > return code URL; > return URL; > > а из модуля rewrite директиву return тогда можно будет вообще убрать. > в этом случае - вообще ничего не изменится, кроме того, что директивы > из access module отработают раньше, чем return, как это и должно быть. Потому что семантика директивы return - в общем случае другая. В частности, сломается вот такой вполне типичный конфиг: if ($evil) { return 403; } rewrite ^/something/(.*) /something/else/$1; Аналогичный конфиг, кстати, рассматривается в подробностях тут: http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#internals -- Maxim Dounin http://nginx.org/en/donation.html From pluknet at nginx.com Tue Oct 15 17:06:38 2013 From: pluknet at nginx.com (Sergey Kandaurov) Date: Tue, 15 Oct 2013 21:06:38 +0400 Subject: nginx -t > Illegal instruction In-Reply-To: <20131015153900.GO2144@mdounin.ru> References: <20131015153900.GO2144@mdounin.ru> Message-ID: On Oct 15, 2013, at 7:39 PM, Maxim Dounin wrote: > Hello! > > On Tue, Oct 15, 2013 at 06:14:21PM +0300, Sergey Talchuk wrote: > >> Всем привет! >> >> собрал nginx для своей системы без проблем (собирал на ней же). Только >> похоже при запуске nginx -t не может определить тип процессора. К >> сожалению, система находится на носителе доступном только для чтения. >> Поэтому отдебажить системные библиотеки не представляется возможным. >> Надеюсь на помощь. > > [...] > >> Program received signal SIGILL, Illegal instruction. >> 0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at src/core/ngx_cpuinfo.c:30 >> 30 src/core/ngx_cpuinfo.c: No such file or directory. >> in src/core/ngx_cpuinfo.c >> (gdb) bt >> #0 0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at >> src/core/ngx_cpuinfo.c:30 >> #1 0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84 >> #2 0x0806e4f7 in ngx_os_init (log=0x80c27a8) at >> src/os/unix/ngx_posix_init.c:60 > > [...] > >> cat /proc/cpuinfo >> processor : 0 >> vendor_id : CyrixInstead >> cpu family : 4 >> model : 1 >> model name : Cx486SLC >> stepping : unknown >> fdiv_bug : no >> hlt_bug : no >> f00f_bug : no >> coma_bug : no >> fpu : no >> fpu_exception : no >> cpuid level : -1 >> wp : yes >> flags : >> bogomips : 44.33 > > Ваш процессор настолько старый, что не поддерживает инструкцию > cpuid. Quick and dirty workaround - добавить return в самом > начале функции ngx_cpuinfo() в src/core/ngx_cpuinfo.c: > > diff --git a/src/core/ngx_cpuinfo.c b/src/core/ngx_cpuinfo.c > --- a/src/core/ngx_cpuinfo.c > +++ b/src/core/ngx_cpuinfo.c > @@ -75,6 +75,8 @@ ngx_cpuinfo(void) > u_char *vendor; > uint32_t vbuf[5], cpu[4], model; > > + return; > + > vbuf[0] = 0; > vbuf[1] = 0; > vbuf[2] = 0; > Или что-то такое может работать: diff -r 5483d9e77b32 src/core/ngx_cpuinfo.c --- a/src/core/ngx_cpuinfo.c Wed Oct 02 15:07:17 2013 +0400 +++ b/src/core/ngx_cpuinfo.c Tue Oct 15 21:03:53 2013 +0400 @@ -20,6 +20,20 @@ static ngx_inline void ngx_cpuid(uint32_ static ngx_inline void ngx_cpuid(uint32_t i, uint32_t *buf) { + uint32_t cpu_vendor[4]; + + __asm__ ( + + " movl $0x4778654e, (%0);" // store vendor string + " movl $0x72446e65, 4(%0);" + " movl $0x6e657669, 8(%0);" + " movl $0, 12(%0);" + + : : "D" (cpu_vendor) ); + + if (ngx_strcmp(cpu_vendor, "CyrixInstead") == 0) { + return; + } /* * we could not use %ebx as output parameter if gcc builds PIC, -- Sergey Kandaurov pluknet at nginx.com From gmm at csdoc.com Tue Oct 15 17:36:26 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Tue, 15 Oct 2013 20:36:26 +0300 Subject: nginx -t > Illegal instruction In-Reply-To: References: <20131015153900.GO2144@mdounin.ru> Message-ID: <525D7D1A.8010508@csdoc.com> On 15.10.2013 20:06, Sergey Kandaurov wrote: > diff -r 5483d9e77b32 src/core/ngx_cpuinfo.c > --- a/src/core/ngx_cpuinfo.c Wed Oct 02 15:07:17 2013 +0400 > +++ b/src/core/ngx_cpuinfo.c Tue Oct 15 21:03:53 2013 +0400 > @@ -20,6 +20,20 @@ static ngx_inline void ngx_cpuid(uint32_ > static ngx_inline void > ngx_cpuid(uint32_t i, uint32_t *buf) > { > + uint32_t cpu_vendor[4]; > + > + __asm__ ( > + > + " movl $0x4778654e, (%0);" // store vendor string > + " movl $0x72446e65, 4(%0);" > + " movl $0x6e657669, 8(%0);" > + " movl $0, 12(%0);" > + > + : : "D" (cpu_vendor) ); > + > + if (ngx_strcmp(cpu_vendor, "CyrixInstead") == 0) { > + return; > + } есть лучший вариант - стандартный и документированный способ проверить, поддерживает __i386__ процессор команду cpuid или нет: http://wiki.osdev.org/CPUID такой патч был бы более универсальным и более полезным. вопросы про 486 процессор без cpuid периодически возникают. -- Best regards, Gena From nginx-forum at nginx.us Tue Oct 15 17:37:47 2013 From: nginx-forum at nginx.us (Cergoo) Date: Tue, 15 Oct 2013 13:37:47 -0400 Subject: Redirect In-Reply-To: <593a4920dd4c380a9b9e74c904a2409c.NginxMailingListRussian@forum.nginx.org> References: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> <97dc565a8e050ed7b786f771e39eae88.NginxMailingListRussian@forum.nginx.org> <593a4920dd4c380a9b9e74c904a2409c.NginxMailingListRussian@forum.nginx.org> Message-ID: <03114ec2b2ed78073d411c92726a51e5.NginxMailingListRussian@forum.nginx.org> читаю доку, и согласно ей, сие работать не будет rewrite / http://www.defense.gov last; - не? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243729#msg-243729 From igor at sysoev.ru Tue Oct 15 18:01:30 2013 From: igor at sysoev.ru (Igor Sysoev) Date: Tue, 15 Oct 2013 22:01:30 +0400 Subject: nginx -t > Illegal instruction In-Reply-To: <525D7D1A.8010508@csdoc.com> References: <20131015153900.GO2144@mdounin.ru> <525D7D1A.8010508@csdoc.com> Message-ID: <7B2B78FB-135B-413A-9221-DE9927CC8A88@sysoev.ru> On Oct 15, 2013, at 21:36 , Gena Makhomed wrote: > есть лучший вариант - стандартный и документированный способ > проверить, поддерживает __i386__ процессор команду cpuid или нет: > > http://wiki.osdev.org/CPUID > > такой патч был бы более универсальным и более полезным. > вопросы про 486 процессор без cpuid периодически возникают. Что-то я не припоминаю в рассылке периодических вопросов про процессоры двадцатилетней давности. -- Igor Sysoev http://nginx.com From mdounin at mdounin.ru Tue Oct 15 18:07:54 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 15 Oct 2013 22:07:54 +0400 Subject: nginx -t > Illegal instruction In-Reply-To: <525D7D1A.8010508@csdoc.com> References: <20131015153900.GO2144@mdounin.ru> <525D7D1A.8010508@csdoc.com> Message-ID: <20131015180754.GR2144@mdounin.ru> Hello! On Tue, Oct 15, 2013 at 08:36:26PM +0300, Gena Makhomed wrote: > On 15.10.2013 20:06, Sergey Kandaurov wrote: > > >diff -r 5483d9e77b32 src/core/ngx_cpuinfo.c > >--- a/src/core/ngx_cpuinfo.c Wed Oct 02 15:07:17 2013 +0400 > >+++ b/src/core/ngx_cpuinfo.c Tue Oct 15 21:03:53 2013 +0400 > >@@ -20,6 +20,20 @@ static ngx_inline void ngx_cpuid(uint32_ > > static ngx_inline void > > ngx_cpuid(uint32_t i, uint32_t *buf) > > { > >+ uint32_t cpu_vendor[4]; > >+ > >+ __asm__ ( > >+ > >+ " movl $0x4778654e, (%0);" // store vendor string > >+ " movl $0x72446e65, 4(%0);" > >+ " movl $0x6e657669, 8(%0);" > >+ " movl $0, 12(%0);" > >+ > >+ : : "D" (cpu_vendor) ); > >+ > >+ if (ngx_strcmp(cpu_vendor, "CyrixInstead") == 0) { > >+ return; > >+ } > > есть лучший вариант - стандартный и документированный способ > проверить, поддерживает __i386__ процессор команду cpuid или нет: > > http://wiki.osdev.org/CPUID > > такой патч был бы более универсальным и более полезным. > вопросы про 486 процессор без cpuid периодически возникают. Я так других случаев подобных вопросов - не помню ни одного, и поиском тоже не находится. Если покажешь пальцем - будет хорошо. Пока что мне кажется, что более продуктивным будет не заниматься некро^Wархеологией. -- Maxim Dounin http://nginx.org/en/donation.html From chipitsine at gmail.com Tue Oct 15 18:41:33 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Wed, 16 Oct 2013 00:41:33 +0600 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: References: <100274ca05b4bbaaf14114b641d0caff.NginxMailingListRussian@forum.nginx.org> Message-ID: инструкция по компиляции на win32 вызывает вопросы у всех, кто с ней сталкивается :-) там фишка в том, что используется bash от mingw и С-компилятор от Microsoft. чтобы configure нашла компилятор в путях, надо поправить переменные. можно, например, сделать по-ленивому. ставите компилятор от Microsoft, в "Пуск" появляется "Visual Studio Command Prompt", запускаете сначала этот ярлык, он прописывает пути, потом из него запускаете msys, а из него уже configure 15 октября 2013 г., 19:00 пользователь antarey написал: > нашел инструкцию - http://nginx.org/en/docs/howto_build_on_win32.html - но > честно говоря не совсем понял что за чем. > все что у меня получилось - скачать исходники, все остальное - ничего не > понятно > 1.Start MSYS bash. - bash.exe???? зачем? > 2. Create a build and lib directories, and unpack zlib, PCRE and OpenSSL > libraries sources into lib directory: > mkdir objs > mkdir objs/lib > cd objs/lib > tar -xzf ../../pcre-8.32.tar.gz > tar -xzf ../../zlib-1.2.7.tar.gz > tar -xzf ../../openssl-1.0.1e.tar.gz > > в каком каталоге создавать ети каталоги? в каталоге c:\Program > Files\Mercurial\nginx\ ????? > 3. Run configure script: с помощью чего запускать етот скрипт, чем выполнять > и тд. > на https://github.com/arut/nginx-dav-ext-module написано > Requirements: libexpat-dev - что ето, где взять, куда кидать,как юзать????? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243701,243712#msg-243712 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From gmm at csdoc.com Tue Oct 15 19:18:30 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Tue, 15 Oct 2013 22:18:30 +0300 Subject: nginx -t > Illegal instruction In-Reply-To: <7B2B78FB-135B-413A-9221-DE9927CC8A88@sysoev.ru> References: <20131015153900.GO2144@mdounin.ru> <525D7D1A.8010508@csdoc.com> <7B2B78FB-135B-413A-9221-DE9927CC8A88@sysoev.ru> Message-ID: <525D9506.1000803@csdoc.com> On 15.10.2013 21:01, Igor Sysoev wrote: >> вопросы про 486 процессор без cpuid периодически возникают. > Что-то я не припоминаю в рассылке периодических вопросов > про процессоры двадцатилетней давности. я визуально помню, что были сообщения про "Illegal Instruction" при запуске nginx, сейчас порылся в архиве рассылки... причина "Illegal Instruction" там была другая, падал он не из-за cpuid: http://forum.nginx.org/read.php?21,35305,35305 On 15.10.2013 21:07, Maxim Dounin wrote: >> вопросы про 486 процессор без cpuid периодически возникают. > Я так других случаев подобных вопросов - не помню ни одного, и > поиском тоже не находится. Если покажешь пальцем - будет хорошо. именно про cpuid и 386/486 процессор не покажу. не смог сейчас найти. но подозреваю, что попытки запустить nginx на 386/486 были и раньше. > Пока что мне кажется, что более продуктивным будет не заниматься > некро^Wархеологией. скорее всего да. не буду спорить с разработчиками nginx, вам виднее. хотя у меня до сих пор дома стоит комп с CPU 386DX 40 MHz, 4 MB RAM. - просто рука не поднимается выбросить, он ведь полностью рабочий... -- Best regards, Gena From nginx-forum at nginx.us Wed Oct 16 05:21:57 2013 From: nginx-forum at nginx.us (antarey) Date: Wed, 16 Oct 2013 01:21:57 -0400 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: References: Message-ID: Нда намутили ребята по полной, а нельзя блин скомпилировать со всеми модулями и в конфе указывать что включать а что нет ????? Попробую, спасибо Илья Шипицин Wrote: ------------------------------------------------------- > инструкция по компиляции на win32 вызывает вопросы у всех, кто с ней > сталкивается :-) > > там фишка в том, что используется bash от mingw и С-компилятор от > Microsoft. чтобы configure нашла компилятор в путях, надо поправить > переменные. можно, например, сделать по-ленивому. > > ставите компилятор от Microsoft, в "Пуск" появляется "Visual Studio > Command Prompt", запускаете сначала этот ярлык, он прописывает пути, > потом из него запускаете msys, а из него уже configure > > > > > 15 октября 2013 г., 19:00 пользователь antarey > написал: > > нашел инструкцию - > http://nginx.org/en/docs/howto_build_on_win32.html - но > > честно говоря не совсем понял что за чем. > > все что у меня получилось - скачать исходники, все остальное - > ничего не > > понятно > > 1.Start MSYS bash. - bash.exe???? зачем? > > 2. Create a build and lib directories, and unpack zlib, PCRE and > OpenSSL > > libraries sources into lib directory: > > mkdir objs > > mkdir objs/lib > > cd objs/lib > > tar -xzf ../../pcre-8.32.tar.gz > > tar -xzf ../../zlib-1.2.7.tar.gz > > tar -xzf ../../openssl-1.0.1e.tar.gz > > > > в каком каталоге создавать ети каталоги? в каталоге c:\Program > > Files\Mercurial\nginx\ ????? > > 3. Run configure script: с помощью чего запускать етот скрипт, чем > выполнять > > и тд. > > на https://github.com/arut/nginx-dav-ext-module написано > > Requirements: libexpat-dev - что ето, где взять, куда кидать,как > юзать????? > > > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,243701,243712#msg-243712 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > 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,243701,243739#msg-243739 From chipitsine at gmail.com Wed Oct 16 06:18:33 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Wed, 16 Oct 2013 12:18:33 +0600 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: References: Message-ID: это опенсорс, привыкайте :-) если вы адресуете "а нельзя ли" в коммерческий департамент, думаю, у вас могут быть варианты. 16 октября 2013 г., 11:21 пользователь antarey написал: > Нда намутили ребята по полной, а нельзя блин скомпилировать со всеми > модулями и в конфе указывать что включать а что нет ????? > Попробую, спасибо > Илья Шипицин Wrote: > ------------------------------------------------------- >> инструкция по компиляции на win32 вызывает вопросы у всех, кто с ней >> сталкивается :-) >> >> там фишка в том, что используется bash от mingw и С-компилятор от >> Microsoft. чтобы configure нашла компилятор в путях, надо поправить >> переменные. можно, например, сделать по-ленивому. >> >> ставите компилятор от Microsoft, в "Пуск" появляется "Visual Studio >> Command Prompt", запускаете сначала этот ярлык, он прописывает пути, >> потом из него запускаете msys, а из него уже configure >> >> >> >> >> 15 октября 2013 г., 19:00 пользователь antarey >> написал: >> > нашел инструкцию - >> http://nginx.org/en/docs/howto_build_on_win32.html - но >> > честно говоря не совсем понял что за чем. >> > все что у меня получилось - скачать исходники, все остальное - >> ничего не >> > понятно >> > 1.Start MSYS bash. - bash.exe???? зачем? >> > 2. Create a build and lib directories, and unpack zlib, PCRE and >> OpenSSL >> > libraries sources into lib directory: >> > mkdir objs >> > mkdir objs/lib >> > cd objs/lib >> > tar -xzf ../../pcre-8.32.tar.gz >> > tar -xzf ../../zlib-1.2.7.tar.gz >> > tar -xzf ../../openssl-1.0.1e.tar.gz >> > >> > в каком каталоге создавать ети каталоги? в каталоге c:\Program >> > Files\Mercurial\nginx\ ????? >> > 3. Run configure script: с помощью чего запускать етот скрипт, чем >> выполнять >> > и тд. >> > на https://github.com/arut/nginx-dav-ext-module написано >> > Requirements: libexpat-dev - что ето, где взять, куда кидать,как >> юзать????? >> > >> > Posted at Nginx Forum: >> http://forum.nginx.org/read.php?21,243701,243712#msg-243712 >> > >> > _______________________________________________ >> > nginx-ru mailing list >> > nginx-ru at nginx.org >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> 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,243701,243739#msg-243739 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Wed Oct 16 07:16:50 2013 From: nginx-forum at nginx.us (antarey) Date: Wed, 16 Oct 2013 03:16:50 -0400 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: References: Message-ID: <978da6dc337919f682070e1d857f6578.NginxMailingListRussian@forum.nginx.org> :) ну ето понятно - ребята тоже работают и хотят заработать, и сделали все максимально для того чтобы обращались в комерческий отдел - есть частичный функционал, - надо что-то дополнительно - пожалуйста компильте, не можете - добро пожаловать за бабки :) Подтверждение тому - инструкция по компиляции на винде, не понятно нифига Илья Шипицин Wrote: ------------------------------------------------------- > это опенсорс, привыкайте :-) > если вы адресуете "а нельзя ли" в коммерческий департамент, думаю, у > вас могут быть варианты. > > 16 октября 2013 г., 11:21 пользователь antarey > написал: > > Нда намутили ребята по полной, а нельзя блин скомпилировать со > всеми > > модулями и в конфе указывать что включать а что нет ????? > > Попробую, спасибо > > Илья Шипицин Wrote: > > ------------------------------------------------------- > >> инструкция по компиляции на win32 вызывает вопросы у всех, кто с > ней > >> сталкивается :-) > >> > >> там фишка в том, что используется bash от mingw и С-компилятор от > >> Microsoft. чтобы configure нашла компилятор в путях, надо > поправить > >> переменные. можно, например, сделать по-ленивому. > >> > >> ставите компилятор от Microsoft, в "Пуск" появляется "Visual > Studio > >> Command Prompt", запускаете сначала этот ярлык, он прописывает > пути, > >> потом из него запускаете msys, а из него уже configure > >> > >> > >> > >> > >> 15 октября 2013 г., 19:00 пользователь antarey > > >> написал: > >> > нашел инструкцию - > >> http://nginx.org/en/docs/howto_build_on_win32.html - но > >> > честно говоря не совсем понял что за чем. > >> > все что у меня получилось - скачать исходники, все остальное - > >> ничего не > >> > понятно > >> > 1.Start MSYS bash. - bash.exe???? зачем? > >> > 2. Create a build and lib directories, and unpack zlib, PCRE and > >> OpenSSL > >> > libraries sources into lib directory: > >> > mkdir objs > >> > mkdir objs/lib > >> > cd objs/lib > >> > tar -xzf ../../pcre-8.32.tar.gz > >> > tar -xzf ../../zlib-1.2.7.tar.gz > >> > tar -xzf ../../openssl-1.0.1e.tar.gz > >> > > >> > в каком каталоге создавать ети каталоги? в каталоге c:\Program > >> > Files\Mercurial\nginx\ ????? > >> > 3. Run configure script: с помощью чего запускать етот скрипт, > чем > >> выполнять > >> > и тд. > >> > на https://github.com/arut/nginx-dav-ext-module написано > >> > Requirements: libexpat-dev - что ето, где взять, куда > кидать,как > >> юзать????? > >> > > >> > Posted at Nginx Forum: > >> http://forum.nginx.org/read.php?21,243701,243712#msg-243712 > >> > > >> > _______________________________________________ > >> > nginx-ru mailing list > >> > nginx-ru at nginx.org > >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru > >> _______________________________________________ > >> 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,243701,243739#msg-243739 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > 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,243701,243741#msg-243741 From wangsamp at gmail.com Wed Oct 16 07:39:44 2013 From: wangsamp at gmail.com (Oleksandr V. Typlyns'kyi) Date: Wed, 16 Oct 2013 10:39:44 +0300 (EEST) Subject: allow/deny and return In-Reply-To: <20131015165749.GQ2144@mdounin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> Message-ID: Yesterday Oct 15, 2013 at 20:57 Maxim Dounin wrote: > > файла нет. но есть location /closed и есть директивы задания доступа > > кому allow, а кому deny. то что return срабатывает раньше deny - это > > будет совершенно неожиданно для более чем 99% пользователей nginx... > > С якобы багом разобрались - отлично. Возвращаемся к исходному > разговору - если есть идеи, как _хорошо_ объяснить пользователям, > почему так - you are welcome. Не совсем хорошо(не все прочтут до написания подобного конфига), но явно (для этапа разбирательства "почему так?") будет дополнить описание порядка обработки директив rewrite ещё и переходами к другим фазам. -- WNGS-RIPE From wangsamp at gmail.com Wed Oct 16 08:03:51 2013 From: wangsamp at gmail.com (Oleksandr V. Typlyns'kyi) Date: Wed, 16 Oct 2013 11:03:51 +0300 (EEST) Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: <978da6dc337919f682070e1d857f6578.NginxMailingListRussian@forum.nginx.org> References: <978da6dc337919f682070e1d857f6578.NginxMailingListRussian@forum.nginx.org> Message-ID: Today Oct 16, 2013 at 03:16 antarey wrote: > :) ну ето понятно - ребята тоже работают и хотят заработать, и сделали все > максимально для того чтобы обращались в комерческий отдел - есть частичный > функционал, - надо что-то дополнительно - пожалуйста компильте, не можете - > добро пожаловать за бабки :) > Подтверждение тому - инструкция по компиляции на винде, не понятно нифига Вы упустили в первом же абзаце фразу "версия nginx под Windows рассматривается пока как бета-версия". Есть ещё альтернативная сборка: http://mailman.nginx.org/pipermail/nginx/2013-October/040664.html Можете попробовать попросить её автора добавить дополнительный модуль. -- WNGS-RIPE From chipitsine at gmail.com Wed Oct 16 08:34:16 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Wed, 16 Oct 2013 14:34:16 +0600 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: <978da6dc337919f682070e1d857f6578.NginxMailingListRussian@forum.nginx.org> References: <978da6dc337919f682070e1d857f6578.NginxMailingListRussian@forum.nginx.org> Message-ID: вы можете форкнуть nginx для Windows и сделать из него конфетку. и обломать коммерческий отдел тем самым. ничего вроде не мешает. 16 октября 2013 г., 13:16 пользователь antarey написал: > :) ну ето понятно - ребята тоже работают и хотят заработать, и сделали все > максимально для того чтобы обращались в комерческий отдел - есть частичный > функционал, - надо что-то дополнительно - пожалуйста компильте, не можете - > добро пожаловать за бабки :) > Подтверждение тому - инструкция по компиляции на винде, не понятно нифига > Илья Шипицин Wrote: > ------------------------------------------------------- >> это опенсорс, привыкайте :-) >> если вы адресуете "а нельзя ли" в коммерческий департамент, думаю, у >> вас могут быть варианты. >> >> 16 октября 2013 г., 11:21 пользователь antarey >> написал: >> > Нда намутили ребята по полной, а нельзя блин скомпилировать со >> всеми >> > модулями и в конфе указывать что включать а что нет ????? >> > Попробую, спасибо >> > Илья Шипицин Wrote: >> > ------------------------------------------------------- >> >> инструкция по компиляции на win32 вызывает вопросы у всех, кто с >> ней >> >> сталкивается :-) >> >> >> >> там фишка в том, что используется bash от mingw и С-компилятор от >> >> Microsoft. чтобы configure нашла компилятор в путях, надо >> поправить >> >> переменные. можно, например, сделать по-ленивому. >> >> >> >> ставите компилятор от Microsoft, в "Пуск" появляется "Visual >> Studio >> >> Command Prompt", запускаете сначала этот ярлык, он прописывает >> пути, >> >> потом из него запускаете msys, а из него уже configure >> >> >> >> >> >> >> >> >> >> 15 октября 2013 г., 19:00 пользователь antarey >> >> >> написал: >> >> > нашел инструкцию - >> >> http://nginx.org/en/docs/howto_build_on_win32.html - но >> >> > честно говоря не совсем понял что за чем. >> >> > все что у меня получилось - скачать исходники, все остальное - >> >> ничего не >> >> > понятно >> >> > 1.Start MSYS bash. - bash.exe???? зачем? >> >> > 2. Create a build and lib directories, and unpack zlib, PCRE and >> >> OpenSSL >> >> > libraries sources into lib directory: >> >> > mkdir objs >> >> > mkdir objs/lib >> >> > cd objs/lib >> >> > tar -xzf ../../pcre-8.32.tar.gz >> >> > tar -xzf ../../zlib-1.2.7.tar.gz >> >> > tar -xzf ../../openssl-1.0.1e.tar.gz >> >> > >> >> > в каком каталоге создавать ети каталоги? в каталоге c:\Program >> >> > Files\Mercurial\nginx\ ????? >> >> > 3. Run configure script: с помощью чего запускать етот скрипт, >> чем >> >> выполнять >> >> > и тд. >> >> > на https://github.com/arut/nginx-dav-ext-module написано >> >> > Requirements: libexpat-dev - что ето, где взять, куда >> кидать,как >> >> юзать????? >> >> > >> >> > Posted at Nginx Forum: >> >> http://forum.nginx.org/read.php?21,243701,243712#msg-243712 >> >> > >> >> > _______________________________________________ >> >> > nginx-ru mailing list >> >> > nginx-ru at nginx.org >> >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> _______________________________________________ >> >> 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,243701,243739#msg-243739 >> > >> > _______________________________________________ >> > nginx-ru mailing list >> > nginx-ru at nginx.org >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> 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,243701,243741#msg-243741 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From citrin at citrin.ru Wed Oct 16 09:12:29 2013 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Wed, 16 Oct 2013 13:12:29 +0400 Subject: allow/deny and return In-Reply-To: <20131015124528.GH2144@mdounin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> Message-ID: <525E587D.4060503@citrin.ru> On 10/15/13 16:45, Maxim Dounin wrote: > On Tue, Oct 15, 2013 at 04:26:32PM +0400, Anton Yuzhaninov wrote: > >> В такой конфигурации: >> >> location /closed { >> allow 10.1.1.1; >> deny all; >> return 200 "secret\n"; >> } > Я, например, хорошего способа не знаю. Потому что не с первого > взгляда - момент в общем-то очевидный (у прочитавших документацию > на модуль rewrite вопросов, как мне кажется, возникнуть не > должно), а как это корректно рассказать не читавшим... В документации на rewrite: http://nginx.org/en/docs/http/ngx_http_rewrite_module.html не нашел явное указание на то, что директивы этого модуля выполняются до модулей access-фазы (ngx_http_access_module,ngx_http_auth_basic_module, ngx_http_auth_request_module). Если знать внутреннюю архитектуру nginx то это очевидно, но прочитав только документацию на ngx_http_rewrite_module и ngx_http_access_module догадаться будет сложно. Думаю можно просто добавить в начало описания ngx_http_rewrite_module маленький абзац про это. From mdounin at mdounin.ru Wed Oct 16 11:45:41 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 16 Oct 2013 15:45:41 +0400 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: <978da6dc337919f682070e1d857f6578.NginxMailingListRussian@forum.nginx.org> References: <978da6dc337919f682070e1d857f6578.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131016114541.GW2144@mdounin.ru> Hello! On Wed, Oct 16, 2013 at 03:16:50AM -0400, antarey wrote: > :) ну ето понятно - ребята тоже работают и хотят заработать, и сделали все > максимально для того чтобы обращались в комерческий отдел - есть частичный > функционал, - надо что-то дополнительно - пожалуйста компильте, не можете - > добро пожаловать за бабки :) > Подтверждение тому - инструкция по компиляции на винде, не понятно нифига На самом деле, на версии для винды мы не зарабатываем вообще - просто потому, что она не пригодна для production-использования по ряду документированных причин. Пилим исключительно из альтруистических соображений. А инструкция - писалась в первую очередь для себя, чтобы не забыть, как это чудо в перьях собирается. Мы искренне сожалеем, если вам непонятно. Напишите понятнее - с удовольствием разместим. BTW, в свежих версиях должно собираться и gcc из MinGW (--with-cc=gcc, остальное - так же), но работоспособность результата особо не проверялась. -- Maxim Dounin http://nginx.org/en/donation.html From vladimir at skubriev.ru Wed Oct 16 12:53:15 2013 From: vladimir at skubriev.ru (Vladimir Skubriev) Date: Wed, 16 Oct 2013 16:53:15 +0400 Subject: =?UTF-8?B?0L/QvtGH0LXQvNGDINC/0YDQuCDQt9Cw0L/RgNC+0YHQtSDQvdCwIDQ0MyDQv9C+?= =?UTF-8?B?0YDRgiDRjyDQv9C+0L/QsNC00LDRjiDQvdC1INC90LAg0L/RgNC+0L/QuNGB?= =?UTF-8?B?0LDQvdC90YvQuSDQsiDQutC+0L3RhNC40LPQtSDQsdGN0LrRjdC90LQ=?= Message-ID: <525E8C3B.6070903@skubriev.ru> Не много изучив вопрос - ни как не могу понять. upstream backendredmine { server 192.168.128.11:80; } upstream redmine-dev { server 192.168.128.12:80; } server { listen 443 ssl; server_name redmine.examplelab.com; keepalive_timeout 60; ssl_certificate /etc/ssl-redmine_examplelab_com/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl-redmine_examplelab_com/private/ssl-cert-snakeoil.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH"; add_header Strict-Transport-Security 'max-age=604800'; access_log /var/log/nginx/redmineproxy-https.access.log; error_log /var/log/nginx/redmineproxy-https.error.log; location / { proxy_pass http://redmine-dev; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } server { listen 80; server_name redmine.examplelab.com; access_log /var/log/nginx/redmineproxy.acess.log; error_log /var/log/nginx/redmineproxy.error.log; location / { proxy_pass http://backendredmine; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 1. Почему при запросе из браузера https://redmine.examplelab.com я попадаю на backend backendredmine вместо того, который указана в секции server { listen 443 ssl; ... } 2. Почему браузер после ввода запроса https://redmine.examplelab.com открывает страницу без https, т.е. http://redmine.examplelab.com и соответсвенно я вижу страницу backendredmine Это им сделано или nginx ? 3. С чем браузер сверяет имя сервера с которого он загружает сертификат ? С тем что храниться в сертификатах: ssl_certificate /etc/ssl-redmine_examplelab_com/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl-redmine_examplelab_com/private/ssl-cert-snakeoil.key; ? 4. Какую нибудь роль играет текущий hostname на backend в таком проксировании? Я понимаю, конечно что я могу еще погуглить и по изучать. Но все же, малейшие подсказки хотя бы. Спасибо. -- С Уважением, специалист по техническому и программному обеспечению, системный администратор Скубриев Владимир ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Россия, Ростовская область, г. Таганрог тел. моб: +7 (918) 504 38 20 skype: v.skubriev icq: 214-800-502 www: skubriev.ru From citrin at citrin.ru Wed Oct 16 12:56:57 2013 From: citrin at citrin.ru (Anton Yuzhaninov) Date: Wed, 16 Oct 2013 16:56:57 +0400 Subject: =?UTF-8?B?UmU6INC/0L7Rh9C10LzRgyDQv9GA0Lgg0LfQsNC/0YDQvtGB0LUg0L3QsCA0NDMg?= =?UTF-8?B?0L/QvtGA0YIg0Y8g0L/QvtC/0LDQtNCw0Y4g0L3QtSDQvdCwINC/0YDQvtC/?= =?UTF-8?B?0LjRgdCw0L3QvdGL0Lkg0LIg0LrQvtC90YTQuNCz0LUg0LHRjdC60Y3QvdC0?= In-Reply-To: <525E8C3B.6070903@skubriev.ru> References: <525E8C3B.6070903@skubriev.ru> Message-ID: <525E8D19.4010905@citrin.ru> On 10/16/13 16:53, Vladimir Skubriev wrote: > > 2. Почему браузер после ввода запроса https://redmine.examplelab.com открывает > страницу без https, т.е. > > http://redmine.examplelab.com и соответсвенно я вижу страницу backendredmine Возможно бэкенд выдает редирект на версию без http, посмотрите все запросы от браузера через firebug или аналогичные инструменты. From gmm at csdoc.com Wed Oct 16 13:59:55 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Wed, 16 Oct 2013 16:59:55 +0300 Subject: allow/deny and return In-Reply-To: <20131015165749.GQ2144@mdounin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> Message-ID: <525E9BDB.4020908@csdoc.com> On 15.10.2013 19:57, Maxim Dounin wrote: > Все директивы модуля rewrite - это в той или иной степени выбор > конфигурации, даже если они unconditional. E.g., банальный set: > > set $file ".htpasswd"; > auth_basic_user_file /path/to/$file; > > так или иначе определяет конфигурацию, которая будет в дальнейшем > использоваться для обработки запроса. Выполнять сначала > access-проверки, и только потом директивы модуля rewrite - ни разу > не вариант. а если выполнять сначала только set (внутри location и внутри if) потом access фазу и потом уже все остальные директивы модуля rewrite? тогда и обратная совместимость с set не сломается и access-проверки сработают всегда раньше, чем "опасные" директивы return и rewrite. кстати, если добавить директиву handler, которая работает после фазы try_files, то можно будет писать конфиг nginx без лишней избыточности: location /admin { satisfy any; set $file ".htpasswd"; auth_basic_user_file /path/to/$file; allow 10.1.1.1; deny all; handler @default; } location / { handler @default; } location /for-test/ { if ($arg_test=123) { handler @special; # проблем не должно быть } handler @default; } location @default { root ...; try_files $uri $uri/ =404; location ~ \.php$ { root ...; try_files $uri @virtual; fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param QUERY_STRING $args; } } location @virtual { fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/index.php; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param QUERY_STRING q=$uri&$args; } >>>> по крайней мере, в UNIX и даже в WINDOWS все работает именно так: >>>> если доступа к файлу нет, никаких операций с ним сделать нельзя. >> >>> В Антоном конфиге нет файла. Есть инструкция "при выборе >>> конфигурации для обработки запросов вернуть ответ с кодом 200". >> >> файла нет. но есть location /closed и есть директивы задания доступа >> кому allow, а кому deny. то что return срабатывает раньше deny - это >> будет совершенно неожиданно для более чем 99% пользователей nginx... > > С якобы багом разобрались - отлично. Возвращаемся к исходному > разговору - если есть идеи, как _хорошо_ объяснить пользователям, > почему так - you are welcome. почему return/rewrite работает раньше access - я смог нормально понять только после того, как прочитал http://www.aosabook.org/en/nginx.html начиная со слов "Which brings us to the phases." причем, вот этой: ...the request goes through six phases: 1. server rewrite phase 2. location phase 3. location rewrite phase (which can bring the request back to the previous phase) 4. access control phase 5. try_files phase 6. log phase очень важной информации нет в официальной документации. кстати, если пользователи столкнутся с ситуацией, что access-обработчики не работают в location где используется return и rewrite - они в первую очередь буду искать причину в документации к соответствующим access модулям, а не в модуле rewrite > Аналогичный конфиг, кстати, рассматривается в подробностях тут: > > http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#internals весь остальной псевдокод после "match of regular expression" разве не должен быть с отступом в 4 пробела, таким же как и у "return 403" ? -- Best regards, Gena From mdounin at mdounin.ru Wed Oct 16 15:20:32 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 16 Oct 2013 19:20:32 +0400 Subject: allow/deny and return In-Reply-To: <525E9BDB.4020908@csdoc.com> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> Message-ID: <20131016152031.GY2144@mdounin.ru> Hello! On Wed, Oct 16, 2013 at 04:59:55PM +0300, Gena Makhomed wrote: > On 15.10.2013 19:57, Maxim Dounin wrote: > > >Все директивы модуля rewrite - это в той или иной степени выбор > >конфигурации, даже если они unconditional. E.g., банальный set: > > > > set $file ".htpasswd"; > > auth_basic_user_file /path/to/$file; > > > >так или иначе определяет конфигурацию, которая будет в дальнейшем > >использоваться для обработки запроса. Выполнять сначала > >access-проверки, и только потом директивы модуля rewrite - ни разу > >не вариант. > > а если выполнять сначала только set (внутри location и внутри if) > потом access фазу и потом уже все остальные директивы модуля rewrite? > тогда и обратная совместимость с set не сломается и access-проверки > сработают всегда раньше, чем "опасные" директивы return и rewrite. Я даже и не знаю, что сказать. Вот, например, конфиг для размышлений: set $file ".htpasswd"; if ($true_or_false) { set $file ".htpasswd2"; } auth_basic_user_file /path/to/$file; Или так: if ($evil) { return 444; } set $file ".htpasswd"; auth_basic_user_file /path/to/$file; > кстати, если добавить директиву handler, которая работает после фазы > try_files, то можно будет писать конфиг nginx без лишней избыточности: > > location /admin { > satisfy any; > set $file ".htpasswd"; > auth_basic_user_file /path/to/$file; > allow 10.1.1.1; > deny all; > handler @default; > } [...] Можно добавить множество новых директив. Но, как показывает практика, это не избавляет от старых проблем, а только добавляет новых. Не надо умножать сущности без необходимости. [...] > >С якобы багом разобрались - отлично. Возвращаемся к исходному > >разговору - если есть идеи, как _хорошо_ объяснить пользователям, > >почему так - you are welcome. > > почему return/rewrite работает раньше access - я смог нормально понять > только после того, как прочитал http://www.aosabook.org/en/nginx.html > начиная со слов "Which brings us to the phases." причем, вот этой: > > ...the request goes through six phases: > > 1. server rewrite phase > 2. location phase > 3. location rewrite phase (which can bring the request back to the > previous phase) > 4. access control phase > 5. try_files phase > 6. log phase > > очень важной информации нет в официальной документации. Эта информация - подробности реализации (неправильно и не полностью описанные, кстати, на самом деле фаз 11). Вываливать эти подробности на пользователей - плохая идея. Человекопонятная и не зависящая от реализации часть этой информации - в заметных объемах присутсвует в документации по rewrite и во водной статье "Как nginx обрабатывает запросы" тут: http://nginx.org/en/docs/http/request_processing.html > >Аналогичный конфиг, кстати, рассматривается в подробностях тут: > > > >http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#internals > > весь остальной псевдокод после "match of regular expression" разве > не должен быть с отступом в 4 пробела, таким же как и у "return 403" ? Скорее нет, чем да. -- Maxim Dounin http://nginx.org/en/donation.html From gmm at csdoc.com Wed Oct 16 16:55:59 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Wed, 16 Oct 2013 19:55:59 +0300 Subject: allow/deny and return In-Reply-To: <20131016152031.GY2144@mdounin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> Message-ID: <525EC51F.2040107@csdoc.com> On 16.10.2013 18:20, Maxim Dounin wrote: >> кстати, если добавить директиву handler, которая работает после фазы >> try_files, то можно будет писать конфиг nginx без лишней избыточности: >> >> location /admin { >> satisfy any; >> set $file ".htpasswd"; >> auth_basic_user_file /path/to/$file; >> allow 10.1.1.1; >> deny all; >> handler @default; >> } > Можно добавить множество новых директив. Но, как показывает > практика, это не избавляет от старых проблем, а только добавляет > новых. Не надо умножать сущности без необходимости. а какие новые проблемы добавятся в этом случае? сейчас весь блок обработки статики и динамики - надо будет копировать в конфиге несколько раз, и при внесении правок - не забыть везде поправить. без новой директивы handler устранить избыточность конфига можно только с помощью директивы "include", - но тогда станет еще хуже, конфиг server`а нельзя будет посмотреть в одном файле. по поводу правила "не надо умножать сущности без необходимости", это правило работает не всегда. например, для того чтобы вернуть какой-то код и текст вполне достаточно было доработать директиву return, чтобы она понимала синтаксис вида return 200 "secret\n"; - здесь нет необходимости создавать новый модуль a la empty gif. -- Best regards, Gena From ru at nginx.com Wed Oct 16 17:25:19 2013 From: ru at nginx.com (Ruslan Ermilov) Date: Wed, 16 Oct 2013 21:25:19 +0400 Subject: allow/deny and return In-Reply-To: <525E587D.4060503@citrin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525E587D.4060503@citrin.ru> Message-ID: <20131016172519.GG56191@lo0.su> On Wed, Oct 16, 2013 at 01:12:29PM +0400, Anton Yuzhaninov wrote: > On 10/15/13 16:45, Maxim Dounin wrote: > > On Tue, Oct 15, 2013 at 04:26:32PM +0400, Anton Yuzhaninov wrote: > > > >> В такой конфигурации: > >> > >> location /closed { > >> allow 10.1.1.1; > >> deny all; > >> return 200 "secret\n"; > >> } > > > Я, например, хорошего способа не знаю. Потому что не с первого > > взгляда - момент в общем-то очевидный (у прочитавших документацию > > на модуль rewrite вопросов, как мне кажется, возникнуть не > > должно), а как это корректно рассказать не читавшим... > > В документации на rewrite: > http://nginx.org/en/docs/http/ngx_http_rewrite_module.html не нашел явное > указание на то, что директивы этого модуля выполняются до модулей access-фазы > (ngx_http_access_module,ngx_http_auth_basic_module, ngx_http_auth_request_module). > > Если знать внутреннюю архитектуру nginx то это очевидно, но прочитав только > документацию на ngx_http_rewrite_module и ngx_http_access_module догадаться > будет сложно. То, что в описанном тобой случае директива access "не выполняется", можно понять, прочитав раздел "Внутреннее устройство", нюанс про директиву limit_rate. > Думаю можно просто добавить в начало описания ngx_http_rewrite_module маленький > абзац про это. Написать, что директивы модуля rewrite выполняются до директив модуля access - это плохая идея, т.к. это не отразит сути и только запутает. Надо донести мысль о том, что rewrite (включая ВСЕ его директивы) - это процесс поиска location'а. При обработке запроса сначала выполняется поиск location'а по URI, затем выполняются директивы модуля rewrite (и только они!) для данного location'а (*), в рез-те location может измениться, процесс повторяется. Также в процессе поиска location'а выполнение запроса может и вовсе завершиться (return, rewrite redirect). И лишь потом, когда найден конечный location, "выполняются" остальные директивы, включая access-модули. (*) Я специально выше опустил пункт про директивы rewrite на уровне server, дабы не загромождать. Возможно достаточно будет переформулировать это так: < Директивы модуля ngx_http_rewrite_module обрабатываются в следующем порядке: > Обработка запроса начинается с выполнения директив модуля ngx_http_rewrite_module. > Директивы обрабатываются в следующем порядке: From mdounin at mdounin.ru Wed Oct 16 17:33:02 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 16 Oct 2013 21:33:02 +0400 Subject: allow/deny and return In-Reply-To: <525EC51F.2040107@csdoc.com> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> Message-ID: <20131016173302.GA2144@mdounin.ru> Hello! On Wed, Oct 16, 2013 at 07:55:59PM +0300, Gena Makhomed wrote: > On 16.10.2013 18:20, Maxim Dounin wrote: > > >>кстати, если добавить директиву handler, которая работает после фазы > >>try_files, то можно будет писать конфиг nginx без лишней избыточности: > >> > >>location /admin { > >> satisfy any; > >> set $file ".htpasswd"; > >> auth_basic_user_file /path/to/$file; > >> allow 10.1.1.1; > >> deny all; > >> handler @default; > >>} > > >Можно добавить множество новых директив. Но, как показывает > >практика, это не избавляет от старых проблем, а только добавляет > >новых. Не надо умножать сущности без необходимости. > > а какие новые проблемы добавятся в этом случае? Понятия не имею - подобные вещи выясняются в основном в процессе, кроме уж совсем очевидных глупостей. Я как бы пытаюсь сказать, что на обсуждаемый вопрос с allow/deny vs return это добавление никак не повлияет. Игорь тут уже как-то попробовал решать проблемы модуля rewrite с помощью добавления директивы try_files. Стало только хуже, т.к. старые проблемы никуда не делись, а новых добавилось - в количестве. -- Maxim Dounin http://nginx.org/en/donation.html From mdounin at mdounin.ru Wed Oct 16 18:19:11 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 16 Oct 2013 22:19:11 +0400 Subject: allow/deny and return In-Reply-To: <20131016172519.GG56191@lo0.su> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525E587D.4060503@citrin.ru> <20131016172519.GG56191@lo0.su> Message-ID: <20131016181911.GB2144@mdounin.ru> Hello! On Wed, Oct 16, 2013 at 09:25:19PM +0400, Ruslan Ermilov wrote: [...] > > В документации на rewrite: > > http://nginx.org/en/docs/http/ngx_http_rewrite_module.html не нашел явное > > указание на то, что директивы этого модуля выполняются до модулей access-фазы > > (ngx_http_access_module,ngx_http_auth_basic_module, ngx_http_auth_request_module). > > > > Если знать внутреннюю архитектуру nginx то это очевидно, но прочитав только > > документацию на ngx_http_rewrite_module и ngx_http_access_module догадаться > > будет сложно. > > То, что в описанном тобой случае директива access "не выполняется", > можно понять, прочитав раздел "Внутреннее устройство", нюанс про > директиву limit_rate. IMHO, и из последовательности обработки директив в самом начале описания модуля - тоже понятно, что до выполнения директив модуля rewrite - location не выбран, и директивы модуля access не имеют шанса примениться до rewrite'ов. С другой стороны - никто не мешает построить систему, в которой между find config и location rewrite стоит проверка access, и тогда та же схема - лишь слегка отличается от реальности (а от реальности она и сейчас слегка отличается, т.к. могут быть ещё и 3rd party модули в rewrite-фазе), но allow/deny работают до return. Не будут работать всякие другие вещи, но это уже детали. [...] > Надо донести мысль о том, что rewrite (включая ВСЕ его директивы) - > это процесс поиска location'а. При обработке запроса сначала выполняется > поиск location'а по URI, затем выполняются директивы модуля rewrite (и > только они!) для данного location'а (*), в рез-те location может измениться, > процесс повторяется. Также в процессе поиска location'а выполнение > запроса может и вовсе завершиться (return, rewrite redirect). > И лишь потом, когда найден конечный location, "выполняются" остальные > директивы, включая access-модули. Да-да, как-то так. [...] > Возможно достаточно будет переформулировать это так: > > < Директивы модуля ngx_http_rewrite_module обрабатываются в следующем порядке: > > > Обработка запроса начинается с выполнения директив модуля ngx_http_rewrite_module. > > Директивы обрабатываются в следующем порядке: Предлагаемое изменение - неверно, т.к. даже до серверных rewrite'ов есть как минимум одна фаза обработки запроса, не говоря уже о всяких явных вещах и 3rd party модулях в rewrite-фазе. Ну и вышеописанный теоретический вариант тактовки описанной схемы работы как приблизительной, с выполнением access-фазы между find config и rewrite - не исключает. -- Maxim Dounin http://nginx.org/en/donation.html From gmm at csdoc.com Wed Oct 16 18:28:40 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Wed, 16 Oct 2013 21:28:40 +0300 Subject: allow/deny and return In-Reply-To: <20131016173302.GA2144@mdounin.ru> References: <525D3478.10905@citrin.ru> <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> Message-ID: <525EDAD8.502@csdoc.com> On 16.10.2013 20:33, Maxim Dounin wrote: >>>> кстати, если добавить директиву handler, которая работает после фазы >>>> try_files, то можно будет писать конфиг nginx без лишней избыточности: >>>> >>>> location /admin { >>>> satisfy any; >>>> set $file ".htpasswd"; >>>> auth_basic_user_file /path/to/$file; >>>> allow 10.1.1.1; >>>> deny all; >>>> handler @default; >>>> } >> >>> Можно добавить множество новых директив. Но, как показывает >>> практика, это не избавляет от старых проблем, а только добавляет >>> новых. Не надо умножать сущности без необходимости. >> >> а какие новые проблемы добавятся в этом случае? > > Понятия не имею - подобные вещи выясняются в основном в процессе, > кроме уж совсем очевидных глупостей. Я как бы пытаюсь сказать, > что на обсуждаемый вопрос с allow/deny vs return это добавление > никак не повлияет. тогда "allow/deny vs return" перестанет быть такой уж острой проблемой. сейчас код "error_page 456 @default; return 456;" использовать нельзя, потому что он отрабатывает до access-проверок и админка будет без защиты include использовать тоже не имеет смысла и остается только copy/paste. ладно, если это разные по смыслу фрагменты исходника, тогда дублирование и избыточность еще можно оправдать "квадратно-гнездовым методом", а если это полностью идентичный handler, который просто присутствует в разных местах сайта, например, для админки и остальной части сайта? include - это не решение, когда разных сайтов несколько десятков/сотен. проблема с дублированием идентичных фрагментов конфига уже неоднократно обсуждалась ранее, например: http://www.lexa.ru/nginx-ru/msg26393.html но удобного и эффективного решения ранее придумано еще не было... > Игорь тут уже как-то попробовал решать проблемы модуля rewrite с > помощью добавления директивы try_files. Стало только хуже, т.к. > старые проблемы никуда не делись, а новых добавилось - в > количестве. а какие проблемы появились из-за добавления директивы try_files ? ведь изменения там были минимальными: location / { try_files $uri $uri/ @drupal; } - это просто синтаксический сахар для location / { error_page 404 = @drupal; log_not_found off; } плюс добавилась одна фаза, которая работает перед content handler`ами. вообще-то это достаточно удобно и часто надо: существующие на диске файлы обрабатывать одним способом, а запросы, которые не соответствуют существующим на диске файлам - другим способом. try_files тут помогает обойтись без использования if из модуля rewrite: if ( -f $uri ) {...}, который отрабатывает до access-проверок и служит для выбора location. допустим, нет у нас директивы try_files. каким образом тогда можно сделать с помощью nginx защищенную basic auth и allow/deny админку, в которой статика будет отправляться клиентам напрямую, существующие на диске файлы с расширением .php будут обрабатываться другим способом, а запросы которым не соответствует файл на диске - третьим способом ? было бы очень интересно посмотреть на вариант решения без try_files. -- Best regards, Gena From mdounin at mdounin.ru Wed Oct 16 23:18:57 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 17 Oct 2013 03:18:57 +0400 Subject: allow/deny and return In-Reply-To: <525EDAD8.502@csdoc.com> References: <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> Message-ID: <20131016231857.GC2144@mdounin.ru> Hello! On Wed, Oct 16, 2013 at 09:28:40PM +0300, Gena Makhomed wrote: > On 16.10.2013 20:33, Maxim Dounin wrote: > > >>>>кстати, если добавить директиву handler, которая работает после фазы > >>>>try_files, то можно будет писать конфиг nginx без лишней избыточности: > >>>> > >>>>location /admin { > >>>> satisfy any; > >>>> set $file ".htpasswd"; > >>>> auth_basic_user_file /path/to/$file; > >>>> allow 10.1.1.1; > >>>> deny all; > >>>> handler @default; > >>>>} > >> > >>>Можно добавить множество новых директив. Но, как показывает > >>>практика, это не избавляет от старых проблем, а только добавляет > >>>новых. Не надо умножать сущности без необходимости. > >> > >>а какие новые проблемы добавятся в этом случае? > > > >Понятия не имею - подобные вещи выясняются в основном в процессе, > >кроме уж совсем очевидных глупостей. Я как бы пытаюсь сказать, > >что на обсуждаемый вопрос с allow/deny vs return это добавление > >никак не повлияет. > > тогда "allow/deny vs return" перестанет быть такой уж острой проблемой. > сейчас код "error_page 456 @default; return 456;" использовать нельзя, > потому что он отрабатывает до access-проверок и админка будет без защиты Повторяю: не перестанет. Если есть проблема - нужно её решать, а не придумывать альтернативы. Потому что так или иначе _будут_ люди, которые пишут return, rewrite, и т.п. неправильно. И от добавления нового механизма - их не станет меньше. Лучшее, на что приходится расчитывать, это что их станет меньше в процентах от общего числа пользователей - но и это не гарантировано. Наоборот, есть неслабая вероятность, что их станет больше, потому что пользователи окончательно запутаются в существующих механизмах. [...] > >Игорь тут уже как-то попробовал решать проблемы модуля rewrite с > >помощью добавления директивы try_files. Стало только хуже, т.к. > >старые проблемы никуда не делись, а новых добавилось - в > >количестве. > > а какие проблемы появились из-за добавления директивы try_files ? Вот тут небольшая подборка плохого: http://trac.nginx.org/nginx/ticket/97 И это не говоря о всяких мелочах вроде "try_files не работает из-за if'а", которые традиционно относятся к проблемам if'а, и развлечениях людей, которым доставляет отсутствие наследования try_files. > ведь изменения там были минимальными: > > location / { > try_files $uri $uri/ @drupal; > } > > - это просто синтаксический сахар для > > location / { > error_page 404 = @drupal; > log_not_found off; > } Хороший пример конфига, в котором try_files - использовать, вообще говоря, не надо. Хотя писать и проще. Вариант с error_page 404 - атомарен, в то время как в варианте с try_files - race condition. Между проверкой существования файла и его реальным открытием в модуле static для возврата клиенту - файл может быть удалён, и клиенту вернут 404. Не говоря уже про лишний syscall. [...] > вообще-то это достаточно удобно и часто надо: существующие на диске > файлы обрабатывать одним способом, а запросы, которые не соответствуют > существующим на диске файлам - другим способом. try_files тут помогает > обойтись без использования if из модуля rewrite: if ( -f $uri ) {...}, > который отрабатывает до access-проверок и служит для выбора location. > > допустим, нет у нас директивы try_files. каким образом тогда можно > сделать с помощью nginx защищенную basic auth и allow/deny админку, > в которой статика будет отправляться клиентам напрямую, существующие > на диске файлы с расширением .php будут обрабатываться другим способом, > а запросы которым не соответствует файл на диске - третьим способом ? > > было бы очень интересно посмотреть на вариант решения без try_files. Я бы делал как-то так (с точностью до проверки существования php-файлов на диске, дополнить при необходимости): location /admin/ { allow ... deny ... auth_basic ... error_page 404 = /admin/404; log_not_found off; location = /admin/404 { ... } location ~ \.php$ { fastcgi_pass ... ... } } Впрочем, вариантов - масса, написать allow/deny/auth_basic никто не запрещает больше, чем в одном location'е. И совершенно не обязательно "обходиться без использования if". Из действительно приятных применений try_files - это проверки многих файлов "за раз", e.g. проверки всяких кешей с разными именами ($uri.htm, $uri.html, $uri.xml и т.п.), а равно проверки существования файла во множестве разных мест. Писать подобные конструкции на error_page 404 - мучительно. Речь, впрочем, не об этом. Речь о том, что try_files, который делался как попытка "решить" проблемы if'а, вытеснив его из конфигов, ни разу его не вытеснил. Наоборот, к существовавшим ранее проблемам - добавились новые, в том числе - связанные с работой try_files со всё тем же if'ом. -- Maxim Dounin http://nginx.org/en/donation.html From vladimir at skubriev.ru Thu Oct 17 05:12:55 2013 From: vladimir at skubriev.ru (Vladimir Skubriev) Date: Thu, 17 Oct 2013 09:12:55 +0400 Subject: =?UTF-8?B?UmU6INC/0L7Rh9C10LzRgyDQv9GA0Lgg0LfQsNC/0YDQvtGB0LUg0L3QsCA0NDMg?= =?UTF-8?B?0L/QvtGA0YIg0Y8g0L/QvtC/0LDQtNCw0Y4g0L3QtSDQvdCwINC/0YDQvtC/?= =?UTF-8?B?0LjRgdCw0L3QvdGL0Lkg0LIg0LrQvtC90YTQuNCz0LUg0LHRjdC60Y3QvdC0?= In-Reply-To: <525E8D19.4010905@citrin.ru> References: <525E8C3B.6070903@skubriev.ru> <525E8D19.4010905@citrin.ru> Message-ID: <525F71D7.9010804@skubriev.ru> On 10/16/2013 04:56 PM, Anton Yuzhaninov wrote: > On 10/16/13 16:53, Vladimir Skubriev wrote: >> >> 2. Почему браузер после ввода запроса https://redmine.examplelab.com >> открывает >> страницу без https, т.е. >> >> http://redmine.examplelab.com и соответсвенно я вижу страницу >> backendredmine > > Возможно бэкенд выдает редирект на версию без http, посмотрите все > запросы от браузера через firebug или аналогичные инструменты. > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Смотрел нет ни каких редиректов вроде. Я тут сделал вчера себе сертификаты от StartSSL а сегодня с утра все заработало как надо. Т.е. как должно было работать. -- С Уважением, специалист по техническому и программному обеспечению, системный администратор Скубриев Владимир ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Россия, Ростовская область, г. Таганрог тел. моб: +7 (918) 504 38 20 skype: v.skubriev icq: 214-800-502 www: skubriev.ru From nginx-forum at nginx.us Thu Oct 17 07:06:41 2013 From: nginx-forum at nginx.us (antarey) Date: Thu, 17 Oct 2013 03:06:41 -0400 Subject: =?UTF-8?B?UmU6IFdlYkRhdiDQvdCwIFdpbmRvd3M=?= In-Reply-To: <20131016114541.GW2144@mdounin.ru> References: <20131016114541.GW2144@mdounin.ru> Message-ID: <410dc87e80b05b31af1a60a93bfc4b05.NginxMailingListRussian@forum.nginx.org> Всем спасибо за разъяснения, понятно что никсовские проекты , работающие отлично на никсах, портированные под винду не всегда работают также. Я смотрел в сторону Вашего проекта, так как были проблемы с виндовым вебдавом - но уже разобрался - все работает. Еще раз спасибо за ответы Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243701,243783#msg-243783 From undying-m at yandex.ru Thu Oct 17 11:10:40 2013 From: undying-m at yandex.ru (Den Bozhok) Date: Thu, 17 Oct 2013 15:10:40 +0400 Subject: Redirect In-Reply-To: <03114ec2b2ed78073d411c92726a51e5.NginxMailingListRussian@forum.nginx.org> References: <516719e58c356c62477ea01f7b2df544.NginxMailingListRussian@forum.nginx.org> <97dc565a8e050ed7b786f771e39eae88.NginxMailingListRussian@forum.nginx.org> <593a4920dd4c380a9b9e74c904a2409c.NginxMailingListRussian@forum.nginx.org> <03114ec2b2ed78073d411c92726a51e5.NginxMailingListRussian@forum.nginx.org> Message-ID: <881382008240@web26h.yandex.ru> Нет, не будет. rewrite меняет только uri, поэтому для переадресации вам нужен redirect 15.10.2013, 21:38, "Cergoo" : > читаю доку, и согласно ей, сие работать не будет rewrite / > http://www.defense.gov last; - не? > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243729#msg-243729 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From gmm at csdoc.com Thu Oct 17 12:55:17 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Thu, 17 Oct 2013 15:55:17 +0300 Subject: allow/deny and return In-Reply-To: <20131016231857.GC2144@mdounin.ru> References: <20131015124528.GH2144@mdounin.ru> <525D3C49.9080806@csdoc.com> <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> Message-ID: <525FDE35.3030209@csdoc.com> On 17.10.2013 2:18, Maxim Dounin wrote: >> тогда "allow/deny vs return" перестанет быть такой уж острой проблемой. >> сейчас код "error_page 456 @default; return 456;" использовать нельзя, >> потому что он отрабатывает до access-проверок и админка будет без защиты > > Повторяю: не перестанет. Если есть проблема - нужно её решать, а > не придумывать альтернативы. Потому что так или иначе _будут_ > люди, которые пишут return, rewrite, и т.п. неправильно. И от > добавления нового механизма - их не станет меньше. Лучшее, на что > приходится расчитывать, это что их станет меньше в процентах от > общего числа пользователей - но и это не гарантировано. Наоборот, > есть неслабая вероятность, что их станет больше, потому что > пользователи окончательно запутаются в существующих механизмах. Понятно. А как решать-то? "Выполнять сначала access-проверки, и только потом директивы модуля rewrite - ни разу не вариант" я предлагаю вариант решения проблем с allow/deny and return: location /closed { allow 10.1.1.1; deny all; handler @secret; } location @secret { return 200 "secret\n"; } то есть, nginx можно будет сконфигурировать тем способом, как это надо. надо чтобы rewrite работал до access - будет, надо чтобы access работал до rewrite - это тоже можно будет легко получить. разве это не решение? нельзя просто так взять и переставить порядок отработки access/rewrite, потому что если поменять их местами, тогда сломаются конфигурации вида: if ($evil) { return 444; } set $file ".htpasswd"; auth_basic_user_file /path/to/$file; кроме решения проблем с порядком срабатывания модулей rewrite/access эта же новая директива позволит справиться с проблемой дублирования одинаковых фрагментов конфига внутри разных location`ов. других путей, как избежать дублирования фрагментов конфига на сегодня не существует. "Не надо умножать сущности без необходимости" это да. но если более простых способов решения проблем не существует, то может быть все-таки есть необходимость добавить новую директиву? сущности, кстати, не умножаются, потому что content handler`ы и named location`ы в nginx и так уже давно есть. просто добавляется возможность их явного указания и конфигурирования без дубликатов. я не настаиваю, что это будет самое идеальное решение, но лучших вариантов решения проблем пока что не видел. вообще ничего с этими проблемами не делать и оставить все как есть, - это тоже вариант, но разве это лучше, чем добавить директиву handler? >>> Игорь тут уже как-то попробовал решать проблемы модуля rewrite с >>> помощью добавления директивы try_files. Стало только хуже, т.к. >>> старые проблемы никуда не делись, а новых добавилось - в >>> количестве. >> >> а какие проблемы появились из-за добавления директивы try_files ? > > Вот тут небольшая подборка плохого: > > http://trac.nginx.org/nginx/ticket/97 > > И это не говоря о всяких мелочах вроде "try_files не работает > из-за if'а", которые традиционно относятся к проблемам if'а, и > развлечениях людей, которым доставляет отсутствие наследования > try_files. разве было бы лучше, если бы директивы try_files в nginx вообще не было бы? и любой конфиг, который сейчас пишется с try_files можно легко написать без try_files? то есть самым лучшим варианом было бы "ничего не менять", или каким наилучшим способом можно было бы решить проблемы, которые сейчас, пусть и не идеально, решает директива try_files? >> ведь изменения там были минимальными: >> >> location / { >> try_files $uri $uri/ @drupal; >> } >> >> - это просто синтаксический сахар для >> >> location / { >> error_page 404 = @drupal; >> log_not_found off; >> } > > Хороший пример конфига, в котором try_files - использовать, вообще > говоря, не надо. Хотя писать и проще. > > Вариант с error_page 404 - атомарен, в то время как в варианте с > try_files - race condition. Между проверкой существования файла и > его реальным открытием в модуле static для возврата клиенту - файл > может быть удалён, и клиенту вернут 404. Не говоря уже про лишний > syscall. если используется модуль static - да, можно выкрутиться и с error_page, но если вместо static другой content handler - придется как минимум, использовать if, который работает после access. и здесь тоже будет и "лишний syscall" и "race condition" и еще уйма других проблем, из-за неочевидного порядка срабатывания модулей access/rewrite и глюков работы директивы if, - http://wiki.nginx.org/IfIsEvil как можно решить все проблемы с if ? судя по wiki способ только один: "Looks like the only correct fix would be to disable non-rewrite directives inside if completely. It would break many configuration out there though, so wasn't done yet." добавление новой директивы try_files не имеет недостатка "would break many configuration out there though" и это было меньшее зло, чем "ничего не делать и оставить все как есть". по крайней мере, лучшего варианта решения этих проблем никто не предложил пока что. >> допустим, нет у нас директивы try_files. каким образом тогда можно >> сделать с помощью nginx защищенную basic auth и allow/deny админку, >> в которой статика будет отправляться клиентам напрямую, существующие >> на диске файлы с расширением .php будут обрабатываться другим способом, >> а запросы которым не соответствует файл на диске - третьим способом ? >> >> было бы очень интересно посмотреть на вариант решения без try_files. > > Я бы делал как-то так (с точностью до проверки существования > php-файлов на диске, дополнить при необходимости): > > location /admin/ { > allow ... > deny ... > auth_basic ... > > error_page 404 = /admin/404; > log_not_found off; > > location = /admin/404 { > ... > } > > location ~ \.php$ { > fastcgi_pass ... > ... > } > } > location ~ \.php$ { if (-e $uri) { fastcgi_pass ... ... } fastcgi_pass ... ... } так? но этот способ ведь не рекомендуется, потому что IfIsEvil. и при попадании в location /admin/404 $uri будет меняться, так что невозможно будет понять какой был исходный запрос. > Впрочем, вариантов - масса, написать allow/deny/auth_basic никто > не запрещает больше, чем в одном location'е. потом такой конфиг будет трудно поддерживать, потому что и менять allow/deny/auth_basic надо будет везде. дублирование конфига - это просто меньшее зло, если выбирать между "дублировать конфиг" и "это сделать вообще невозможно". если можно то же самое получить без дублирования конфига - такое новое решение будет лучшим и более удобным в работе. вот location /admin/ пока что не рабочая, а ведь еще точно такой же конфиг надо будет написать и для публичной части сайта в location / > И совершенно не обязательно "обходиться без использования if". а разве тут можно обойтись использованием if, так чтобы внутри директивы if использовались только директивы из модуля rewrite ? разве что только используя error_page 418 = @other; return 418; что тоже не рекомендуется, потому что выглядит как ugly hack... то есть без использования try_files даже такую простую задачу решить вообще нельзя без использования опасных и не-рекомендуемых вариантов. > Речь, впрочем, не об этом. Речь о том, что try_files, который > делался как попытка "решить" проблемы if'а, вытеснив его из > конфигов, ни разу его не вытеснил. Наоборот, к существовавшим > ранее проблемам - добавились новые, в том числе - связанные с > работой try_files со всё тем же if'ом. а разве есть лучший вариант решения проблем с if ? "ничего не делать" - этот вариант хуже чем try_files и try_files и handler уменьшают количество случаев, когда необходимо использовать "опасные" варианты if. -- Best regards, Gena From mdounin at mdounin.ru Thu Oct 17 14:09:15 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 17 Oct 2013 18:09:15 +0400 Subject: allow/deny and return In-Reply-To: <525FDE35.3030209@csdoc.com> References: <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> Message-ID: <20131017140915.GG2144@mdounin.ru> Hello! On Thu, Oct 17, 2013 at 03:55:17PM +0300, Gena Makhomed wrote: > On 17.10.2013 2:18, Maxim Dounin wrote: > > >>тогда "allow/deny vs return" перестанет быть такой уж острой проблемой. > >>сейчас код "error_page 456 @default; return 456;" использовать нельзя, > >>потому что он отрабатывает до access-проверок и админка будет без защиты > > > >Повторяю: не перестанет. Если есть проблема - нужно её решать, а > >не придумывать альтернативы. Потому что так или иначе _будут_ > >люди, которые пишут return, rewrite, и т.п. неправильно. И от > >добавления нового механизма - их не станет меньше. Лучшее, на что > >приходится расчитывать, это что их станет меньше в процентах от > >общего числа пользователей - но и это не гарантировано. Наоборот, > >есть неслабая вероятность, что их станет больше, потому что > >пользователи окончательно запутаются в существующих механизмах. > > Понятно. А как решать-то? "Выполнять сначала access-проверки, > и только потом директивы модуля rewrite - ни разу не вариант" Как уже и предлагалось - методом правильного документирования того факта, что директивы модуля rewrite - это часть процесса выбора конфигурации. И всяческие директивы allow/deny/whatever - применяются уже после того, как оный выбор случился. [...] > location ~ \.php$ { > if (-e $uri) { > fastcgi_pass ... > ... > } > fastcgi_pass ... > ... > } > > так? но этот способ ведь не рекомендуется, потому что IfIsEvil. Нет, if (!-f $request_filename) { return 404; } И такая конструкция - не отличается от try_files практически ничем. Наоборот, в отличии от try_files она работает, если вдруг в этом location'е случится alias. [...] > >Речь, впрочем, не об этом. Речь о том, что try_files, который > >делался как попытка "решить" проблемы if'а, вытеснив его из > >конфигов, ни разу его не вытеснил. Наоборот, к существовавшим > >ранее проблемам - добавились новые, в том числе - связанные с > >работой try_files со всё тем же if'ом. > > а разве есть лучший вариант решения проблем с if ? > "ничего не делать" - этот вариант хуже чем try_files > > и try_files и handler уменьшают количество случаев, > когда необходимо использовать "опасные" варианты if. Повторяю: добавление try_files не решило проблем с if'ом. В результате как раз с проблемами if'а - ничего не было сделано, а вместо этого усилия были потрачены на try_files и борьбу с его проблемами. Если бы вместо добавления try_files соответствующие усилия были потрачены именно на _решение_ проблем - было бы лучше. И это общая проблема всех подобных попыток "уменьшить количество случаев" вместо реального решения проблемы. Решать проблему всё равно рано или поздно придётся, и откладывание этого решения - лишь ухудшает ситуацию. -- Maxim Dounin http://nginx.org/en/donation.html From gmm at csdoc.com Thu Oct 17 18:13:46 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Thu, 17 Oct 2013 21:13:46 +0300 Subject: allow/deny and return In-Reply-To: <20131017140915.GG2144@mdounin.ru> References: <20131015134550.GJ2144@mdounin.ru> <525D69DE.7080105@csdoc.com> <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> Message-ID: <526028DA.3040208@csdoc.com> On 17.10.2013 17:09, Maxim Dounin wrote: >>>> тогда "allow/deny vs return" перестанет быть такой уж острой проблемой. >>>> сейчас код "error_page 456 @default; return 456;" использовать нельзя, >>>> потому что он отрабатывает до access-проверок и админка будет без защиты >>> >>> Повторяю: не перестанет. Если есть проблема - нужно её решать, а >>> не придумывать альтернативы. Потому что так или иначе _будут_ >>> люди, которые пишут return, rewrite, и т.п. неправильно. И от >>> добавления нового механизма - их не станет меньше. Лучшее, на что >>> приходится расчитывать, это что их станет меньше в процентах от >>> общего числа пользователей - но и это не гарантировано. Наоборот, >>> есть неслабая вероятность, что их станет больше, потому что >>> пользователи окончательно запутаются в существующих механизмах. >> >> Понятно. А как решать-то? "Выполнять сначала access-проверки, >> и только потом директивы модуля rewrite - ни разу не вариант" > > Как уже и предлагалось - методом правильного документирования того > факта, что директивы модуля rewrite - это часть процесса выбора > конфигурации. И всяческие директивы allow/deny/whatever - > применяются уже после того, как оный выбор случился. а что делать, если необходимо, чтобы директивы модуля rewrite отработали после проверок allow/deny/whatever? например, если после прохождения всех access-проверок надо сделать еще и проверку на существование php файла: > if (!-f $request_filename) { > return 404; > } и разная реакция в зависимости от того, есть этот файл на диске или нет, - но только для тех клиентов, которым доступ в этот location разрешен. и в том и в другом случае запрос уходит на backend, только uri разный. если доступ не разрешен - тогда ответ 403 и на backend ничего не идет. если файл с расширением .php существует, запрос уходит такой: fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/admin$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param QUERY_STRING $args; если файл с расширением .php не существует, запрос уходит такой: fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/admin/index.php; fastcgi_param SCRIPT_NAME /admin/index.php; fastcgi_param QUERY_STRING q=$uri&$args; подозреваю, что даже после документирования без try_files не получится. потому что это все внутри location /admin/ { ... } с access-проверками. > И такая конструкция - не отличается от try_files практически > ничем. Наоборот, в отличии от try_files она работает, если вдруг > в этом location'е случится alias. директива try_files нормально работает после access-проверок. так что "Не надо умножать сущности без необходимости" - необходиость тут есть? >>> Речь, впрочем, не об этом. Речь о том, что try_files, который >>> делался как попытка "решить" проблемы if'а, вытеснив его из >>> конфигов, ни разу его не вытеснил. Наоборот, к существовавшим >>> ранее проблемам - добавились новые, в том числе - связанные с >>> работой try_files со всё тем же if'ом. >> >> а разве есть лучший вариант решения проблем с if ? >> "ничего не делать" - этот вариант хуже чем try_files >> >> и try_files и handler уменьшают количество случаев, >> когда необходимо использовать "опасные" варианты if. > > Повторяю: добавление try_files не решило проблем с if'ом. В > результате как раз с проблемами if'а - ничего не было сделано, а > вместо этого усилия были потрачены на try_files и борьбу с его > проблемами. Если бы вместо добавления try_files соответствующие > усилия были потрачены именно на _решение_ проблем - было бы лучше. никто и не обещал, что try_files решит все проблемы с if. но многие случаи написания конфигурации try_files упрощает. причем это вне зависимости от того, есть у if проблемы или их нет. и во многих случаях можно обойтись try_files без использования if. > И это общая проблема всех подобных попыток "уменьшить количество > случаев" вместо реального решения проблемы. Решать проблему всё > равно рано или поздно придётся, и откладывание этого решения - > лишь ухудшает ситуацию. что в таком случае можно считать рельным решением проблем директивы if, - чтобы не осталось ни одного глюка из http://wiki.nginx.org/IfIsEvil ? про проблемы директивы if говорится очень давно, но видимо эти проблемы нетривиальные, раз до сих пор никому так и не удалось их реально решить P.S. There are only two kinds of languages: the ones people complain about and the ones nobody uses. - Bjarne Stroustrup -- Best regards, Gena From tals1975 at gmail.com Fri Oct 18 06:42:18 2013 From: tals1975 at gmail.com (Sergey Talchuk) Date: Fri, 18 Oct 2013 09:42:18 +0300 Subject: nginx -t > Illegal instruction In-Reply-To: <525D9506.1000803@csdoc.com> References: <20131015153900.GO2144@mdounin.ru> <525D7D1A.8010508@csdoc.com> <7B2B78FB-135B-413A-9221-DE9927CC8A88@sysoev.ru> <525D9506.1000803@csdoc.com> Message-ID: Большое спасибо за патч. Nginx заработал с моим процессором. Сергей P.S. Год выпуска моего NAS с данным процессором - 2009; http://global.level1.com/1-Bay/WAP-0008/p-368.htm Производитель отдал предпочтение в сторону Cx486SLC. При этом в спецификации и описании продукта об этом ни слова. На самом деле я бы тоже был не против какого-нибудь ARM :) 2013/10/15 Gena Makhomed > On 15.10.2013 21:01, Igor Sysoev wrote: > > >> вопросы про 486 процессор без cpuid периодически возникают. > > Что-то я не припоминаю в рассылке периодических вопросов >> про процессоры двадцатилетней давности. >> > > я визуально помню, что были сообщения про "Illegal Instruction" > при запуске nginx, сейчас порылся в архиве рассылки... причина > "Illegal Instruction" там была другая, падал он не из-за cpuid: > > http://forum.nginx.org/read.**php?21,35305,35305 > > > > On 15.10.2013 21:07, Maxim Dounin wrote: > > >> вопросы про 486 процессор без cpuid периодически возникают. > > > Я так других случаев подобных вопросов - не помню ни одного, и > > поиском тоже не находится. Если покажешь пальцем - будет хорошо. > > именно про cpuid и 386/486 процессор не покажу. не смог сейчас найти. > но подозреваю, что попытки запустить nginx на 386/486 были и раньше. > > > > Пока что мне кажется, что более продуктивным будет не заниматься > > некро^Wархеологией. > > скорее всего да. не буду спорить с разработчиками nginx, вам виднее. > хотя у меня до сих пор дома стоит комп с CPU 386DX 40 MHz, 4 MB RAM. > - просто рука не поднимается выбросить, он ведь полностью рабочий... > > -- > Best regards, > Gena > > > ______________________________**_________________ > 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 kostenl at gmail.com Fri Oct 18 09:28:46 2013 From: kostenl at gmail.com (=?UTF-8?B?0JvQsNC/0L7Rh9C60LjQvSDQmtC+0L3RgdGC0LDQvdGC0LjQvQ==?=) Date: Fri, 18 Oct 2013 15:28:46 +0600 Subject: =?UTF-8?B?V0lTUnAg0LggVUFNINGB0YDQtdC00YHRgtCy0LDQvNC4IG5naW54?= Message-ID: <002701cecbe4$7248d1c0$56da7540$@gmail.com> Добрый день. Используем Nginx для редиректа на captive-портав с наших wifi-hotspot?ов. Пользователь, подключившись к не защищённой сети при любом обращении в интернет по протоколам http, https перенаправляется на наш портал, где проходит авторизацию (либо получает гостевой доступ). Возникла задача: что бы на клиентских устройствах с iOS (iPhone, iPad) при подключении к нашей сети всплывало pop-UP окно с нашим порталом. Работает это через протокол wisrp, окно называется uam(unified authorization method). Суть метода в том, что при подключении к сети ios запрашивает ссылку с ?User-Agent: CaptiveNetworkSupport-200.1 wispr?. Если он получает на это 302, то, теоретически, должно возникнуть окошко со страницей, на которую перенаправляет 302-й код. Однако, это в nginx не работает. Проверяли, что работает на microtik. Cнимали дамп пакетов c микротика, увидели следующее: GET /library/test/success.html HTTP/1.0 Host: www.apple.com User-Agent: CaptiveNetworkSupport-200.1 wispr Connection: close HTTP/1.1 302 Hotspot login required Cache-Control: no-cache Content-Length: 135 Content-Type: text/html Date: Fri, 11 Oct 2013 06:37:38 GMT Expires: 0 Location: http://10.0.2.1/login?dst=http%3A%2F%2Fwww.apple.com%2Flibrary%2Ftest%2Fsuccess.html Error 302: Hotspot login required

Error 302: Hotspot login required

В случае же работы через портал сообщение следующее: GET /UMzURpsu3rm/tumgdbEHylH.html HTTP/1.0 Host: www.appleiphonecell.com Connection: close User-Agent: CaptiveNetworkSupport-277 wispr HTTP/1.1 302 Moved Temporarily Server: nginx/0.7.67 Date: Fri, 11 Oct 2013 07:37:01 GMT Content-Type: text/html Content-Length: 161 Connection: close Location: https://perm.wifi.domru.ru/index.php?request_uri=http://www.appleiphonecell.com/UMzURpsu3rm/tumgdbEHylH.html 302 Found

302 Found


nginx/0.7.67
Что сделал: пробовал через nc слать заголовки из дампа микротика ? работает, окно появляется. Пересобрал ngnix, что бы заменить 302 Moved Temporarily на 302 Hotspot login required ? не помогло. Есть у кого-то опыт настройки подобных вещей через ngnix? -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Fri Oct 18 09:35:03 2013 From: nginx-forum at nginx.us (sherwood) Date: Fri, 18 Oct 2013 05:35:03 -0400 Subject: Kak skachuvat' fail 'File name.pdf' a ne 'File%20name.pdf' Message-ID: <8aef12445576ddaf8b55f03cdaa269ee.NginxMailingListRussian@forum.nginx.org> Vot tak serviruiu faili dlja klientov: add_header Content-Type "application/octet-stream"; add_header Content-disposition "attachment; filename=\"$arg_f\""; Nu fail kachaetsja kak urlencoded... Vmesto File name.pdf kachaet File%20name.pdf, kak eto pofixit? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243816,243816#msg-243816 From gns at altlinux.ru Fri Oct 18 09:48:37 2013 From: gns at altlinux.ru (Mykola S. Grechukh) Date: Fri, 18 Oct 2013 12:48:37 +0300 Subject: Kak skachuvat' fail 'File name.pdf' a ne 'File%20name.pdf' In-Reply-To: <8aef12445576ddaf8b55f03cdaa269ee.NginxMailingListRussian@forum.nginx.org> References: <8aef12445576ddaf8b55f03cdaa269ee.NginxMailingListRussian@forum.nginx.org> Message-ID: > kak eto pofixit? http://translit.ru/ 2013/10/18 sherwood > Vot tak serviruiu faili dlja klientov: > > add_header Content-Type "application/octet-stream"; > add_header Content-disposition "attachment; filename=\"$arg_f\""; > > Nu fail kachaetsja kak urlencoded... Vmesto File name.pdf kachaet > File%20name.pdf, kak eto pofixit? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,243816,243816#msg-243816 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Mykola Grechukh CTO, Satelliz-Ukraine -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Fri Oct 18 10:31:17 2013 From: nginx-forum at nginx.us (sherwood) Date: Fri, 18 Oct 2013 06:31:17 -0400 Subject: Kak skachuvat' fail 'File name.pdf' a ne 'File%20name.pdf' In-Reply-To: References: Message-ID: Po serioznee pozhaluista, ya ne Russkyi :/ Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243816,243818#msg-243818 From onokonem at gmail.com Fri Oct 18 11:04:54 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Fri, 18 Oct 2013 15:04:54 +0400 Subject: Kak skachuvat' fail 'File name.pdf' a ne 'File%20name.pdf' In-Reply-To: References: Message-ID: > Po serioznee pozhaluista, ya ne Russkyi :/ Even this such a pity fact would not make anybody here reading any "translit" messages, I'm afraid. From nginx-forum at nginx.us Fri Oct 18 11:14:33 2013 From: nginx-forum at nginx.us (sherwood) Date: Fri, 18 Oct 2013 07:14:33 -0400 Subject: Kak skachuvat' fail 'File name.pdf' a ne 'File%20name.pdf' In-Reply-To: References: Message-ID: Why are Russians those strangers...It is not hard to understand it, is it? Just needs a minute and patience.. Writing this to English discussion board would result in no answer at all (tried before). Anyway any suggestions on how to server files with blank space in the file name? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243816,243820#msg-243820 From mdounin at mdounin.ru Fri Oct 18 11:41:16 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 18 Oct 2013 15:41:16 +0400 Subject: allow/deny and return In-Reply-To: <526028DA.3040208@csdoc.com> References: <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> Message-ID: <20131018114116.GK2144@mdounin.ru> Hello! On Thu, Oct 17, 2013 at 09:13:46PM +0300, Gena Makhomed wrote: [...] > >Как уже и предлагалось - методом правильного документирования того > >факта, что директивы модуля rewrite - это часть процесса выбора > >конфигурации. И всяческие директивы allow/deny/whatever - > >применяются уже после того, как оный выбор случился. > > а что делать, если необходимо, чтобы директивы модуля > rewrite отработали после проверок allow/deny/whatever? То же самое, что и в других подобных ситуациях - использовать другие механизмы. [...] > >>а разве есть лучший вариант решения проблем с if ? > >>"ничего не делать" - этот вариант хуже чем try_files > >> > >>и try_files и handler уменьшают количество случаев, > >>когда необходимо использовать "опасные" варианты if. > > > >Повторяю: добавление try_files не решило проблем с if'ом. В > >результате как раз с проблемами if'а - ничего не было сделано, а > >вместо этого усилия были потрачены на try_files и борьбу с его > >проблемами. Если бы вместо добавления try_files соответствующие > >усилия были потрачены именно на _решение_ проблем - было бы лучше. > > никто и не обещал, что try_files решит все проблемы с if. > > но многие случаи написания конфигурации try_files упрощает. > > причем это вне зависимости от того, есть у if проблемы или их нет. > > и во многих случаях можно обойтись try_files без использования if. Да-да, именно так. И в сухом остатке мы имеем больше проблем, чем их было до введения директивы try_files. > >И это общая проблема всех подобных попыток "уменьшить количество > >случаев" вместо реального решения проблемы. Решать проблему всё > >равно рано или поздно придётся, и откладывание этого решения - > >лишь ухудшает ситуацию. > > что в таком случае можно считать рельным решением проблем директивы if, > - чтобы не осталось ни одного глюка из http://wiki.nginx.org/IfIsEvil ? > > про проблемы директивы if говорится очень давно, но видимо эти проблемы > нетривиальные, раз до сих пор никому так и не удалось их реально решить Я описал правильное с моей точки зрения решение ещё при создании этой статьи на wiki: http://wiki.nginx.org/IfIsEvil#Why_this_happens_and_still_not_fixed : Looks like the only correct fix would be to disable non-rewrite : directives inside if completely. It would break many configuration : out there though, so wasn't done yet. Возможно, хорошим альтернативным вариантом будет вычищение всех проблем, которые возникают при использовании неявных location'ов. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Fri Oct 18 11:56:08 2013 From: nginx-forum at nginx.us (sherwood) Date: Fri, 18 Oct 2013 07:56:08 -0400 Subject: Kak skachuvat' fail 'File name.pdf' a ne 'File%20name.pdf' In-Reply-To: References: Message-ID: <9258d9d40749a2839cbdcd18bea13b09.NginxMailingListRussian@forum.nginx.org> Solved! add_header Content-Type "application/octet-stream"; set_by_lua $filename "return ngx.decode_base64(ngx.var['arg_f'])"; add_header Content-disposition "attachment; filename=\"$filename\""; Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243816,243823#msg-243823 From gmm at csdoc.com Fri Oct 18 13:18:56 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Fri, 18 Oct 2013 16:18:56 +0300 Subject: allow/deny and return In-Reply-To: <20131018114116.GK2144@mdounin.ru> References: <20131015165749.GQ2144@mdounin.ru> <525E9BDB.4020908@csdoc.com> <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> Message-ID: <52613540.20704@csdoc.com> On 18.10.2013 14:41, Maxim Dounin wrote: >>> Как уже и предлагалось - методом правильного документирования того >>> факта, что директивы модуля rewrite - это часть процесса выбора >>> конфигурации. И всяческие директивы allow/deny/whatever - >>> применяются уже после того, как оный выбор случился. >> а что делать, если необходимо, чтобы директивы модуля >> rewrite отработали после проверок allow/deny/whatever? > То же самое, что и в других подобных ситуациях - использовать > другие механизмы. а из других механизмов у нас в наличии есть только try_files. и в этом случае добавление try_files решило проблему с if'ом. >>> Повторяю: добавление try_files не решило проблем с if'ом. В >>> результате как раз с проблемами if'а - ничего не было сделано, а >>> вместо этого усилия были потрачены на try_files и борьбу с его >>> проблемами. Если бы вместо добавления try_files соответствующие >>> усилия были потрачены именно на _решение_ проблем - было бы лучше. >> никто и не обещал, что try_files решит все проблемы с if. >> >> но многие случаи написания конфигурации try_files упрощает. >> >> причем это вне зависимости от того, есть у if проблемы или их нет. >> >> и во многих случаях можно обойтись try_files без использования if. > Да-да, именно так. И в сухом остатке мы имеем больше проблем, чем > их было до введения директивы try_files. если считать только количество записей в багтрекере, тогда да, действительно так и будет: "в сухом остатке мы имеем больше проблем, чем их было до введения директивы try_files". если же посмотреть со стороны пользователей - в большинстве случаев написание конфигурации стало проще, удобнее и безглючнее, потому что вместо фигурного выпиливания лобзиком работающей конфигурации на основе директив if + return + error_page + recursive_error_pages + proxy_intercept_errors + fastcgi_intercept_errors + scgi_intercept_errors + uwsgi_intercept_errors + ... можно взять директиву try_files с простой и понятной логикой работы, которая подходит для большинства наиболее частоиспользуемых случаев. даже если бы директива if всегда работала бы идеально - добавление try_files всеравно имеет смысл из-за значительного упрощения конфига. для решения всех проблем с if ресурсов надо потратить в десятки, а то и в сотни раз больше, чем их было потрачено на добавление новой директивы try_files и еще одной фазы обработки запроса. если смотреть с точки зрения минимизации количества не закрытых багов в багтрекере, тогда следовало бы сначала исправить все глюки в работе директивы if и только потом уже добавлять директиву try_files если смотреть с точки зрения максимизации удобства работы пользователей, то имеет смысл сначала добавить директиву try_files, и только после этого уже браться за более сложную задачу исправления всех ошибок в работе диркетивы if. (вообще не уверен, что эта задача имеет решение) >>> И это общая проблема всех подобных попыток "уменьшить количество >>> случаев" вместо реального решения проблемы. Решать проблему всё >>> равно рано или поздно придётся, и откладывание этого решения - >>> лишь ухудшает ситуацию. >> >> что в таком случае можно считать рельным решением проблем директивы if, >> - чтобы не осталось ни одного глюка из http://wiki.nginx.org/IfIsEvil ? >> >> про проблемы директивы if говорится очень давно, но видимо эти проблемы >> нетривиальные, раз до сих пор никому так и не удалось их реально решить > > Я описал правильное с моей точки зрения решение ещё при создании > этой статьи на wiki: > > http://wiki.nginx.org/IfIsEvil#Why_this_happens_and_still_not_fixed > > : Looks like the only correct fix would be to disable non-rewrite > : directives inside if completely. It would break many configuration > : out there though, so wasn't done yet. > > Возможно, хорошим альтернативным вариантом будет вычищение всех > проблем, которые возникают при использовании неявных location'ов. "вычищение всех проблем, которые возникают при использовании неявных location'ов" - это будет очень нетривиальная задача. кстати, если проблемы с директивой if решать способом "disable non-rewrite directives inside if completely" тогда точно таким же способом можно решить и все проблемы c try_files, сказав что эта директива не совместима с директивой alias, нужен root. -- Best regards, Gena From mdounin at mdounin.ru Fri Oct 18 13:22:57 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 18 Oct 2013 17:22:57 +0400 Subject: =?UTF-8?B?UmU6IFdJU1JwINC4IFVBTSDRgdGA0LXQtNGB0YLQstCw0LzQuCBuZ2lueA==?= In-Reply-To: <002701cecbe4$7248d1c0$56da7540$@gmail.com> References: <002701cecbe4$7248d1c0$56da7540$@gmail.com> Message-ID: <20131018132257.GL2144@mdounin.ru> Hello! On Fri, Oct 18, 2013 at 03:28:46PM +0600, Лапочкин Константин wrote: > Добрый день. Используем Nginx для редиректа на captive-портав с > наших wifi-hotspot?ов. Пользователь, подключившись к не > защищённой сети при любом обращении в интернет по протоколам > http, https перенаправляется на наш портал, где проходит > авторизацию (либо получает гостевой доступ). Возникла задача: > что бы на клиентских устройствах с iOS (iPhone, iPad) при > подключении к нашей сети всплывало pop-UP окно с нашим порталом. > Работает это через протокол wisrp, окно называется uam(unified > authorization method). Суть метода в том, что при подключении к > сети ios запрашивает ссылку с ?User-Agent: > CaptiveNetworkSupport-200.1 wispr?. Если он получает на это 302, > то, теоретически, должно возникнуть окошко со страницей, на > которую перенаправляет 302-й код. Однако, это в nginx не > работает. Проверяли, что работает на microtik. Cнимали дамп > пакетов c микротика, увидели следующее: [...] > Что сделал: пробовал через nc слать заголовки из дампа микротика > ? работает, окно появляется. Пересобрал ngnix, что бы заменить > 302 Moved Temporarily на 302 Hotspot login required ? не > помогло. Если я правильно понимаю, важно не то, как делается перенаправление, а то, что возвращается клиенту после перенаправления. Там должна быть XML'ка установленного спецификацией WISPr вида, пример можно посмотреть, например, тут: http://hotspot-connect.sourceforge.net/ -- Maxim Dounin http://nginx.org/en/donation.html From mdounin at mdounin.ru Fri Oct 18 13:50:01 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 18 Oct 2013 17:50:01 +0400 Subject: allow/deny and return In-Reply-To: <52613540.20704@csdoc.com> References: <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> Message-ID: <20131018135001.GM2144@mdounin.ru> Hello! On Fri, Oct 18, 2013 at 04:18:56PM +0300, Gena Makhomed wrote: > On 18.10.2013 14:41, Maxim Dounin wrote: > > >>>Как уже и предлагалось - методом правильного документирования того > >>>факта, что директивы модуля rewrite - это часть процесса выбора > >>>конфигурации. И всяческие директивы allow/deny/whatever - > >>>применяются уже после того, как оный выбор случился. > > >>а что делать, если необходимо, чтобы директивы модуля > >>rewrite отработали после проверок allow/deny/whatever? > > >То же самое, что и в других подобных ситуациях - использовать > >другие механизмы. > > а из других механизмов у нас в наличии есть только try_files. > и в этом случае добавление try_files решило проблему с if'ом. Да правда? Ну вот мне хочется, например, выполнить диркетивы модуля rewrite после proxy_pass - типичный такой вопрос в рассылке. И как это делает try_files? Даже если же говорить именно об access-проверках, то try_files - опять же, не единственный вариант. Есть, например, директива error_page, которая позволяет точно также продолжить обработку запроса заново в другом месте. Не говоря уже о том, что иногда правильный ответ - "Не делайте так" (c). [...] > >Да-да, именно так. И в сухом остатке мы имеем больше проблем, чем > >их было до введения директивы try_files. > > если считать только количество записей в багтрекере, тогда да, > действительно так и будет: "в сухом остатке мы имеем больше > проблем, чем их было до введения директивы try_files". > > если же посмотреть со стороны пользователей - в большинстве случаев > написание конфигурации стало проще, удобнее и безглючнее, потому что > вместо фигурного выпиливания лобзиком работающей конфигурации > на основе директив if + return + error_page > + recursive_error_pages + proxy_intercept_errors > + fastcgi_intercept_errors + scgi_intercept_errors > + uwsgi_intercept_errors + ... > можно взять директиву try_files с простой и понятной логикой работы, > которая подходит для большинства наиболее частоиспользуемых случаев. Проблема в том, что "выпиливание лобзиком" - как было, так и осталось. Только к списку директив добавилась ещё парочка, за которыми нужно следить - try_files и alias. Отдельно печалит, что в результате конфигурации с error_page 404 @fallback - практически исчезли, хотя аналог на try_files - гарантированно хуже. -- Maxim Dounin http://nginx.org/en/donation.html From actionmanager at gmail.com Fri Oct 18 16:19:00 2013 From: actionmanager at gmail.com (actionmanager at gmail.com) Date: Fri, 18 Oct 2013 20:19:00 +0400 Subject: nginx keep-alive ipv6 6in4 Message-ID: <110204505.20131018201900@gmail.com> Здравствуйте, настроил дома ipv6 через tunnelbroker.net провайдер выдаёт серый ipv4, за NAT. на сайты по ipv6 захожу. установил веб сервер apachе из интернета доступ есть к нему по ipv6 проблема следующая. на сервере в датацентре hetzner установлен nginx и ipv6 сайт. я не могу на него зайти. открываю адрес сайта, сервер nginx получает HTTP заголовок с запросом, сохраняет в access.log код 200. браузер ожидает соединения , на клиенте Wireshark видно что заголвок отправлен и дальше идут TCP-Keep-Alive пакеты. затем всё. tcpdump на сервере показывает keep-alive соединение и gzip данные частями. т.е. сервер отправляет данные. выяснилось что можно попасть на сайт только через HTTP 1.0 например WGET и LYNX открывают сайт. а браузер нет. сайты по ipv6 у меня открываются например ipv6test.google.com , а мой нет. в конфиге nginx ничего необычного нет. прописан ipv4 и ipv6 адрес + бэкенд apache. /etc/nginx/sbin/nginx -V nginx version: nginx/1.4.3 built by gcc 4.4.5 (Debian 4.4.5-8) TLS SNI support enabled configure arguments: --with-http_stub_status_module --with-http_flv_module --with-http_ssl_module --with-http_secure_link_module --with-http_image_filter_module --with-http_addition_module --with-http_xslt_module --with-http_perl_module --prefix=/etc/nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --with-ipv6 -------------- next part -------------- A non-text attachment was scrubbed... Name: site.conf Type: application/octet-stream Size: 1173 bytes Desc: not available URL: From nginx-forum at nginx.us Fri Oct 18 16:43:29 2013 From: nginx-forum at nginx.us (actionmanager) Date: Fri, 18 Oct 2013 12:43:29 -0400 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <110204505.20131018201900@gmail.com> References: <110204505.20131018201900@gmail.com> Message-ID: <4696a82f6b02dbef6e608c483b8eccdd.NginxMailingListRussian@forum.nginx.org> nginx debug log обработки запроса от клиента 2013/10/18 20:31:23 [debug] 2127#0: epoll add event: fd:42 op:1 ev:00000001 2013/10/18 20:31:23 [debug] 2128#0: epoll add event: fd:42 op:1 ev:00000001 2013/10/18 20:31:23 [debug] 2128#0: epoll del event: fd:42 op:2 ev:00000000 2013/10/18 20:32:15 [debug] 2127#0: post event 00007F3746A7E078 2013/10/18 20:32:15 [debug] 2127#0: delete posted event 00007F3746A7E078 2013/10/18 20:32:15 [debug] 2127#0: accept on [2a01:4f8:101:4382::2]:80, ready: 0 2013/10/18 20:32:15 [debug] 2127#0: posix_memalign: 0000000001BE3E40:256 @16 2013/10/18 20:32:15 [debug] 2127#0: *3 accept: ipv6клиента fd:47 2013/10/18 20:32:15 [debug] 2127#0: posix_memalign: 0000000001A99650:256 @16 2013/10/18 20:32:15 [debug] 2127#0: *3 event timer add: 47: 60000:1382113995050 2013/10/18 20:32:15 [debug] 2127#0: *3 reusable connection: 1 2013/10/18 20:32:15 [debug] 2127#0: *3 epoll add event: fd:47 op:1 ev:80000001 2013/10/18 20:32:15 [debug] 2127#0: *3 post event 00007F3746A7E148 2013/10/18 20:32:15 [debug] 2127#0: *3 delete posted event 00007F3746A7E148 2013/10/18 20:32:15 [debug] 2127#0: *3 http wait request handler 2013/10/18 20:32:15 [debug] 2127#0: *3 malloc: 0000000001BE5120:1024 2013/10/18 20:32:15 [debug] 2127#0: *3 recv: fd:47 567 of 1024 2013/10/18 20:32:15 [debug] 2127#0: *3 reusable connection: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 posix_memalign: 0000000001AA7490:4096 @16 2013/10/18 20:32:15 [debug] 2127#0: *3 http process request line 2013/10/18 20:32:15 [debug] 2127#0: *3 http request line: "GET / HTTP/1.1" 2013/10/18 20:32:15 [debug] 2127#0: *3 http uri: "/" 2013/10/18 20:32:15 [debug] 2127#0: *3 http args: "" 2013/10/18 20:32:15 [debug] 2127#0: *3 http exten: "" 2013/10/18 20:32:15 [debug] 2127#0: *3 http process request header line 2013/10/18 20:32:15 [debug] 2127#0: *3 http header: "Host: site.ru" 2013/10/18 20:32:15 [debug] 2127#0: *3 http header: "Connection: keep-alive" 2013/10/18 20:32:15 [debug] 2127#0: *3 http header: "Cache-Control: max-age=0" 2013/10/18 20:32:15 [debug] 2127#0: *3 http header: "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" 2013/10/18 20:32:15 [debug] 2127#0: *3 http header: "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36" 2013/10/18 20:32:15 [debug] 2127#0: *3 http header: "Accept-Encoding: gzip,deflate,sdch" 2013/10/18 20:32:15 [debug] 2127#0: *3 http header: "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" 2013/10/18 20:32:15 [debug] 2127#0: *3 http header: "Cookie: __utma=267804109.666579157.1329935757.1382103946.1382106493.432; __utmc=267804109; __utmz=267804109.1353650605.358.5.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=site.ru" 2013/10/18 20:32:15 [debug] 2127#0: *3 http header done 2013/10/18 20:32:15 [debug] 2127#0: *3 event timer del: 47: 1382113995050 2013/10/18 20:32:15 [debug] 2127#0: *3 rewrite phase: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: "/" 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: ~ "\.(?:ico|css|js|gif|jpe?g|png|zip|tgz|gz|rar|bz2|doc|xls|pdf|ppt|txt|tar|wav|mp3|bmp|rtf|js|swf|flv|xml|avi)$" 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: ~ "/\.ht" 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: ~ "\.php$" 2013/10/18 20:32:15 [debug] 2127#0: *3 using configuration "/" 2013/10/18 20:32:15 [debug] 2127#0: *3 http cl:-1 max:1048576 2013/10/18 20:32:15 [debug] 2127#0: *3 rewrite phase: 2 2013/10/18 20:32:15 [debug] 2127#0: *3 post rewrite phase: 3 2013/10/18 20:32:15 [debug] 2127#0: *3 generic phase: 4 2013/10/18 20:32:15 [debug] 2127#0: *3 generic phase: 5 2013/10/18 20:32:15 [debug] 2127#0: *3 access phase: 6 2013/10/18 20:32:15 [debug] 2127#0: *3 access phase: 7 2013/10/18 20:32:15 [debug] 2127#0: *3 post access phase: 8 2013/10/18 20:32:15 [debug] 2127#0: *3 content phase: 9 2013/10/18 20:32:15 [debug] 2127#0: *3 open index "/home/site/www/site.ru/index.php" 2013/10/18 20:32:15 [debug] 2127#0: *3 internal redirect: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 rewrite phase: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: "/" 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: "50x.html" 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: ~ "\.(?:ico|css|js|gif|jpe?g|png|zip|tgz|gz|rar|bz2|doc|xls|pdf|ppt|txt|tar|wav|mp3|bmp|rtf|js|swf|flv|xml|avi)$" 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: ~ "/\.ht" 2013/10/18 20:32:15 [debug] 2127#0: *3 test location: ~ "\.php$" 2013/10/18 20:32:15 [debug] 2127#0: *3 using configuration "\.php$" 2013/10/18 20:32:15 [debug] 2127#0: *3 http cl:-1 max:1048576 2013/10/18 20:32:15 [debug] 2127#0: *3 rewrite phase: 2 2013/10/18 20:32:15 [debug] 2127#0: *3 posix_memalign: 0000000001BA3500:4096 @16 2013/10/18 20:32:15 [debug] 2127#0: *3 http script complex value 2013/10/18 20:32:15 [debug] 2127#0: *3 http script var: "/home/site/www/site.ru/index.php" 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: "?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http script file op 0000000000000001 "/home/site/www/site.ru/index.php" 2013/10/18 20:32:15 [debug] 2127#0: *3 http script file op false 2013/10/18 20:32:15 [debug] 2127#0: *3 http script if 2013/10/18 20:32:15 [debug] 2127#0: *3 http script if: false 2013/10/18 20:32:15 [debug] 2127#0: *3 post rewrite phase: 3 2013/10/18 20:32:15 [debug] 2127#0: *3 generic phase: 4 2013/10/18 20:32:15 [debug] 2127#0: *3 limit_req[0]: 0 0.000 2013/10/18 20:32:15 [debug] 2127#0: *3 generic phase: 5 2013/10/18 20:32:15 [debug] 2127#0: *3 access phase: 6 2013/10/18 20:32:15 [debug] 2127#0: *3 access phase: 7 2013/10/18 20:32:15 [debug] 2127#0: *3 post access phase: 8 2013/10/18 20:32:15 [debug] 2127#0: *3 http init upstream, client timer: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 epoll add event: fd:47 op:3 ev:80000005 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: "Host: " 2013/10/18 20:32:15 [debug] 2127#0: *3 http script var: "site.ru" 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: " " 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: "X-Real-IP: " 2013/10/18 20:32:15 [debug] 2127#0: *3 http script var: "ipv6клиента" 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: " " 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: "X-Forwarded-For: " 2013/10/18 20:32:15 [debug] 2127#0: *3 http script var: "ipv6клиента" 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: " " 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: "Connection: close " 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: "" 2013/10/18 20:32:15 [debug] 2127#0: *3 http script copy: "" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Cache-Control: max-age=0" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Accept-Encoding: gzip,deflate,sdch" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Cookie: __utma=267804109.666579157.1329935757.1382103946.1382106493.432; __utmc=267804109; __utmz=267804109.1353650605.358.5.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=site.ru" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "GET /index.php HTTP/1.0 Host: site.ru X-Real-IP: ipv6клиента X-Forwarded-For: ipv6клиента Connection: close Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36 Accept-Encoding: gzip,deflate,sdch Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Cookie: __utma=267804109.666579157.1329935757.1382103946.1382106493.432; __utmc=267804109; __utmz=267804109.1353650605.358.5.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=site.ru " 2013/10/18 20:32:15 [debug] 2127#0: *3 http cleanup add: 0000000001BA3F28 2013/10/18 20:32:15 [debug] 2127#0: *3 get rr peer, try: 1 2013/10/18 20:32:15 [debug] 2127#0: *3 socket 48 2013/10/18 20:32:15 [debug] 2127#0: *3 epoll add connection: fd:48 ev:80000005 2013/10/18 20:32:15 [debug] 2127#0: *3 connect to 127.0.0.1:80, fd:48 #4 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream connect: -2 2013/10/18 20:32:15 [debug] 2127#0: *3 posix_memalign: 0000000001A99760:128 @16 2013/10/18 20:32:15 [debug] 2127#0: *3 event timer add: 48: 60000:1382113995051 2013/10/18 20:32:15 [debug] 2127#0: *3 http finalize request: -4, "/index.php?" a:1, c:3 2013/10/18 20:32:15 [debug] 2127#0: *3 http request count:3 blk:0 2013/10/18 20:32:15 [debug] 2127#0: *3 http finalize request: -4, "/index.php?" a:1, c:2 2013/10/18 20:32:15 [debug] 2127#0: *3 http request count:2 blk:0 2013/10/18 20:32:15 [debug] 2127#0: *3 post event 00007F3746569148 2013/10/18 20:32:15 [debug] 2127#0: *3 post event 00007F37465691B0 2013/10/18 20:32:15 [debug] 2127#0: *3 delete posted event 00007F37465691B0 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream request: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream send request handler 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream send request 2013/10/18 20:32:15 [debug] 2127#0: *3 chain writer buf fl:1 s:673 2013/10/18 20:32:15 [debug] 2127#0: *3 chain writer in: 0000000001BA3F60 2013/10/18 20:32:15 [debug] 2127#0: *3 writev: 673 2013/10/18 20:32:15 [debug] 2127#0: *3 chain writer out: 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 event timer del: 48: 1382113995051 2013/10/18 20:32:15 [debug] 2127#0: *3 event timer add: 48: 60000:1382113995051 2013/10/18 20:32:15 [debug] 2127#0: *3 delete posted event 00007F3746569148 2013/10/18 20:32:15 [debug] 2127#0: *3 http run request: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream check client, write event:1, "/index.php" 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream recv(): -1 (11: Resource temporarily unavailable) 2013/10/18 20:32:15 [debug] 2127#0: *3 post event 00007F3746A7E1B0 2013/10/18 20:32:15 [debug] 2127#0: *3 post event 00007F37465691B0 2013/10/18 20:32:15 [debug] 2127#0: *3 delete posted event 00007F37465691B0 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream request: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream dummy handler 2013/10/18 20:32:15 [debug] 2127#0: *3 delete posted event 00007F3746A7E1B0 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream request: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream process header 2013/10/18 20:32:15 [debug] 2127#0: *3 malloc: 0000000001BA4510:4096 2013/10/18 20:32:15 [debug] 2127#0: *3 recv: fd:48 4096 of 4096 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy status 200 "200 OK" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Date: Fri, 18 Oct 2013 16:32:15 GMT" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Server: Apache" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Set-Cookie: PHPSESSID=ik9k1d0tqnddgghjt282kigfn7; path=/" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Expires: Thu, 19 Nov 1981 08:52:00 GMT" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Pragma: no-cache" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Connection: close" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header: "Content-Type: text/html" 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy header done 2013/10/18 20:32:15 [debug] 2127#0: *3 xslt filter header 2013/10/18 20:32:15 [debug] 2127#0: *3 charset: "" > "utf-8" 2013/10/18 20:32:15 [debug] 2127#0: *3 posix_memalign: 0000000001BA5520:4096 @16 2013/10/18 20:32:15 [debug] 2127#0: *3 HTTP/1.1 200 OK Server: nginx Date: Fri, 18 Oct 2013 16:32:15 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Set-Cookie: PHPSESSID=ik9k1d0tqnddgghjt282kigfn7; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Encoding: gzip 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BA5540, pos 0000000001BA5540, size: 382 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter: l:0 f:0 s:382 2013/10/18 20:32:15 [debug] 2127#0: *3 http proxy filter init s:200 h:0 c:0 l:-1 2013/10/18 20:32:15 [debug] 2127#0: *3 tcp_nodelay 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream process non buffered downstream 2013/10/18 20:32:15 [debug] 2127#0: *3 http output filter "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 image filter 2013/10/18 20:32:15 [debug] 2127#0: *3 xslt filter body 2013/10/18 20:32:15 [debug] 2127#0: *3 http postpone filter "/index.php?" 0000000001BA4410 2013/10/18 20:32:15 [debug] 2127#0: *3 http gzip filter 2013/10/18 20:32:15 [debug] 2127#0: *3 malloc: 0000000001C58600:270336 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip alloc: n:1 s:5936 a:8192 p:0000000001C58600 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip alloc: n:32768 s:2 a:65536 p:0000000001C5A600 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip alloc: n:32768 s:2 a:65536 p:0000000001C6A600 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip alloc: n:32768 s:2 a:65536 p:0000000001C7A600 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip alloc: n:16384 s:4 a:65536 p:0000000001C8A600 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000001BA44E8 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA4420 ni:0000000001BA4647 ai:3785 2013/10/18 20:32:15 [debug] 2127#0: *3 malloc: 0000000001BAF530:8192 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate in: ni:0000000001BA4647 no:0000000001BAF530 ai:3785 ao:8192 fl:2 redo:0 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate out: ni:0000000001BA5510 no:0000000001BAFC42 ai:0 ao:6382 rc:0 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA4420 pos:0000000001BA4647 2013/10/18 20:32:15 [debug] 2127#0: *3 http chunk: 10 2013/10/18 20:32:15 [debug] 2127#0: *3 http chunk: 1810 2013/10/18 20:32:15 [debug] 2127#0: *3 write old buf t:1 f:0 0000000001BA5540, pos 0000000001BA5540, size: 382 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BA5810, pos 0000000001BA5810, size: 5 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:0 f:0 0000000000000000, pos 00000000006AEA88, size: 10 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BAF530, pos 0000000001BAF530, size: 1810 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:0 f:0 0000000000000000, pos 000000000049333D, size: 2 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter: l:0 f:1 s:2209 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter limit 0 2013/10/18 20:32:15 [debug] 2127#0: *3 writev: 2209 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: 0 "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 recv: fd:48 4096 of 4096 2013/10/18 20:32:15 [debug] 2127#0: *3 http output filter "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 image filter 2013/10/18 20:32:15 [debug] 2127#0: *3 xslt filter body 2013/10/18 20:32:15 [debug] 2127#0: *3 http postpone filter "/index.php?" 0000000001BA4410 2013/10/18 20:32:15 [debug] 2127#0: *3 http gzip filter 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000001BA5780 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA4420 ni:0000000001BA4510 ai:4096 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate in: ni:0000000001BA4510 no:0000000001BAF530 ai:4096 ao:8192 fl:2 redo:0 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate out: ni:0000000001BA5510 no:0000000001BAFA35 ai:0 ao:6907 rc:0 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA4420 pos:0000000001BA4510 2013/10/18 20:32:15 [debug] 2127#0: *3 http chunk: 1285 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BA58C8, pos 0000000001BA58C8, size: 5 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BAF530, pos 0000000001BAF530, size: 1285 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:0 f:0 0000000001BA5810, pos 000000000049333D, size: 2 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter: l:0 f:1 s:1292 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter limit 0 2013/10/18 20:32:15 [debug] 2127#0: *3 writev: 1292 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: 0 "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 recv: fd:48 3693 of 4096 2013/10/18 20:32:15 [debug] 2127#0: *3 http output filter "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 image filter 2013/10/18 20:32:15 [debug] 2127#0: *3 xslt filter body 2013/10/18 20:32:15 [debug] 2127#0: *3 http postpone filter "/index.php?" 0000000001BA4410 2013/10/18 20:32:15 [debug] 2127#0: *3 http gzip filter 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000001BA5790 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA4420 ni:0000000001BA4510 ai:3693 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate in: ni:0000000001BA4510 no:0000000001BAF530 ai:3693 ao:8192 fl:2 redo:0 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate out: ni:0000000001BA537D no:0000000001BAFA29 ai:0 ao:6919 rc:0 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA4420 pos:0000000001BA4510 2013/10/18 20:32:15 [debug] 2127#0: *3 http chunk: 1273 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BA5810, pos 0000000001BA5810, size: 5 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BAF530, pos 0000000001BAF530, size: 1273 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:0 f:0 0000000001BA58C8, pos 000000000049333D, size: 2 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter: l:0 f:1 s:1280 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter limit 0 2013/10/18 20:32:15 [debug] 2127#0: *3 writev: 1280 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: 0 "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 recv: fd:48 -1 of 4096 2013/10/18 20:32:15 [debug] 2127#0: *3 recv() not ready (11: Resource temporarily unavailable) 2013/10/18 20:32:15 [debug] 2127#0: *3 event timer: 48, old: 1382113995051, new: 1382113995055 2013/10/18 20:32:15 [debug] 2127#0: *3 post event 00007F3746A7E1B0 2013/10/18 20:32:15 [debug] 2127#0: *3 post event 00007F37465691B0 2013/10/18 20:32:15 [debug] 2127#0: *3 delete posted event 00007F37465691B0 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream request: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream dummy handler 2013/10/18 20:32:15 [debug] 2127#0: *3 delete posted event 00007F3746A7E1B0 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream request: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http upstream process non buffered upstream 2013/10/18 20:32:15 [debug] 2127#0: *3 recv: fd:48 717 of 4096 2013/10/18 20:32:15 [debug] 2127#0: *3 http output filter "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 image filter 2013/10/18 20:32:15 [debug] 2127#0: *3 xslt filter body 2013/10/18 20:32:15 [debug] 2127#0: *3 http postpone filter "/index.php?" 0000000001BA4410 2013/10/18 20:32:15 [debug] 2127#0: *3 http gzip filter 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000001BA58A8 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA4420 ni:0000000001BA4510 ai:717 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate in: ni:0000000001BA4510 no:0000000001BAF530 ai:717 ao:8192 fl:2 redo:0 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate out: ni:0000000001BA47DD no:0000000001BAF672 ai:0 ao:7870 rc:0 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA4420 pos:0000000001BA4510 2013/10/18 20:32:15 [debug] 2127#0: *3 http chunk: 322 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BA58C8, pos 0000000001BA58C8, size: 5 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BAF530, pos 0000000001BAF530, size: 322 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:0 f:0 0000000001BA5810, pos 000000000049333D, size: 2 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter: l:0 f:1 s:329 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter limit 0 2013/10/18 20:32:15 [debug] 2127#0: *3 writev: 329 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: 0 "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 recv: fd:48 0 of 4096 2013/10/18 20:32:15 [debug] 2127#0: *3 finalize http upstream request: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 finalize http proxy request 2013/10/18 20:32:15 [debug] 2127#0: *3 free rr peer 1 0 2013/10/18 20:32:15 [debug] 2127#0: *3 close http upstream connection: 48 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001A99760, unused: 48 2013/10/18 20:32:15 [debug] 2127#0: *3 event timer del: 48: 1382113995051 2013/10/18 20:32:15 [debug] 2127#0: *3 reusable connection: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 http output filter "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 image filter 2013/10/18 20:32:15 [debug] 2127#0: *3 xslt filter body 2013/10/18 20:32:15 [debug] 2127#0: *3 http postpone filter "/index.php?" 00007FFF64CF1DA0 2013/10/18 20:32:15 [debug] 2127#0: *3 http gzip filter 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in: 0000000001BA5888 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA5900 ni:0000000000000000 ai:0 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate in: ni:0000000000000000 no:0000000001BAF530 ai:0 ao:8192 fl:4 redo:0 2013/10/18 20:32:15 [debug] 2127#0: *3 deflate out: ni:0000000000000000 no:0000000001BAF532 ai:0 ao:8190 rc:1 2013/10/18 20:32:15 [debug] 2127#0: *3 gzip in_buf:0000000001BA5900 pos:0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001C58600 2013/10/18 20:32:15 [debug] 2127#0: *3 http chunk: 10 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BA5810, pos 0000000001BA5810, size: 3 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:1 f:0 0000000001BAF530, pos 0000000001BAF530, size: 10 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 write new buf t:0 f:0 0000000001BA58C8, pos 0000000000493338, size: 7 file: 0, size: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter: l:1 f:1 s:20 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter limit 0 2013/10/18 20:32:15 [debug] 2127#0: *3 writev: 20 2013/10/18 20:32:15 [debug] 2127#0: *3 http write filter 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 http copy filter: 0 "/index.php?" 2013/10/18 20:32:15 [debug] 2127#0: *3 http finalize request: 0, "/index.php?" a:1, c:1 2013/10/18 20:32:15 [debug] 2127#0: *3 set http keepalive handler 2013/10/18 20:32:15 [debug] 2127#0: *3 http close request 2013/10/18 20:32:15 [debug] 2127#0: *3 http log handler 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001BAF530 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000000000000 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001BA4510 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001AA7490, unused: 0 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001BA3500, unused: 8 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001BA5520, unused: 2748 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001BE5120 2013/10/18 20:32:15 [debug] 2127#0: *3 hc free: 0000000000000000 0 2013/10/18 20:32:15 [debug] 2127#0: *3 hc busy: 0000000000000000 0 2013/10/18 20:32:15 [debug] 2127#0: *3 reusable connection: 1 2013/10/18 20:32:15 [debug] 2127#0: *3 event timer add: 47: 65000:1382114000058 2013/10/18 20:32:15 [debug] 2127#0: *3 post event 00007F3746A7E148 2013/10/18 20:32:15 [debug] 2127#0: *3 delete posted event 00007F3746A7E148 2013/10/18 20:32:15 [debug] 2127#0: *3 http keepalive handler 2013/10/18 20:32:15 [debug] 2127#0: *3 malloc: 0000000001BE5120:1024 2013/10/18 20:32:15 [debug] 2127#0: *3 recv: fd:47 -1 of 1024 2013/10/18 20:32:15 [debug] 2127#0: *3 recv() not ready (11: Resource temporarily unavailable) 2013/10/18 20:32:15 [debug] 2127#0: *3 free: 0000000001BE5120 2013/10/18 20:33:20 [debug] 2127#0: *3 event timer del: 47: 1382114000058 2013/10/18 20:33:20 [debug] 2127#0: *3 http keepalive handler 2013/10/18 20:33:20 [debug] 2127#0: *3 close http connection: 47 2013/10/18 20:33:20 [debug] 2127#0: *3 reusable connection: 0 2013/10/18 20:33:20 [debug] 2127#0: *3 free: 0000000000000000 2013/10/18 20:33:20 [debug] 2127#0: *3 free: 0000000001BE3E40, unused: 8 2013/10/18 20:33:20 [debug] 2127#0: *3 free: 0000000001A99650, unused: 72 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243833,243835#msg-243835 From mdounin at mdounin.ru Fri Oct 18 16:54:50 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 18 Oct 2013 20:54:50 +0400 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <110204505.20131018201900@gmail.com> References: <110204505.20131018201900@gmail.com> Message-ID: <20131018165450.GN2144@mdounin.ru> Hello! On Fri, Oct 18, 2013 at 08:19:00PM +0400, actionmanager at gmail.com wrote: > Здравствуйте, > > настроил дома ipv6 через tunnelbroker.net провайдер выдаёт серый ipv4, за NAT. > на сайты по ipv6 захожу. установил веб сервер apachе из интернета доступ есть к нему по ipv6 > > проблема следующая. на сервере в датацентре hetzner установлен nginx и ipv6 сайт. > я не могу на него зайти. открываю адрес сайта, сервер nginx получает HTTP заголовок с запросом, сохраняет в > access.log код 200. > > браузер ожидает соединения , на клиенте Wireshark видно что заголвок > отправлен и дальше идут TCP-Keep-Alive пакеты. затем всё. > > tcpdump на сервере показывает keep-alive соединение и gzip данные частями. > т.е. сервер отправляет данные. > > выяснилось что можно попасть на сайт только через HTTP 1.0 > например WGET и LYNX открывают сайт. а браузер нет. Судя по симптомам, у вас проблемы с Path MTU Discovery - где-то по дороге зафильтрованы ICMP-сообщения, а отправляемые сервером пакеты не пролезают в тунель. http://en.wikipedia.org/wiki/Path_MTU_Discovery К nginx'у проблема не имеет отношения. -- Maxim Dounin http://nginx.org/en/donation.html From kostenl at gmail.com Fri Oct 18 17:14:31 2013 From: kostenl at gmail.com (Konstantin Lapochkin) Date: Fri, 18 Oct 2013 23:14:31 +0600 Subject: =?UTF-8?B?UmU6IFdJU1JwINC4IFVBTSDRgdGA0LXQtNGB0YLQstCw0LzQuCBuZ2lueA==?= In-Reply-To: <20131018132257.GL2144@mdounin.ru> References: <002701cecbe4$7248d1c0$56da7540$@gmail.com> <20131018132257.GL2144@mdounin.ru> Message-ID: Спасибо. Я ещё раз посмотрю дамп трафика с микротика. 18 октября 2013 г., 19:22 пользователь Maxim Dounin написал: > Hello! > > On Fri, Oct 18, 2013 at 03:28:46PM +0600, Лапочкин Константин wrote: > > > Добрый день. Используем Nginx для редиректа на captive-портав с > > наших wifi-hotspot'ов. Пользователь, подключившись к не > > защищённой сети при любом обращении в интернет по протоколам > > http, https перенаправляется на наш портал, где проходит > > авторизацию (либо получает гостевой доступ). Возникла задача: > > что бы на клиентских устройствах с iOS (iPhone, iPad) при > > подключении к нашей сети всплывало pop-UP окно с нашим порталом. > > Работает это через протокол wisrp, окно называется uam(unified > > authorization method). Суть метода в том, что при подключении к > > сети ios запрашивает ссылку с < > CaptiveNetworkSupport-200.1 wispr>>. Если он получает на это 302, > > то, теоретически, должно возникнуть окошко со страницей, на > > которую перенаправляет 302-й код. Однако, это в nginx не > > работает. Проверяли, что работает на microtik. Cнимали дамп > > пакетов c микротика, увидели следующее: > > [...] > > > Что сделал: пробовал через nc слать заголовки из дампа микротика > > - работает, окно появляется. Пересобрал ngnix, что бы заменить > > 302 Moved Temporarily на 302 Hotspot login required - не > > помогло. > > Если я правильно понимаю, важно не то, как делается > перенаправление, а то, что возвращается клиенту после > перенаправления. > > Там должна быть XML'ка установленного спецификацией WISPr вида, > пример можно посмотреть, например, тут: > > http://hotspot-connect.sourceforge.net/ > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > 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 Oct 18 18:14:35 2013 From: nginx-forum at nginx.us (actionmanager) Date: Fri, 18 Oct 2013 14:14:35 -0400 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <20131018165450.GN2144@mdounin.ru> References: <20131018165450.GN2144@mdounin.ru> Message-ID: <38aa4ce05a24eac2584ff58e5e979954.NginxMailingListRussian@forum.nginx.org> Спасибо большое за совет. у меня открывается http://[2a01:4f8:d0a:2001::2]/ сайт hetzner.de, http://ipv6test.google.com/ и другие ipv6 сайты тоже открываются. получается фильтрация у моего провайдера ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243833,243840#msg-243840 From mdounin at mdounin.ru Fri Oct 18 18:51:01 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 18 Oct 2013 22:51:01 +0400 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <38aa4ce05a24eac2584ff58e5e979954.NginxMailingListRussian@forum.nginx.org> References: <20131018165450.GN2144@mdounin.ru> <38aa4ce05a24eac2584ff58e5e979954.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131018185101.GO2144@mdounin.ru> Hello! On Fri, Oct 18, 2013 at 02:14:35PM -0400, actionmanager wrote: > Спасибо большое за совет. > > у меня открывается http://[2a01:4f8:d0a:2001::2]/ сайт hetzner.de, > http://ipv6test.google.com/ и другие ipv6 сайты тоже открываются. > получается фильтрация у моего провайдера ? Где что фильтруется - это вам разбираться. А другие сайты могут открываться по более чем одной причине, например - если используют MTU меньше, чем к вам в тоннель пролезает. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Fri Oct 18 20:05:14 2013 From: nginx-forum at nginx.us (actionmanager) Date: Fri, 18 Oct 2013 16:05:14 -0400 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <20131018185101.GO2144@mdounin.ru> References: <20131018185101.GO2144@mdounin.ru> Message-ID: <221d8336d0c83f341c7f86fe7bde5349.NginxMailingListRussian@forum.nginx.org> >>А другие сайты могут открываться по более чем одной причине, например - если используют MTU меньше, чем к вам в тоннель пролезает. Вот именно это и есть решение проблемы. MTU 1420 на сервере и всё работает ))) Спасибо большое ;) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243833,243843#msg-243843 From mdounin at mdounin.ru Sat Oct 19 10:07:26 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Sat, 19 Oct 2013 14:07:26 +0400 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <221d8336d0c83f341c7f86fe7bde5349.NginxMailingListRussian@forum.nginx.org> References: <20131018185101.GO2144@mdounin.ru> <221d8336d0c83f341c7f86fe7bde5349.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131019100725.GR2144@mdounin.ru> Hello! On Fri, Oct 18, 2013 at 04:05:14PM -0400, actionmanager wrote: > >>А другие сайты могут открываться по более чем одной причине, например - > если используют MTU меньше, чем к вам в тоннель пролезает. > > Вот именно это и есть решение проблемы. MTU 1420 на сервере и всё работает > ))) > > Спасибо большое ;) Пожалуйста, но имейте ввиду, что это - не решение, а грязный хак "чтоб заработало". Проблема - как была, так и осталась, просто больше не проявляется при общении с вашим сервером. -- Maxim Dounin http://nginx.org/en/donation.html From gmm at csdoc.com Sun Oct 20 13:25:42 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Sun, 20 Oct 2013 16:25:42 +0300 Subject: allow/deny and return In-Reply-To: <20131018135001.GM2144@mdounin.ru> References: <20131016152031.GY2144@mdounin.ru> <525EC51F.2040107@csdoc.com> <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> <20131018135001.GM2144@mdounin.ru> Message-ID: <5263D9D6.6030209@csdoc.com> On 18.10.2013 16:50, Maxim Dounin wrote: >> если же посмотреть со стороны пользователей - в большинстве случаев >> написание конфигурации стало проще, удобнее и безглючнее, потому что >> вместо фигурного выпиливания лобзиком работающей конфигурации >> на основе директив if + return + error_page >> + recursive_error_pages + proxy_intercept_errors >> + fastcgi_intercept_errors + scgi_intercept_errors >> + uwsgi_intercept_errors + ... >> можно взять директиву try_files с простой и понятной логикой работы, >> которая подходит для большинства наиболее частоиспользуемых случаев. > > Проблема в том, что "выпиливание лобзиком" - как было, так и > осталось. Только к списку директив добавилась ещё парочка, > за которыми нужно следить - try_files и alias. Ошибки работы try_files в location с alias ведь можно исправить? Почти всегда конфиг с директивой try_files будет проще и понятнее, чем при использовании комбинации директив if + return + error_page Ведь директива error_page предназначена для обработки ошибок, когда Файл точно должен был быть, но его там вдруг не оказалось. Исключительная ситуация, о которой записывается информация в лог и показывается соответствующая страница с сообщением про ошибку. try_files - это ведь директива _выбора_ location для обработки запросов, если файл существует - используется этот location. если нет - тогда тот. Например, что будет проще и удобнее: location ~ \.php$ { error_page 404 = @virtual; log_not_found off; if (!-f $request_filename) { return 404; } fastcgi_pass ...; } или location ~ \.php$ { try_files $uri @virtual; fastcgi_pass ...; } ? > Отдельно печалит, что в результате конфигурации с error_page 404 > @fallback - практически исчезли, хотя аналог на try_files - > гарантированно хуже. Аналог на try_files будет "гарантированно хуже" только в том случае, когда для обработки запросов используется модуль static. Если другой content handler (fastcgi_pass, proxy_pass и т.п.) - try_files лучше. Даже в том случае, когда content handler`ом будет модуль static: С точки зрения производительности - да, это будет чуть-чуть хуже, один лишний syscall и маловероятная возможность "race condition". Но с точки зрения простоты написания / сопровождения конфига - директива try_files и в этом случае будет лучше чем error_page. "Programs must be written for people to read, and only incidentally for machines to execute" - Hal Abelson - по сути nginx.conf - это программа для интерпретатора /usr/sbin/nginx "Предпочтение простоте заложено в нашей ДНК и это вряд ли изменится в течение нескольких миллиардов лет. ...при наличие выбора, человек всегда выберет более простой путь." - цитата из книги Кена Сигалла "Безумно просто. Вдохновляющие примеры Apple". потому и пропали конфигурации с error_page 404 @fallback, - появился более простой и более удобный вариант try_files. P.S. Кстати, при желании можно устранить все недостатки try_files. try_files - это синтаксический сахар для if, return и error_page - следовательно в процессе парсинга конфига можно транслировать директиву try_files "высокого уровня" в набор директив "низкого уровня", которые и будут реально исполняться nginx через ngx_http_core_try_files_phase. например, такой фрагмент конфига: location ... { error_page 404 /404.html; try_files $uri @virtual; # static module handler; } всегда будет игнорировать "лишнюю" директиву error_page 404, поэтому try_files можно развернуть в error_page 404 = @virtual; и log_not_found off; вообще без ngx_http_core_try_files_phase. фрагмент конфига location ~ \.php$ { try_files $uri @virtual; fastcgi_pass ...; } можно развернуть в location ~ \.php$ { if (!-f $request_filename) { internal_redirect @virtual; # это на уровне байт-кода rewrite } fastcgi_pass ...; } поскольку сгенерированная из try_files и невидимая пользователю директива if будет работать на NGX_HTTP_TRY_FILES_PHASE, после access - поведение конфига 100% соответствовать существующей сейчас документации на директиву try_files. Если я ничего не путаю, любую директиву try_files можно транслировать в произвольную комбинацию директив if + return + error_page, возможно с дополнительными location`ами. Тогда нельзя будет сказать с точки зрения реализации, что "аналог на try_files - гарантированно хуже", потому что try_files будет идентичен аналогу на if, и даже будет лучше if, потому что try_files работает после прохождения access-проверок. А с точки зрения пользователя - try_files практически всегда будет лучше, потому что это более простая и понятная директива. -- Best regards, Gena From nginx-forum at nginx.us Sun Oct 20 23:13:10 2013 From: nginx-forum at nginx.us (Aleus Essentia) Date: Sun, 20 Oct 2013 19:13:10 -0400 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10LTQsNGH0LAg0LfQsNCz0L7Qu9C+0LLQutC+0LIg0LrQu9C4?= =?UTF-8?B?0LXQvdGC0YM=?= In-Reply-To: <20131015121636.GF2144@mdounin.ru> References: <20131015121636.GF2144@mdounin.ru> Message-ID: Я решил задачу по другому: клонировал модуль proxy, сделал пустой в нём функцию обратного вызова process_header. И пропатчил файл ngx_http_header_filter_input.c, убрав в нём по условию существования одного флага добавление CRLF в конец заголовка. Также пришлось выключить chunked передачу. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243691,243878#msg-243878 From norman.k77 at gmail.com Mon Oct 21 10:08:32 2013 From: norman.k77 at gmail.com (=?KOI8-R?B?58/Swc4g8MXU0tne?=) Date: Mon, 21 Oct 2013 13:08:32 +0300 Subject: =?UTF-8?B?MzAxINCg0LXQtNC40YDQtdC60YIg0L3QsCDQvtGB0L3QvtCy0LDQvdC40Lgg0YE=?= =?UTF-8?B?0YPRidC10YHRgtCy0L7QstCw0L3QuNGPIGRvY3VtZW50IHJvb3Q=?= Message-ID: Добрый день! Захотелось создать универсальный *server_name ~^(?P.+)$*; *root /var/www/$site/pub; * Все хорошо и работает. Но захотелось пойти дальше: Если в /var/www/ лежит фолдер, который начинается *с* www, например www.site.com, то делать 301 редирект с site.com -> www.site.com Если же в /var/www/ лежит фолдер, который начинается *без *www, например site.com, то делать 301 редирект с www.site.com -> site.com Т.е. проверять наличие фолдера. Первое, что пришло на ум - это создать выше основной секции, дополнительную: *server_name ~^(?Pwww)\.(?P.+)$;* * * * if (!-d /var/www/$w.$site/pub) {* * return 301 http://$site$request_uri;* * }* * root /var/www/$site/pub;* Это решает проблему когда нам нужно сделать 301 с www.site.com -> site.com. Прошу помощи в том, как реализовать схему наоборот: 301 с site.com -> www.site.com Не могу додуматься. В данный момент конфиг выглядит так: *server_name ~^(?Pwww)\.(?P.+)$;* * * * if (!-d /var/www/$w.$site/pub) {* * return 301 http://$site$request_uri;* * }* * root /var/www/$site/pub;* *......* * * * * *server_name ~^(?P.+)$*; *root /var/www/$site/pub; * *.......* -------------- next part -------------- An HTML attachment was scrubbed... URL: From mdounin at mdounin.ru Mon Oct 21 12:37:19 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 21 Oct 2013 16:37:19 +0400 Subject: allow/deny and return In-Reply-To: <5263D9D6.6030209@csdoc.com> References: <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> <20131018135001.GM2144@mdounin.ru> <5263D9D6.6030209@csdoc.com> Message-ID: <20131021123719.GE7074@mdounin.ru> Hello! On Sun, Oct 20, 2013 at 04:25:42PM +0300, Gena Makhomed wrote: [...] > >Проблема в том, что "выпиливание лобзиком" - как было, так и > >осталось. Только к списку директив добавилась ещё парочка, > >за которыми нужно следить - try_files и alias. > > Ошибки работы try_files в location с alias ведь можно исправить? С тем же успехом можно исправить if. О чём и разговор: подход "давайте вместо того, чтобы исправлять старое, сделаем новое" приводит к увеличению проблем. [...] > >Отдельно печалит, что в результате конфигурации с error_page 404 > >@fallback - практически исчезли, хотя аналог на try_files - > >гарантированно хуже. > > Аналог на try_files будет "гарантированно хуже" только в том случае, > когда для обработки запросов используется модуль static. Если другой > content handler (fastcgi_pass, proxy_pass и т.п.) - try_files лучше. Это утверждение неверно. Race при использовании try_files - как был, так и остаётся. Вне зависимости от применяемого обработчика. [...] -- Maxim Dounin http://nginx.org/en/donation.html From chipitsine at gmail.com Mon Oct 21 13:00:49 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Mon, 21 Oct 2013 19:00:49 +0600 Subject: allow/deny and return In-Reply-To: <20131021123719.GE7074@mdounin.ru> References: <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> <20131018135001.GM2144@mdounin.ru> <5263D9D6.6030209@csdoc.com> <20131021123719.GE7074@mdounin.ru> Message-ID: а можно пример race-а ? в каких случаях он возникает ? 21 октября 2013 г., 18:37 пользователь Maxim Dounin написал: > Hello! > > On Sun, Oct 20, 2013 at 04:25:42PM +0300, Gena Makhomed wrote: > > [...] > >> >Проблема в том, что "выпиливание лобзиком" - как было, так и >> >осталось. Только к списку директив добавилась ещё парочка, >> >за которыми нужно следить - try_files и alias. >> >> Ошибки работы try_files в location с alias ведь можно исправить? > > С тем же успехом можно исправить if. О чём и разговор: подход > "давайте вместо того, чтобы исправлять старое, сделаем новое" > приводит к увеличению проблем. > > [...] > >> >Отдельно печалит, что в результате конфигурации с error_page 404 >> >@fallback - практически исчезли, хотя аналог на try_files - >> >гарантированно хуже. >> >> Аналог на try_files будет "гарантированно хуже" только в том случае, >> когда для обработки запросов используется модуль static. Если другой >> content handler (fastcgi_pass, proxy_pass и т.п.) - try_files лучше. > > Это утверждение неверно. Race при использовании try_files - как > был, так и остаётся. Вне зависимости от применяемого обработчика. > > [...] > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ru at nginx.com Mon Oct 21 15:19:41 2013 From: ru at nginx.com (Ruslan Ermilov) Date: Mon, 21 Oct 2013 19:19:41 +0400 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <20131019100725.GR2144@mdounin.ru> References: <20131018185101.GO2144@mdounin.ru> <221d8336d0c83f341c7f86fe7bde5349.NginxMailingListRussian@forum.nginx.org> <20131019100725.GR2144@mdounin.ru> Message-ID: <20131021151941.GB89843@lo0.su> On Sat, Oct 19, 2013 at 02:07:26PM +0400, Maxim Dounin wrote: > On Fri, Oct 18, 2013 at 04:05:14PM -0400, actionmanager wrote: > > > >>А другие сайты могут открываться по более чем одной причине, например - > > если используют MTU меньше, чем к вам в тоннель пролезает. > > > > Вот именно это и есть решение проблемы. MTU 1420 на сервере и всё работает > > ))) > > > > Спасибо большое ;) > > Пожалуйста, но имейте ввиду, что это - не решение, а грязный хак > "чтоб заработало". Проблема - как была, так и осталась, просто > больше не проявляется при общении с вашим сервером. К сожалению в реальной жизни только это и решение. Именно так родились http://svnweb.freebsd.org/ports/head/net/tcpmssd/pkg-descr?revision=HEAD опция mssfixup в ppp(8) на FreeBSD, -clamp_mss в natd(8) на OS X, и многое др. From mdounin at mdounin.ru Mon Oct 21 15:49:30 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 21 Oct 2013 19:49:30 +0400 Subject: allow/deny and return In-Reply-To: References: <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> <20131018135001.GM2144@mdounin.ru> <5263D9D6.6030209@csdoc.com> <20131021123719.GE7074@mdounin.ru> Message-ID: <20131021154930.GH7074@mdounin.ru> Hello! On Mon, Oct 21, 2013 at 07:00:49PM +0600, Илья Шипицин wrote: > а можно пример race-а ? в каких случаях он возникает ? Директива try_files проверяет есть ли файл, и если файл есть - передаёт управление дальше. Потом уже обработчик (сам nginx в случае статики, бекенд в случае proxy/fastcgi) открывает файл. Если в промежутке проверяемый файл удалили - будет ошибка. -- Maxim Dounin http://nginx.org/en/donation.html From mdounin at mdounin.ru Mon Oct 21 15:59:20 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 21 Oct 2013 19:59:20 +0400 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <20131021151941.GB89843@lo0.su> References: <20131018185101.GO2144@mdounin.ru> <221d8336d0c83f341c7f86fe7bde5349.NginxMailingListRussian@forum.nginx.org> <20131019100725.GR2144@mdounin.ru> <20131021151941.GB89843@lo0.su> Message-ID: <20131021155920.GI7074@mdounin.ru> Hello! On Mon, Oct 21, 2013 at 07:19:41PM +0400, Ruslan Ermilov wrote: > On Sat, Oct 19, 2013 at 02:07:26PM +0400, Maxim Dounin wrote: > > On Fri, Oct 18, 2013 at 04:05:14PM -0400, actionmanager wrote: > > > > > >>А другие сайты могут открываться по более чем одной причине, например - > > > если используют MTU меньше, чем к вам в тоннель пролезает. > > > > > > Вот именно это и есть решение проблемы. MTU 1420 на сервере и всё работает > > > ))) > > > > > > Спасибо большое ;) > > > > Пожалуйста, но имейте ввиду, что это - не решение, а грязный хак > > "чтоб заработало". Проблема - как была, так и осталась, просто > > больше не проявляется при общении с вашим сервером. > > К сожалению в реальной жизни только это и решение. Именно так > родились > > http://svnweb.freebsd.org/ports/head/net/tcpmssd/pkg-descr?revision=HEAD > > опция mssfixup в ppp(8) на FreeBSD, -clamp_mss в natd(8) на OS X, > и многое др. Все перечиселенные вещи, по крайней мере, пытаются как-то решать проблему для всех соединений в тоннеле. Снижать же MTU на сервере из-за проблем собственного тоннеля - IMHO, странно. Завтра не откроется какой-нибудь example.com - и что делать? -- Maxim Dounin http://nginx.org/en/donation.html From chipitsine at gmail.com Mon Oct 21 16:12:25 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Mon, 21 Oct 2013 22:12:25 +0600 Subject: nginx keep-alive ipv6 6in4 In-Reply-To: <20131021155920.GI7074@mdounin.ru> References: <20131018185101.GO2144@mdounin.ru> <221d8336d0c83f341c7f86fe7bde5349.NginxMailingListRussian@forum.nginx.org> <20131019100725.GR2144@mdounin.ru> <20131021151941.GB89843@lo0.su> <20131021155920.GI7074@mdounin.ru> Message-ID: а расскажите, откуда берется в данном случае MTU=1420? мы для себя на ОЧЕНЬ большой экспериментальной выборке опытным путем подобрали mss=1418 снифер для фейсбука показывает, что у них mss=1410 (не мог найти, почему так) mtu=1420 это ведь существенно меньше, чем mss=1418, почему именно столько? 21 октября 2013 г., 21:59 пользователь Maxim Dounin написал: > Hello! > > On Mon, Oct 21, 2013 at 07:19:41PM +0400, Ruslan Ermilov wrote: > >> On Sat, Oct 19, 2013 at 02:07:26PM +0400, Maxim Dounin wrote: >> > On Fri, Oct 18, 2013 at 04:05:14PM -0400, actionmanager wrote: >> > >> > > >>А другие сайты могут открываться по более чем одной причине, например - >> > > если используют MTU меньше, чем к вам в тоннель пролезает. >> > > >> > > Вот именно это и есть решение проблемы. MTU 1420 на сервере и всё работает >> > > ))) >> > > >> > > Спасибо большое ;) >> > >> > Пожалуйста, но имейте ввиду, что это - не решение, а грязный хак >> > "чтоб заработало". Проблема - как была, так и осталась, просто >> > больше не проявляется при общении с вашим сервером. >> >> К сожалению в реальной жизни только это и решение. Именно так >> родились >> >> http://svnweb.freebsd.org/ports/head/net/tcpmssd/pkg-descr?revision=HEAD >> >> опция mssfixup в ppp(8) на FreeBSD, -clamp_mss в natd(8) на OS X, >> и многое др. > > Все перечиселенные вещи, по крайней мере, пытаются как-то решать > проблему для всех соединений в тоннеле. Снижать же MTU на сервере > из-за проблем собственного тоннеля - IMHO, странно. Завтра не > откроется какой-нибудь example.com - и что делать? > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From gmm at csdoc.com Mon Oct 21 17:44:06 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Mon, 21 Oct 2013 20:44:06 +0300 Subject: allow/deny and return In-Reply-To: <20131021123719.GE7074@mdounin.ru> References: <20131016173302.GA2144@mdounin.ru> <525EDAD8.502@csdoc.com> <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> <20131018135001.GM2144@mdounin.ru> <5263D9D6.6030209@csdoc.com> <20131021123719.GE7074@mdounin.ru> Message-ID: <526567E6.5070506@csdoc.com> On 21.10.2013 15:37, Maxim Dounin wrote: >> Ошибки работы try_files в location с alias ведь можно исправить? > С тем же успехом можно исправить if. О чём и разговор: подход > "давайте вместо того, чтобы исправлять старое, сделаем новое" > приводит к увеличению проблем. следуя такой логике - любая новая feature приводит к увеличению проблем. например, добавили ngx_http_spdy_module - и появились НОВЫЕ проблемы. разве кто-то когда-то утверждал, что try_files - это замена для if ? нет, это новая дополнительная feature, как и SPDY не замена HTTP/1.1 кстати, трудоемкость исправления всех проблем if гораздо выше, чем трудоемкость исправления всех проблем try_files (с alias). у директивы if есть существенный недостаток - она работает до access-проверок и этот недостаток исправить невозможно. ... кроме как создать новую директиву try_files, - которая работает после access-проверок. никаким другим способом "исправить if" нельзя. >>> Отдельно печалит, что в результате конфигурации с error_page 404 >>> @fallback - практически исчезли, хотя аналог на try_files - >>> гарантированно хуже. >> Аналог на try_files будет "гарантированно хуже" только в том случае, >> когда для обработки запросов используется модуль static. Если другой >> content handler (fastcgi_pass, proxy_pass и т.п.) - try_files лучше. > Это утверждение неверно. Race при использовании try_files - как > был, так и остаётся. Вне зависимости от применяемого обработчика. я не про race. один "лишний" syscall - это более дешевая операция, чем сходить на backend, получить 404 ошибку и отработать error_page. исключение тут - только модуль static, потому что в нем проверка файла на существование происходит в процессе попытки отдачи контента клиенту. почему же try_files лучше? потому что эта директива не "игнорирует" имеющиеся в location access-проверки, как if(!-f $request_filename) по поводу race condition в try_files - это non-critical race condition, backend же вернет 404 ошибку, которую можно обработать как и try_files: error_page 404 = @fallback; try_files $uri @fallback; fastcgi_pass ... ; - добавление директивы try_files $uri @fallback; просто ускоряет работу, если произойдет "race condition" - тогда сработает директива error_page. -- Best regards, Gena From mdounin at mdounin.ru Mon Oct 21 18:37:20 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 21 Oct 2013 22:37:20 +0400 Subject: allow/deny and return In-Reply-To: <526567E6.5070506@csdoc.com> References: <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> <20131018135001.GM2144@mdounin.ru> <5263D9D6.6030209@csdoc.com> <20131021123719.GE7074@mdounin.ru> <526567E6.5070506@csdoc.com> Message-ID: <20131021183719.GL7074@mdounin.ru> Hello! On Mon, Oct 21, 2013 at 08:44:06PM +0300, Gena Makhomed wrote: > On 21.10.2013 15:37, Maxim Dounin wrote: > > >>Ошибки работы try_files в location с alias ведь можно исправить? > > >С тем же успехом можно исправить if. О чём и разговор: подход > >"давайте вместо того, чтобы исправлять старое, сделаем новое" > >приводит к увеличению проблем. > > следуя такой логике - любая новая feature приводит к увеличению проблем. > например, добавили ngx_http_spdy_module - и появились НОВЫЕ проблемы. Именно так. И поэтому подход "давайте вместо того, чтобы исправлять старое, сделаем новое" - не работает. Извините, я устал разжёвывать раз за разом одно и то же, поэтому воздержусь от продолжения данной дискуссии. [...] -- Maxim Dounin http://nginx.org/en/donation.html From gmm at csdoc.com Mon Oct 21 21:45:52 2013 From: gmm at csdoc.com (Gena Makhomed) Date: Tue, 22 Oct 2013 00:45:52 +0300 Subject: allow/deny and return In-Reply-To: <20131021183719.GL7074@mdounin.ru> References: <20131016231857.GC2144@mdounin.ru> <525FDE35.3030209@csdoc.com> <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> <20131018135001.GM2144@mdounin.ru> <5263D9D6.6030209@csdoc.com> <20131021123719.GE7074@mdounin.ru> <526567E6.5070506@csdoc.com> <20131021183719.GL7074@mdounin.ru> Message-ID: <5265A090.4050709@csdoc.com> On 21.10.2013 21:37, Maxim Dounin wrote: >>>> Ошибки работы try_files в location с alias ведь можно исправить? >> >>> С тем же успехом можно исправить if. О чём и разговор: подход >>> "давайте вместо того, чтобы исправлять старое, сделаем новое" >>> приводит к увеличению проблем. >> >> следуя такой логике - любая новая feature приводит к увеличению проблем. >> например, добавили ngx_http_spdy_module - и появились НОВЫЕ проблемы. > > Именно так. И поэтому подход "давайте вместо того, чтобы > исправлять старое, сделаем новое" - не работает. откуда взялось это жесткое противопоставление двух процессов - "давайте ВМЕСТО ТОГО, чтобы исправлять старое, сделаем новое"? в файле http://nginx.org/en/CHANGES почти в каждом выпуске есть и Bugfix: и Feature: записи - одно другому не мешает. если исправлять старое методом "disable non-rewrite directives inside if completely" - это тоже приведет к увеличению проблем. это можно делать только в том случае если такая feature будет в состоянии deprecated долгое время и при наличии альтернатив. а чтобы эти альтернативы были - их надо сначала добавить в nginx, "сделать новое" и только потом уже можно "disable ... completely" > Извините, я устал разжёвывать раз за разом одно и то же, поэтому > воздержусь от продолжения данной дискуссии. On 16.10.2013 20:33, Maxim Dounin wrote: > Игорь тут уже как-то попробовал решать проблемы модуля rewrite с > помощью добавления директивы try_files. Стало только хуже, т.к. > старые проблемы никуда не делись, а новых добавилось - в > количестве. On 17.10.2013 2:18, Maxim Dounin wrote: > Речь, впрочем, не об этом. Речь о том, что try_files, который > делался как попытка "решить" проблемы if'а, вытеснив его из > конфигов, ни разу его не вытеснил. Наоборот, к существовавшим > ранее проблемам - добавились новые, в том числе - связанные с > работой try_files со всё тем же if'ом. On 17.10.2013 17:09, Maxim Dounin wrote: > Повторяю: добавление try_files не решило проблем с if'ом. В > результате как раз с проблемами if'а - ничего не было сделано, а > вместо этого усилия были потрачены на try_files и борьбу с его > проблемами. Если бы вместо добавления try_files соответствующие > усилия были потрачены именно на _решение_ проблем - было бы лучше. > > И это общая проблема всех подобных попыток "уменьшить количество > случаев" вместо реального решения проблемы. Решать проблему всё > равно рано или поздно придётся, и откладывание этого решения - > лишь ухудшает ситуацию. On 18.10.2013 16:50, Maxim Dounin wrote: > Отдельно печалит, что в результате конфигурации с error_page 404 > @fallback - практически исчезли, хотя аналог на try_files - > гарантированно хуже. "ни разу его не вытеснил" и вместе с тем "практически исчезли" вместо того, чтобы писать в конфиге: error_page 456 = @fallback; if (!-f $request_filename) { return 456; } можно написать гораздо проще: try_files $uri @fallback; поэтому совсем не удивительно, что конфигурации с "error_page" практически исчезли, и try_files вытеснил здесь if из конфигов кроме того, что вместо 4-х строчек конфига надо писать только одну, есть и дополнительный плюс - try_files корректно работает с access. или "ни разу его не вытеснил" - это про конфигурации if (!-f $request_filename) { fastcgi_pass ...; } ? на такие конфигурации nginx -t говорит что "test is successful" и не ругается, что такая фича deprecated, потому и не вытеснил. а не ругается наверное потому, что пока что не исправлены ошибки в работе try_files внутри location`ов с alias`ами. самый простой путь решения проблем с if: 1. добиться безглючной работы директивы try_files во всех случаях 2. сделать warning о deprecated non-rewrite directives inside if 3. в next major версии disable non-rewrite directives inside if самый сложный путь решения проблем с if: устранить все глюки в работе директивы if со всеми директивами nginx и со всеми возможными их комбинациями: несколько if в location и т.п. какие-либо другие варианты "решения проблем с if" существуют? -- Best regards, Gena From mdounin at mdounin.ru Mon Oct 21 22:33:06 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 22 Oct 2013 02:33:06 +0400 Subject: allow/deny and return In-Reply-To: <5265A090.4050709@csdoc.com> References: <20131017140915.GG2144@mdounin.ru> <526028DA.3040208@csdoc.com> <20131018114116.GK2144@mdounin.ru> <52613540.20704@csdoc.com> <20131018135001.GM2144@mdounin.ru> <5263D9D6.6030209@csdoc.com> <20131021123719.GE7074@mdounin.ru> <526567E6.5070506@csdoc.com> <20131021183719.GL7074@mdounin.ru> <5265A090.4050709@csdoc.com> Message-ID: <20131021223305.GP7074@mdounin.ru> Hello! On Tue, Oct 22, 2013 at 12:45:52AM +0300, Gena Makhomed wrote: [...] Извините, я устал разжёвывать раз за разом одно и то же, поэтому воздержусь от продолжения данной дискуссии. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue Oct 22 10:33:32 2013 From: nginx-forum at nginx.us (ulrith) Date: Tue, 22 Oct 2013 06:33:32 -0400 Subject: =?UTF-8?B?0LfQsNC/0YDQtdGC0LjRgtGMINCy0YHQtdGFINC60YDQvtC80LUg0LHQvtGC0L4=?= =?UTF-8?B?0LIg0Y/QvdC00LXQutGB0LA=?= Message-ID: <5c14690022d16f837d0e93db30c2da6f.NginxMailingListRussian@forum.nginx.org> Всем привет! Помогите новичку?у нас на сайт идёт DDOS-атака. Чтобы не ложился сервер, пришлось отключить сайт директивой deny all; Теперь надо сделать так чтобы боты Яндекса смоли считать с сайта robots.txt и узнать о новом домене. Гуглил и яндексил и пока не смог понять как это сделать. То есть как я понимаю перед директивой deny all; мне нужно поставить некую allow, которая разрешит подключение со строкой User-agent в которой есть вхождение "Yandex". В иделе, разрешит только для файла /robots.txt... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,243975#msg-243975 From chipitsine at gmail.com Tue Oct 22 10:44:51 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 22 Oct 2013 16:44:51 +0600 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: <5c14690022d16f837d0e93db30c2da6f.NginxMailingListRussian@forum.nginx.org> References: <5c14690022d16f837d0e93db30c2da6f.NginxMailingListRussian@forum.nginx.org> Message-ID: return 503 сделайте, это нестрашно, вы не выпадете из поисковой выдачи. Яндекс любит приходить не только с User-Agent, по которому видно бота, но и с "обычным пользовательским", если он видит, что вы подстраиваетесь под поисковых ботов, в этом случае вы можете потерять позиции в поисковой выдаче. Мы однажды неаккуратно заблокировали ботнет, и Яндекс нас ненадолго стал любить меньше, чем раньше. Потом все вернулось. 22 октября 2013 г., 16:33 пользователь ulrith написал: > Всем привет! > > Помогите новичку--у нас на сайт идёт DDOS-атака. Чтобы не ложился сервер, > пришлось отключить сайт директивой deny all; > > Теперь надо сделать так чтобы боты Яндекса смоли считать с сайта robots.txt > и узнать о новом домене. Гуглил и яндексил и пока не смог понять как это > сделать. > > То есть как я понимаю перед директивой deny all; мне нужно поставить некую > allow, которая разрешит подключение со строкой User-agent в которой есть > вхождение "Yandex". В иделе, разрешит только для файла /robots.txt... > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,243975#msg-243975 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Tue Oct 22 10:51:07 2013 From: nginx-forum at nginx.us (ulrith) Date: Tue, 22 Oct 2013 06:51:07 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: References: Message-ID: <5c9bfec93de61075e0a6ae015a1e86c6.NginxMailingListRussian@forum.nginx.org> Илья, спасибо конечно за советы, но я бы хотел получить ответ именно на свой вопрос. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,243977#msg-243977 From hunter at comsys.com.ua Tue Oct 22 10:53:21 2013 From: hunter at comsys.com.ua (Sergey Smitienko) Date: Tue, 22 Oct 2013 13:53:21 +0300 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: <5c9bfec93de61075e0a6ae015a1e86c6.NginxMailingListRussian@forum.nginx.org> References: <5c9bfec93de61075e0a6ae015a1e86c6.NginxMailingListRussian@forum.nginx.org> Message-ID: <52665921.1070402@comsys.com.ua> Сделать location /robots.txt с allow from all. > Илья, спасибо конечно за советы, но я бы хотел получить ответ именно на свой > вопрос. From nginx-forum at nginx.us Tue Oct 22 11:14:18 2013 From: nginx-forum at nginx.us (ulrith) Date: Tue, 22 Oct 2013 07:14:18 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: <52665921.1070402@comsys.com.ua> References: <52665921.1070402@comsys.com.ua> Message-ID: Sergey Smitienko Wrote: ------------------------------------------------------- > Сделать location /robots.txt с allow from all. Вот тут-то и загвоздка. Вот так у меня сейчас выглядит конфиг для этого сайта: server { server_name site.ru www.site.ru; deny all; listen xxx.xxx.xxx.xxx; charset CP1251; set $root_path /var/www/site/data/www/site.ru; location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { root $root_path; access_log /var/www/nginx-logs/site isp; access_log /var/www/httpd-logs/site.ru.access.log ; error_page 404 = @fallback; } location / { proxy_pass http://xxx.xxx.xxx.xxx:81; proxy_redirect http://xxx.xxx.xxx.xxx:81/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ { proxy_pass http://xxx.xxx.xxx.xxx:81; proxy_redirect http://xxx.xxx.xxx.xxx:81/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location @fallback { proxy_pass http://xxx.xxx.xxx.xxx:81; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } include /usr/local/ispmgr/etc/nginx.inc; } Вот я и не соображу никак как мне изменить это чтобы достичь моей цели. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,243979#msg-243979 From boco at ufanet.ru Tue Oct 22 11:14:17 2013 From: boco at ufanet.ru (damir bikmuhametov) Date: Tue, 22 Oct 2013 17:14:17 +0600 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: <5c14690022d16f837d0e93db30c2da6f.NginxMailingListRussian@forum.nginx.org> References: <5c14690022d16f837d0e93db30c2da6f.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131022111417.GS44442@ufanet.ru> On Tue, Oct 22, 2013 at 06:33:32AM -0400, ulrith wrote: > Помогите новичку???у нас на сайт идёт DDOS-атака. Чтобы не ложился сервер, > пришлось отключить сайт директивой deny all; лучше использовать что-то типа https://github.com/yuri-gushin/Roboo > Теперь надо сделать так чтобы боты Яндекса смоли считать с сайта robots.txt > и узнать о новом домене. Гуглил и яндексил и пока не смог понять как это > сделать. > > То есть как я понимаю перед директивой deny all; мне нужно поставить некую > allow 5.45.192.0/18 1; # yandex 5.255.192.0/18 1; # yandex 37.9.64.0/18 1; # yandex 37.140.128.0/18 1; # yandex 77.88.0.0/18 1; # yandex 84.201.128.0/18 1; # yandex 87.250.224.0/19 1; # yandex 93.158.128.0/18 1; # yandex 95.108.128.0/17 1; # yandex 130.193.32.0/19 1; # yandex 141.8.128.0/18 1; # yandex 178.154.128.0/17 1; # yandex 213.180.192.0/19 1; # yandex 72.14.192.0/18 1; # google 66.249.64.0/19 1; # google 131.253.22.0/23 1; # microsoft 131.253.32.0/20 1; # microsoft 131.253.21.0/24 1; # microsoft 131.253.24.0/21 1; # microsoft 65.52.0.0/14 1; # microsoft 157.60.0.0/16 1; # microsoft 157.54.0.0/15 1; # microsoft 157.56.0.0/14 1; # microsoft 199.30.16.0/20 1; # microsoft впишите в allow указанные выше ip yandex'а -- boco From chipitsine at gmail.com Tue Oct 22 11:25:25 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 22 Oct 2013 17:25:25 +0600 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: References: <52665921.1070402@comsys.com.ua> Message-ID: map $http_user_agent $ddos { default 1; ~*Yandex 0; } .............. location /robots.txt { if ($ddos) { return 503; } } ///////////////////// 2013/10/22 ulrith : > Sergey Smitienko Wrote: > ------------------------------------------------------- >> Сделать location /robots.txt с allow from all. > > Вот тут-то и загвоздка. Вот так у меня сейчас выглядит конфиг для этого > сайта: > > server { > server_name site.ru www.site.ru; > > deny all; > listen xxx.xxx.xxx.xxx; > charset CP1251; > set $root_path /var/www/site/data/www/site.ru; > location ~* > ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { > root $root_path; > access_log /var/www/nginx-logs/site isp; > access_log /var/www/httpd-logs/site.ru.access.log ; > error_page 404 = @fallback; > } > location / { > proxy_pass http://xxx.xxx.xxx.xxx:81; > proxy_redirect http://xxx.xxx.xxx.xxx:81/ /; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For > $proxy_add_x_forwarded_for; > proxy_set_header X-Forwarded-Proto $scheme; > proxy_set_header X-Real-IP $remote_addr; > } > location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ { > proxy_pass http://xxx.xxx.xxx.xxx:81; > proxy_redirect http://xxx.xxx.xxx.xxx:81/ /; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For > $proxy_add_x_forwarded_for; > proxy_set_header X-Forwarded-Proto $scheme; > proxy_set_header X-Real-IP $remote_addr; > } > location @fallback { > proxy_pass http://xxx.xxx.xxx.xxx:81; > proxy_set_header Host $host; > proxy_set_header X-Forwarded-For > $proxy_add_x_forwarded_for; > proxy_set_header X-Forwarded-Proto $scheme; > proxy_set_header X-Real-IP $remote_addr; > } > include /usr/local/ispmgr/etc/nginx.inc; > } > > Вот я и не соображу никак как мне изменить это чтобы достичь моей цели. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,243979#msg-243979 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Tue Oct 22 15:48:25 2013 From: nginx-forum at nginx.us (ulrith) Date: Tue, 22 Oct 2013 11:48:25 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: References: Message-ID: <9f49dcfb8314e722edb196495b25baa7.NginxMailingListRussian@forum.nginx.org> Илья Шипицин Wrote: ------------------------------------------------------- > map $http_user_agent $ddos { > default 1; > ~*Yandex 0; > } > > > .............. > > > location /robots.txt { > if ($ddos) > { > return 503; > } > > } > > ///////////////////// Вы уверены что если добавить эти два кусочка кода то оно заработает как требуется? Мне кажется что правило deny all; всё равно будет всех посылать нафиг. Как я написал выше, я новичок и с nginx не работал до DDOS-атаки. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,244001#msg-244001 From chipitsine at gmail.com Tue Oct 22 16:23:24 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 22 Oct 2013 22:23:24 +0600 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: <9f49dcfb8314e722edb196495b25baa7.NginxMailingListRussian@forum.nginx.org> References: <9f49dcfb8314e722edb196495b25baa7.NginxMailingListRussian@forum.nginx.org> Message-ID: в случае подобных сомнений (и вообще, при внедрении чего-то нового) есть универсальный вариант - почитать докуменацию, опробовать конфиг на стенде, убедиться, что все работает как надо, потом запускать в продакшен. 22 октября 2013 г., 21:48 пользователь ulrith написал: > Илья Шипицин Wrote: > ------------------------------------------------------- >> map $http_user_agent $ddos { >> default 1; >> ~*Yandex 0; >> } >> >> >> .............. >> >> >> location /robots.txt { >> if ($ddos) >> { >> return 503; >> } >> >> } >> >> ///////////////////// > > Вы уверены что если добавить эти два кусочка кода то оно заработает как > требуется? > Мне кажется что правило deny all; всё равно будет всех посылать нафиг. > Как я написал выше, я новичок и с nginx не работал до DDOS-атаки. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,244001#msg-244001 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Tue Oct 22 16:35:04 2013 From: nginx-forum at nginx.us (ulrith) Date: Tue, 22 Oct 2013 12:35:04 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: References: Message-ID: Илья Шипицин Wrote: ------------------------------------------------------- > в случае подобных сомнений (и вообще, при внедрении чего-то нового) > есть универсальный вариант - почитать докуменацию, опробовать конфиг > на стенде, убедиться, что все работает как надо, потом запускать в Спасибо за очередной совет, вы наверное очень умный человек. Но мне уже удалось решить мою проблему ясным и понятным методом от damir bikmuhametov, жаль только мой ответ ему почему-то требует модерации. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,244005#msg-244005 From chipitsine at gmail.com Tue Oct 22 16:38:25 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 22 Oct 2013 22:38:25 +0600 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: References: Message-ID: я вам предлагал сделать "return 503", это очень простой вариант. вы захотели сложный, я вам предложил сложный. вы сказали, что вы его не понимаете (зачем тогда было просить ?). мне кажется, в вашей постановке задачи заложено внутреннее противоречие, пока вы его не разрешите, ничего не получится. 22 октября 2013 г., 22:35 пользователь ulrith написал: > Илья Шипицин Wrote: > ------------------------------------------------------- >> в случае подобных сомнений (и вообще, при внедрении чего-то нового) >> есть универсальный вариант - почитать докуменацию, опробовать конфиг >> на стенде, убедиться, что все работает как надо, потом запускать в > > Спасибо за очередной совет, вы наверное очень умный человек. > > Но мне уже удалось решить мою проблему ясным и понятным методом от damir > bikmuhametov, жаль только мой ответ ему почему-то требует модерации. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243975,244005#msg-244005 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Wed Oct 23 06:36:00 2013 From: nginx-forum at nginx.us (SM2141) Date: Wed, 23 Oct 2013 02:36:00 -0400 Subject: =?UTF-8?B?0KHRgtCw0YLQuNGB0YLQuNC60LAg0L7RgtCy0LXRgtC+0LIg0L3QsCBodHRwINC3?= =?UTF-8?B?0LDQv9GA0L7RgdGLINGF0L7RgdGC0LA=?= Message-ID: Есть хост, который периодически посылает http запросы веб-серверу. В логах могу отследить это. Но что отвечает мой сервер этому хосту не могу нигде найти. Есть ли такая возможность посмотреть на моем nignix? Где это можно посмотреть, а именно с каким кодом этот запрос выполняется и выполняется ли он вообще, пожалуйста поподробнее, если можно? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244020,244020#msg-244020 From bogdar at gmail.com Wed Oct 23 06:43:17 2013 From: bogdar at gmail.com (Bogdan) Date: Wed, 23 Oct 2013 09:43:17 +0300 Subject: =?UTF-8?B?UmU6INCh0YLQsNGC0LjRgdGC0LjQutCwINC+0YLQstC10YLQvtCyINC90LAgaHR0?= =?UTF-8?B?cCDQt9Cw0L/RgNC+0YHRiyDRhdC+0YHRgtCw?= In-Reply-To: References: Message-ID: см. http://nginx.org/ru/docs/http/ngx_http_log_module.html 2013/10/23 SM2141 > Есть хост, который периодически посылает http запросы веб-серверу. В логах > могу отследить это. Но что отвечает мой сервер этому хосту не могу нигде > найти. Есть ли такая возможность посмотреть на моем nignix? Где это можно > посмотреть, а именно с каким кодом этот запрос выполняется и выполняется ли > он вообще, пожалуйста поподробнее, если можно? > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,244020,244020#msg-244020 > > _______________________________________________ > 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 nginx-forum at nginx.us Wed Oct 23 06:50:22 2013 From: nginx-forum at nginx.us (SM2141) Date: Wed, 23 Oct 2013 02:50:22 -0400 Subject: =?UTF-8?B?UmU6INCh0YLQsNGC0LjRgdGC0LjQutCwINC+0YLQstC10YLQvtCyINC90LAgaHR0?= =?UTF-8?B?cCDQt9Cw0L/RgNC+0YHRiyDRhdC+0YHRgtCw?= In-Reply-To: References: Message-ID: Спасибо, но я не очень силен в ngnix. Есть ли пример с готовой конфигурацией или последовательностью действий? access.log у меня есть и он показывает все запросы с хоста, а где посмотреть ответы моего сервера ему. Буду очень признателен. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244020,244022#msg-244022 From nginx-forum at nginx.us Wed Oct 23 06:50:25 2013 From: nginx-forum at nginx.us (solid-7) Date: Wed, 23 Oct 2013 02:50:25 -0400 Subject: =?UTF-8?B?cHJveHkgcGFzcyDQtNC70Y8gVG9tY2F0?= Message-ID: Доброго дня нужна помощь - есть статическая старница html, отрабатывает нормально, нужно чтобы при добавлении в адресной строке /portal шел проброс на 8080, проброс происходит но страница выдает 404 ошибку конфиг server { listen 80; server_name ; location / { #proxy_pass http://localhost:8080/; root /var/www/def; index index.php index.html index.htm; } location /portal { proxy_pass http://192.168.122.6:8080/; proxy_redirect http://192.168.122.6:8080/ /; #proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244023,244023#msg-244023 From admin at sysadmins.el.kg Wed Oct 23 08:24:54 2013 From: admin at sysadmins.el.kg (admin at sysadmins.el.kg) Date: Wed, 23 Oct 2013 14:24:54 +0600 Subject: =?UTF-8?B?UmU6IHByb3h5IHBhc3Mg0LTQu9GPIFRvbWNhdA==?= In-Reply-To: References: Message-ID: <526787D6.1090202@sysadmins.el.kg> 23.10.2013 12:50, solid-7 пишет: > Доброго дня > > нужна помощь - есть статическая старница html, отрабатывает нормально, нужно > чтобы при добавлении в адресной строке /portal шел проброс на 8080, проброс > происходит но страница выдает 404 ошибку > > конфиг > > server { > listen 80; > server_name ; > > > location / { > #proxy_pass http://localhost:8080/; > root /var/www/def; > index index.php index.html index.htm; > > } > > > location /portal { > > proxy_pass http://192.168.122.6:8080/; > proxy_redirect http://192.168.122.6:8080/ /; > #proxy_redirect off; > > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > > > } > > > error_page 404 /404.html; > location = /404.html { > root /usr/share/nginx/html; > } > > # redirect server error pages to the static page /50x.html > # > error_page 500 502 503 504 /50x.html; > location = /50x.html { > root /usr/share/nginx/html; > } > > > } > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244023,244023#msg-244023 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru У меня так работает отлично, правда с корневого url location / { proxy_redirect off; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:8080/; } Помнится чтобы все это правильно работало в подпапке, нужно донастроить tomcat, чтобы он мог правильно обрабатывать то, что пришлет ему nginx. Для этого в файле server.xml tomcat'а нужно найти и привести к такому виду следующие части: ... ... internet hotspot > login .
.. .. .. .. .
. . . . . .
..
Please log on to use the internet hotspot service

.. ... .... ... ... ..
.....
...... ...... ...... ....... ........ .......... ........ ........ .......... ........ ........ .......... ........ .......
login
password
 
.....
....
mikrotik
. .
Powered by MikroTik RouterOS
. .
-----Original Message----- From: nginx-ru-bounces at nginx.org [mailto:nginx-ru-bounces at nginx.org] On Behalf Of Maxim Dounin Sent: Friday, October 18, 2013 7:23 PM To: nginx-ru at nginx.org Subject: Re: WISRp и UAM средствами nginx Hello! On Fri, Oct 18, 2013 at 03:28:46PM +0600, Лапочкин Константин wrote: > Добрый день. Используем Nginx для редиректа на captive-портав с наших > wifi-hotspot?ов. Пользователь, подключившись к не защищённой сети при > любом обращении в интернет по протоколам http, https перенаправляется > на наш портал, где проходит авторизацию (либо получает гостевой > доступ). Возникла задача: > что бы на клиентских устройствах с iOS (iPhone, iPad) при подключении > к нашей сети всплывало pop-UP окно с нашим порталом. > Работает это через протокол wisrp, окно называется uam(unified > authorization method). Суть метода в том, что при подключении к сети > ios запрашивает ссылку с ?User-Agent: > CaptiveNetworkSupport-200.1 wispr?. Если он получает на это 302, то, > теоретически, должно возникнуть окошко со страницей, на которую > перенаправляет 302-й код. Однако, это в nginx не работает. Проверяли, > что работает на microtik. Cнимали дамп пакетов c микротика, увидели > следующее: [...] > Что сделал: пробовал через nc слать заголовки из дампа микротика ? > работает, окно появляется. Пересобрал ngnix, что бы заменить > 302 Moved Temporarily на 302 Hotspot login required ? не помогло. Если я правильно понимаю, важно не то, как делается перенаправление, а то, что возвращается клиенту после перенаправления. Там должна быть XML'ка установленного спецификацией WISPr вида, пример можно посмотреть, например, тут: http://hotspot-connect.sourceforge.net/ -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list nginx-ru at nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Wed Oct 23 11:23:05 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 23 Oct 2013 15:23:05 +0400 Subject: =?UTF-8?B?UmU6IFdJU1JwINC4IFVBTSDRgdGA0LXQtNGB0YLQstCw0LzQuCBuZ2lueA==?= In-Reply-To: <006101cecfd7$aa4722b0$fed56810$@gmail.com> References: <002701cecbe4$7248d1c0$56da7540$@gmail.com> <20131018132257.GL2144@mdounin.ru> <006101cecfd7$aa4722b0$fed56810$@gmail.com> Message-ID: <20131023112305.GC7074@mdounin.ru> Hello! On Wed, Oct 23, 2013 at 04:07:21PM +0600, Лапочкин Константин wrote: > Ссылку, которую вы прислали посмотрел, там скорее клиентская > часть. Из дампа микротика не увидел ничего особенного при > редиректе. Вот что там происходит: [...] > > > .
> .. > .. > .. > .. > .
> . > . > . Судя по всему - вот эта форма как раз и предназначена для автоматического логина. Хотя это и не WISPr 2.0, видимо кто-то из предшественников. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Thu Oct 24 08:27:46 2013 From: nginx-forum at nginx.us (ingtar) Date: Thu, 24 Oct 2013 04:27:46 -0400 Subject: =?UTF-8?B?MiBOZ2lueCArINGA0LDQt9C90L7QtSDRiNC40YTRgNC+0LLQsNC90LjQtQ==?= Message-ID: <34c78da19b16cbc289517eac95e3eb32.NginxMailingListRussian@forum.nginx.org> Добрый день! Пытаюсь организовать схему, при которой обращения по одному из доменных имен передавались на второй сервер nginx, где применяется другое шифрование (по ГОСТ) Пытался со следующими настройками на первом сервере: location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Client-Proto $scheme; proxy_pass http://EXTERNAL_IP; } А на втором (куда проксипасит первый) настройки уже с указанием сертификатов и прочих. Страница открывается, такая связка работает, но сертификат и шифрование выдается первым. Существует возможность настроить по схеме, когда за шифрование и работы с сертификатами отвечает второй сервер nginx? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244067,244067#msg-244067 From nginx-forum at nginx.us Thu Oct 24 13:17:26 2013 From: nginx-forum at nginx.us (ulrith) Date: Thu, 24 Oct 2013 09:17:26 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: <20131022111417.GS44442@ufanet.ru> References: <20131022111417.GS44442@ufanet.ru> Message-ID: Спасибо большое за эти ip-адреса. Правда сам Яндекс не рекомендует доверять своим ip: "IP-адресов, с которых ?приходят? роботы Яндекса, тоже много, и они часто меняются. Поэтому мы не разглашаем их список и не рекомендуем использовать фильтрацию на их основе." (http://help.yandex.ru/webmaster/robot-workings/check-yandex-robots.xml) Например, вот ещё один ip-адрес, с которого Яндекс может ходит на сайт, которого у вас нет: 213.180.193.57. Это адрес сервиса Яндекс.Вебмастер. damir bikmuhametov Wrote: ------------------------------------------------------- > 5.45.192.0/18 1; # yandex > 5.255.192.0/18 1; # yandex > 37.9.64.0/18 1; # yandex > 37.140.128.0/18 1; # yandex > 77.88.0.0/18 1; # yandex > 84.201.128.0/18 1; # yandex > 87.250.224.0/19 1; # yandex > 93.158.128.0/18 1; # yandex > 95.108.128.0/17 1; # yandex > 130.193.32.0/19 1; # yandex > 141.8.128.0/18 1; # yandex > 178.154.128.0/17 1; # yandex > 213.180.192.0/19 1; # yandex > 72.14.192.0/18 1; # google > 66.249.64.0/19 1; # google > 131.253.22.0/23 1; # microsoft > 131.253.32.0/20 1; # microsoft > 131.253.21.0/24 1; # microsoft > 131.253.24.0/21 1; # microsoft > 65.52.0.0/14 1; # microsoft > 157.60.0.0/16 1; # microsoft > 157.54.0.0/15 1; # microsoft > 157.56.0.0/14 1; # microsoft > 199.30.16.0/20 1; # microsoft > > впишите в allow указанные выше ip yandex'а > > -- > boco > > _______________________________________________ > 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,243975,244002#msg-244002 From nginx-forum at nginx.us Thu Oct 24 14:02:11 2013 From: nginx-forum at nginx.us (ulrith) Date: Thu, 24 Oct 2013 10:02:11 -0400 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: References: Message-ID: Илья Шипицин Wrote: ------------------------------------------------------- > я вам предлагал сделать "return 503", это очень простой вариант. вы > захотели сложный, я вам предложил сложный. вы сказали, что вы его не > понимаете (зачем тогда было просить ?). 1) Я не хотел сложный вариант и не просил его у вас 2) Я не говорил что я его не понимаю > мне кажется, в вашей > постановке задачи заложено внутреннее противоречие, пока вы его не > разрешите, ничего не получится. 3) Всё уже давно получилось, о чём я написал в том сообщении на которое вы отвечаете. А вы странный, Илья. :) > 22 октября 2013 г., 22:35 пользователь ulrith > написал: > > Илья Шипицин Wrote: > > ------------------------------------------------------- > >> в случае подобных сомнений (и вообще, при внедрении чего-то > нового) > >> есть универсальный вариант - почитать докуменацию, опробовать > конфиг > >> на стенде, убедиться, что все работает как надо, потом запускать в > > > > Спасибо за очередной совет, вы наверное очень умный человек. > > > > Но мне уже удалось решить мою проблему ясным и понятным методом от > damir > > bikmuhametov, жаль только мой ответ ему почему-то требует > модерации. > > > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,243975,244005#msg-244005 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > 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,243975,244071#msg-244071 From nginx-forum at nginx.us Thu Oct 24 14:42:57 2013 From: nginx-forum at nginx.us (ast) Date: Thu, 24 Oct 2013 10:42:57 -0400 Subject: =?UTF-8?B?bmdpbngrd2Vic29ja2V0cywg0L/QvtGC0YDQtdCx0LvQtdC90LjQtSDQv9Cw0Lw=?= =?UTF-8?B?0Y/RgtC4?= Message-ID: <0331857a92da53441f1b212703adfdd9.NginxMailingListRussian@forum.nginx.org> Всем привет. Имеется сервер, одновременно держит порядка 15-20к вебсокетных соединений по HTTPS, rps примерно 100-200. Проблема в том, что потребляется под все это дело порядка 2-3Гб. Как мне кажется, то потребление достаточно высокое. Игрался с ssl_session_timeout, было 10m, эффекта особого не дает. Посоветуйте куда посмотреть ,что бы уменьшить аппетиты nginx? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244073,244073#msg-244073 From mdounin at mdounin.ru Thu Oct 24 16:21:51 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 24 Oct 2013 20:21:51 +0400 Subject: =?UTF-8?B?UmU6IG5naW54K3dlYnNvY2tldHMsINC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L8=?= =?UTF-8?B?0LDQvNGP0YLQuA==?= In-Reply-To: <0331857a92da53441f1b212703adfdd9.NginxMailingListRussian@forum.nginx.org> References: <0331857a92da53441f1b212703adfdd9.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131024162151.GN7074@mdounin.ru> Hello! On Thu, Oct 24, 2013 at 10:42:57AM -0400, ast wrote: > Всем привет. > > Имеется сервер, одновременно держит порядка 15-20к вебсокетных соединений по > HTTPS, rps примерно 100-200. Проблема в том, что потребляется под все это > дело порядка 2-3Гб. Как мне кажется, то потребление достаточно высокое. > Игрался с ssl_session_timeout, было 10m, эффекта особого не дает. > Посоветуйте куда посмотреть ,что бы уменьшить аппетиты nginx? Поиграться можно с proxy_buffer_size (при проксировании на каждое WebSocket-соединение выделяется два буффера соответствующего размера, один на чтение, второй - на запись). Ну и если OpenSSL старее 1.0.0, то можно попробовать обновится на 1.0.0+ и пересобрать nginx со свежим OpenSSL'ем. Тоже должно слегка помочь, на неактивных SSL-соединениях потребление памяти снижается с ~64k до ~16k на соединение. -- Maxim Dounin http://nginx.org/en/donation.html From boco at ufanet.ru Thu Oct 24 16:40:57 2013 From: boco at ufanet.ru (damir bikmuhametov) Date: Thu, 24 Oct 2013 22:40:57 +0600 Subject: =?UTF-8?B?UmU6INC30LDQv9GA0LXRgtC40YLRjCDQstGB0LXRhSDQutGA0L7QvNC1INCx0L4=?= =?UTF-8?B?0YLQvtCyINGP0L3QtNC10LrRgdCw?= In-Reply-To: References: <20131022111417.GS44442@ufanet.ru> Message-ID: <20131024164057.GU44442@ufanet.ru> On Thu, Oct 24, 2013 at 09:17:26AM -0400, ulrith wrote: > Например, вот ещё один ip-адрес, с которого Яндекс может ходит на > сайт, которого у вас нет: 213.180.193.57. вообще-то, есть: >> 213.180.192.0/19 1; # yandex -- boco From nginx-forum at nginx.us Thu Oct 24 17:38:10 2013 From: nginx-forum at nginx.us (tfox) Date: Thu, 24 Oct 2013 13:38:10 -0400 Subject: =?UTF-8?B?0JrQsNC6INGD0YHRgtCw0L3QvtCy0LjRgtGMINC80L7QtNGD0LvRjCBodHRwIGd6?= =?UTF-8?B?aXAgc3RhdGljIG1vZHVsZT8=?= Message-ID: Здравствуйте. Мне необходимо установить модуль http_gzip_static_module FreeBSD 9.1 Nginx/1.4.2 Как это сделать? Читал, что нужно как то пересобирать/перекомпилировать из портов, но не понял. Я новичок. Помогите пожалуйста. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244079,244079#msg-244079 From nginx-ru at sadok.spb.ru Thu Oct 24 17:43:59 2013 From: nginx-ru at sadok.spb.ru (Dmitry Ivanov) Date: Thu, 24 Oct 2013 21:43:59 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRg9GB0YLQsNC90L7QstC40YLRjCDQvNC+0LTRg9C70YwgaHR0?= =?UTF-8?B?cCBnemlwIHN0YXRpYyBtb2R1bGU/?= In-Reply-To: References: Message-ID: <1119325074.20131024214359@sadok.spb.ru> Здравствуйте, tfox. Вы писали 24 октября 2013 г., 21:38:10: > Здравствуйте. > Мне необходимо установить модуль http_gzip_static_module > FreeBSD 9.1 > Nginx/1.4.2 > Как это сделать? Читал, что нужно как то пересобирать/перекомпилировать из > портов, но не понял. Я новичок. Помогите пожалуйста. cd /usr/ports/www/nginx make config (там всякие чекбокссы понажимать) make make deinstall && make reinstall && /usr/local/etc/rc.d/nginx restart -- С уважением, Dmitry mailto:nginx-ru at sadok.spb.ru From nginx-ru at sadok.spb.ru Thu Oct 24 17:55:17 2013 From: nginx-ru at sadok.spb.ru (Dmitry Ivanov) Date: Thu, 24 Oct 2013 21:55:17 +0400 Subject: sub_filter Message-ID: <1223989325.20131024215517@sadok.spb.ru> Здравствуйте, All. Ситуация: бэкенд возвращает ответ с Transfer-Encoding: chunked Повлиять на бэкенд нет никакой возможности. Можно ли заставить работать sub_filter в такой ситуации перед отправкой ответа клиенту? Кода бэкенд возвращает "нормальный" ответ - все работает. Конфига простейшая location / { proxy_pass http://to-site/; proxy_set_header Host "this.site"; sub_filter "www.this.ru" "not.this.ru"; sub_filter_once off; sub_filter_types text/css text/xml; } -- С уважением, Dmitry From mdounin at mdounin.ru Thu Oct 24 18:21:41 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 24 Oct 2013 22:21:41 +0400 Subject: sub_filter In-Reply-To: <1223989325.20131024215517@sadok.spb.ru> References: <1223989325.20131024215517@sadok.spb.ru> Message-ID: <20131024182141.GQ7074@mdounin.ru> Hello! On Thu, Oct 24, 2013 at 09:55:17PM +0400, Dmitry Ivanov wrote: > Здравствуйте, All. > > Ситуация: бэкенд возвращает ответ с Transfer-Encoding: chunked > > Повлиять на бэкенд нет никакой возможности. > > Можно ли заставить работать sub_filter в такой ситуации перед > отправкой ответа клиенту? > > Кода бэкенд возвращает "нормальный" ответ - все работает. > > Конфига простейшая > > location / { > proxy_pass http://to-site/; > proxy_set_header Host "this.site"; > sub_filter "www.this.ru" "not.this.ru"; > sub_filter_once off; > sub_filter_types text/css text/xml; > } Должно работать без проблем, по крайней мере в 1.5.3+. Если вдруг не работает - заносите debug log и dump ответа бекенда. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-ru at sadok.spb.ru Thu Oct 24 18:27:37 2013 From: nginx-ru at sadok.spb.ru (Dmitry Ivanov) Date: Thu, 24 Oct 2013 22:27:37 +0400 Subject: sub_filter In-Reply-To: <20131024182141.GQ7074@mdounin.ru> References: <1223989325.20131024215517@sadok.spb.ru> <20131024182141.GQ7074@mdounin.ru> Message-ID: <1882051228.20131024222737@sadok.spb.ru> Здравствуйте, Maxim. Вы писали 24 октября 2013 г., 22:21:41: > Должно работать без проблем, по крайней мере в 1.5.3+. Если вдруг > не работает - заносите debug log и dump ответа бекенда. Извиняюсь, копнул глубже - там еще и gzip. Не лечится, как я понимаю? Глупый, наверное, вопрос: а можно всё это принять от бэкенда, расжать, поковыряться внутри и отдать клиенту? Достаточно направить к документации (честно, не нашел). -- С уважением, Dmitry mailto:nginx-ru at sadok.spb.ru From chipitsine at gmail.com Thu Oct 24 18:29:24 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Fri, 25 Oct 2013 00:29:24 +0600 Subject: sub_filter In-Reply-To: <1882051228.20131024222737@sadok.spb.ru> References: <1223989325.20131024215517@sadok.spb.ru> <20131024182141.GQ7074@mdounin.ru> <1882051228.20131024222737@sadok.spb.ru> Message-ID: proxy_set_header Accept-Encoding identity; 25 октября 2013 г., 0:27 пользователь Dmitry Ivanov написал: > Здравствуйте, Maxim. > > Вы писали 24 октября 2013 г., 22:21:41: > >> Должно работать без проблем, по крайней мере в 1.5.3+. Если вдруг >> не работает - заносите debug log и dump ответа бекенда. > > Извиняюсь, копнул глубже - там еще и gzip. Не лечится, как я понимаю? > > Глупый, наверное, вопрос: а можно всё это принять от бэкенда, расжать, > поковыряться внутри и отдать клиенту? > > Достаточно направить к документации (честно, не нашел). > > > -- > С уважением, > Dmitry mailto:nginx-ru at sadok.spb.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From mdounin at mdounin.ru Thu Oct 24 18:39:47 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Thu, 24 Oct 2013 22:39:47 +0400 Subject: sub_filter In-Reply-To: <1882051228.20131024222737@sadok.spb.ru> References: <1223989325.20131024215517@sadok.spb.ru> <20131024182141.GQ7074@mdounin.ru> <1882051228.20131024222737@sadok.spb.ru> Message-ID: <20131024183946.GR7074@mdounin.ru> Hello! On Thu, Oct 24, 2013 at 10:27:37PM +0400, Dmitry Ivanov wrote: > Здравствуйте, Maxim. > > Вы писали 24 октября 2013 г., 22:21:41: > > > Должно работать без проблем, по крайней мере в 1.5.3+. Если вдруг > > не работает - заносите debug log и dump ответа бекенда. > > Извиняюсь, копнул глубже - там еще и gzip. Не лечится, как я понимаю? > > Глупый, наверное, вопрос: а можно всё это принять от бэкенда, расжать, > поковыряться внутри и отдать клиенту? > > Достаточно направить к документации (честно, не нашел). Если бекенд не совсем ушибленный наголову - то просто убрать из заголовков Accept-Encoding, proxy_set_header Accept-Encoding ""; Если совсем, то добавить в конструкцию gunzip на дополнительном уровне проксирования. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-ru at sadok.spb.ru Thu Oct 24 18:42:02 2013 From: nginx-ru at sadok.spb.ru (Dmitry Ivanov) Date: Thu, 24 Oct 2013 22:42:02 +0400 Subject: sub_filter In-Reply-To: <20131024183946.GR7074@mdounin.ru> References: <1223989325.20131024215517@sadok.spb.ru> <20131024182141.GQ7074@mdounin.ru> <1882051228.20131024222737@sadok.spb.ru> <20131024183946.GR7074@mdounin.ru> Message-ID: <248424887.20131024224202@sadok.spb.ru> Здравствуйте, Maxim. Вы писали 24 октября 2013 г., 22:39:47: > proxy_set_header Accept-Encoding ""; Ох. Мозги зациклились. Спасибо! -- С уважением, Dmitry mailto:nginx-ru at sadok.spb.ru From nginx-ru at sadok.spb.ru Thu Oct 24 18:42:31 2013 From: nginx-ru at sadok.spb.ru (Dmitry Ivanov) Date: Thu, 24 Oct 2013 22:42:31 +0400 Subject: sub_filter In-Reply-To: References: <1223989325.20131024215517@sadok.spb.ru> <20131024182141.GQ7074@mdounin.ru> <1882051228.20131024222737@sadok.spb.ru> Message-ID: <602192024.20131024224231@sadok.spb.ru> Здравствуйте, Илья. Вы писали 24 октября 2013 г., 22:29:24: > proxy_set_header Accept-Encoding identity; Да. Я сеглдня тугой =) -- С уважением, Dmitry mailto:nginx-ru at sadok.spb.ru From shadow at ekb-lug.ru Fri Oct 25 08:49:32 2013 From: shadow at ekb-lug.ru (Shadow) Date: Fri, 25 Oct 2013 14:49:32 +0600 Subject: =?UTF-8?B?0JjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LUg0LrQvtC80LHQuNC90LDRhtC40Lgg?= =?UTF-8?B?0LjQtyDQtNCy0YPRhSDQv9C10YDQtdC80LXQvdC90YvRhSDQsiDQutCw0Yc=?= =?UTF-8?B?0LXRgdGC0LLQtSDQutC70Y7Rh9CwINC00LvRjyBsaW1pdF9yZXFfem9uZQ==?= Message-ID: Доброе время суток. Есть ли способ указать в качестве ключа для limit_req_zone комбинацию из двух переменных? Стоит задача - ограничить количество запросов, приходящих на сервис, идентифицируя пользователя по двум показателям - комбинации ip-адреса и куки. Директива limit_req_zone должна использоваться в контексте http, но в этом контексте не работает set. Пытались обойтись такой конструкцией: map $remote_addr $testvar { default $remote_addr$cookie_test; } ... но в качестве результирующего значения можно указывать только одну переменную. Изыскания зашли в тупик. Неужели такого способа нет? From onokonem at gmail.com Fri Oct 25 12:27:28 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Fri, 25 Oct 2013 16:27:28 +0400 Subject: =?UTF-8?B?0LTQvtGB0YLRg9C/INC6INC60L7QvdGE0LjQs9GD0YDQsNGG0LjQuCDQuNC3INCy?= =?UTF-8?B?0YHRgtGA0L7QtdC90L3QvtCz0L4g0L/QtdGA0LvQsA==?= Message-ID: Добрый день! Хочу загрузить свой модуль во встроенный перл, и при загрузке выполнить некие действия. Параметры для этих действий хочу описать в nginx.conf. И не понимаю, как это сделать. В смысле - не понимаю, доступна ли конфигурация сервера из перла на этапе загрузки модуля, и, если да, то в каком виде. гугл не помог - видимо, я не знаю правильных ключевых слов. Снимите с ручника, пожалуйста. Спасибо! С уважением, Даниил Подольский From vbart at nginx.com Fri Oct 25 13:46:35 2013 From: vbart at nginx.com (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Fri, 25 Oct 2013 17:46:35 +0400 Subject: =?UTF-8?B?UmU6ICDQmNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtSDQutC+0LzQsdC40L3QsNGG?= =?UTF-8?B?0LjQuCDQuNC3INC00LLRg9GFINC/0LXRgNC10LzQtdC90L3Ri9GFINCyINC6?= =?UTF-8?B?0LDRh9C10YHRgtCy0LUg0LrQu9GO0YfQsCDQtNC70Y8gbGltaXRfcmVxX3pv?= =?UTF-8?B?bmU=?= In-Reply-To: References: Message-ID: <201310251746.35828.vbart@nginx.com> On Friday 25 October 2013 12:49:32 Shadow wrote: > Доброе время суток. > > Есть ли способ указать в качестве ключа для limit_req_zone комбинацию > из двух переменных? > > Стоит задача - ограничить количество запросов, приходящих на сервис, > идентифицируя пользователя по двум показателям - комбинации ip-адреса > и куки. Директива limit_req_zone должна использоваться в контексте > http, но в этом контексте не работает set. Пытались обойтись такой > конструкцией: > > map $remote_addr $testvar { > default $remote_addr$cookie_test; > } > > ... но в качестве результирующего значения можно указывать только одну > переменную. > > Изыскания зашли в тупик. Неужели такого способа нет? Используйте set на уровне server. -- Валентин Бартенев From nginx-forum at nginx.us Fri Oct 25 14:54:45 2013 From: nginx-forum at nginx.us (ast) Date: Fri, 25 Oct 2013 10:54:45 -0400 Subject: =?UTF-8?B?UmU6IG5naW54K3dlYnNvY2tldHMsINC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L8=?= =?UTF-8?B?0LDQvNGP0YLQuA==?= In-Reply-To: <20131024162151.GN7074@mdounin.ru> References: <20131024162151.GN7074@mdounin.ru> Message-ID: <2f9b4747e85c49aee02d4893e9af7592.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Thu, Oct 24, 2013 at 10:42:57AM -0400, ast wrote: > > > Всем привет. > > > > Имеется сервер, одновременно держит порядка 15-20к вебсокетных > соединений по > > HTTPS, rps примерно 100-200. Проблема в том, что потребляется под > все это > > дело порядка 2-3Гб. Как мне кажется, то потребление достаточно > высокое. > > Игрался с ssl_session_timeout, было 10m, эффекта особого не дает. > > Посоветуйте куда посмотреть ,что бы уменьшить аппетиты nginx? > > Поиграться можно с proxy_buffer_size (при проксировании на каждое > WebSocket-соединение выделяется два буффера соответствующего > размера, один на чтение, второй - на запись). > > Ну и если OpenSSL старее 1.0.0, то можно попробовать обновится на > 1.0.0+ и пересобрать nginx со свежим OpenSSL'ем. Тоже должно > слегка помочь, на неактивных SSL-соединениях потребление памяти > снижается с ~64k до ~16k на соединение. > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru OpenSSL стоит 1.0.1 14 Mar 2012, по идее мне не поможет. А вот proxy_buffer_size как-то до конца не понимаю всю роль этой директивы, а пальцем в небо не хочется пробовать. Может посоветуете насколько можно уменьшить размеры? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244073,244115#msg-244115 From mdounin at mdounin.ru Fri Oct 25 14:56:43 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 25 Oct 2013 18:56:43 +0400 Subject: =?UTF-8?B?UmU6INC00L7RgdGC0YPQvyDQuiDQutC+0L3RhNC40LPRg9GA0LDRhtC40Lgg0Lg=?= =?UTF-8?B?0Lcg0LLRgdGC0YDQvtC10L3QvdC+0LPQviDQv9C10YDQu9Cw?= In-Reply-To: References: Message-ID: <20131025145643.GH7074@mdounin.ru> Hello! On Fri, Oct 25, 2013 at 04:27:28PM +0400, Daniel Podolsky wrote: > Добрый день! > > Хочу загрузить свой модуль во встроенный перл, и при загрузке > выполнить некие действия. > > Параметры для этих действий хочу описать в nginx.conf. > > И не понимаю, как это сделать. В смысле - не понимаю, доступна ли > конфигурация сервера из перла на этапе загрузки модуля, и, если да, то > в каком виде. > > гугл не помог - видимо, я не знаю правильных ключевых слов. > > Снимите с ручника, пожалуйста. http://nginx.org/r/env -- Maxim Dounin http://nginx.org/en/donation.html From onokonem at gmail.com Fri Oct 25 15:31:18 2013 From: onokonem at gmail.com (Daniel Podolsky) Date: Fri, 25 Oct 2013 19:31:18 +0400 Subject: =?UTF-8?B?UmU6INC00L7RgdGC0YPQvyDQuiDQutC+0L3RhNC40LPRg9GA0LDRhtC40Lgg0Lg=?= =?UTF-8?B?0Lcg0LLRgdGC0YDQvtC10L3QvdC+0LPQviDQv9C10YDQu9Cw?= In-Reply-To: <20131025145643.GH7074@mdounin.ru> References: <20131025145643.GH7074@mdounin.ru> Message-ID: > http://nginx.org/r/env О, спасибо! Жаль, что оно не на уровне http, можно было бы конфигурацию класть рядом с perl_require. Как думаете - на это есть серьезные причины, или просто так сложилось? Если просто сложилось - я пойду feature request напишу :) From mdounin at mdounin.ru Fri Oct 25 16:43:39 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 25 Oct 2013 20:43:39 +0400 Subject: =?UTF-8?B?UmU6INC00L7RgdGC0YPQvyDQuiDQutC+0L3RhNC40LPRg9GA0LDRhtC40Lgg0Lg=?= =?UTF-8?B?0Lcg0LLRgdGC0YDQvtC10L3QvdC+0LPQviDQv9C10YDQu9Cw?= In-Reply-To: References: <20131025145643.GH7074@mdounin.ru> Message-ID: <20131025164339.GI7074@mdounin.ru> Hello! On Fri, Oct 25, 2013 at 07:31:18PM +0400, Daniel Podolsky wrote: > > http://nginx.org/r/env > О, спасибо! > > Жаль, что оно не на уровне http, можно было бы конфигурацию класть > рядом с perl_require. > > Как думаете - на это есть серьезные причины, или просто так сложилось? > Если просто сложилось - я пойду feature request напишу :) Environment - глобальный, потому и на глобальном уровне. В отличии от перла, поддержка которого является частью http. Если хочется рядом с perl_require - то можно сделать другим perl_require с нужным именем конфигурационного модуля. -- Maxim Dounin http://nginx.org/en/donation.html From mdounin at mdounin.ru Fri Oct 25 16:49:24 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Fri, 25 Oct 2013 20:49:24 +0400 Subject: =?UTF-8?B?UmU6IG5naW54K3dlYnNvY2tldHMsINC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L8=?= =?UTF-8?B?0LDQvNGP0YLQuA==?= In-Reply-To: <2f9b4747e85c49aee02d4893e9af7592.NginxMailingListRussian@forum.nginx.org> References: <20131024162151.GN7074@mdounin.ru> <2f9b4747e85c49aee02d4893e9af7592.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131025164924.GJ7074@mdounin.ru> Hello! On Fri, Oct 25, 2013 at 10:54:45AM -0400, ast wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Hello! > > > > On Thu, Oct 24, 2013 at 10:42:57AM -0400, ast wrote: > > > > > Всем привет. > > > > > > Имеется сервер, одновременно держит порядка 15-20к вебсокетных > > соединений по > > > HTTPS, rps примерно 100-200. Проблема в том, что потребляется под > > все это > > > дело порядка 2-3Гб. Как мне кажется, то потребление достаточно > > высокое. > > > Игрался с ssl_session_timeout, было 10m, эффекта особого не дает. > > > Посоветуйте куда посмотреть ,что бы уменьшить аппетиты nginx? > > > > Поиграться можно с proxy_buffer_size (при проксировании на каждое > > WebSocket-соединение выделяется два буффера соответствующего > > размера, один на чтение, второй - на запись). > > > > Ну и если OpenSSL старее 1.0.0, то можно попробовать обновится на > > 1.0.0+ и пересобрать nginx со свежим OpenSSL'ем. Тоже должно > > слегка помочь, на неактивных SSL-соединениях потребление памяти > > снижается с ~64k до ~16k на соединение. > > OpenSSL стоит 1.0.1 14 Mar 2012, по идее мне не поможет. > > А вот proxy_buffer_size как-то до конца не понимаю всю роль этой директивы, > а пальцем в небо не хочется пробовать. Может посоветуете насколько можно > уменьшить размеры? Минимум - чтобы заголовок ответа бекенда влезал в буфер. По умолчанию там 4k, вполне разумное значение. -- Maxim Dounin http://nginx.org/en/donation.html From zmey1992 at ya.ru Fri Oct 25 22:34:53 2013 From: zmey1992 at ya.ru (=?koi8-r?B?98HTyczYxdcgIlptZXkhIiDvzMXH?=) Date: Sat, 26 Oct 2013 02:34:53 +0400 Subject: =?UTF-8?B?UmU6INCh0YLQsNGC0LjRgdGC0LjQutCwINC+0YLQstC10YLQvtCyINC90LAgaHR0?= =?UTF-8?B?cCDQt9Cw0L/RgNC+0YHRiyDRhdC+0YHRgtCw?= In-Reply-To: References: Message-ID: <116211382740493@web11j.yandex.ru> Код ответа уже есть в логе. Вам нужно тело ответа? 23.10.2013, 10:50, "SM2141" : > Спасибо, но я не очень силен в ngnix. Есть ли пример с готовой конфигурацией > или последовательностью действий? access.log у меня есть и он показывает все > запросы с хоста, а где посмотреть ответы моего сервера ему. Буду очень > признателен. > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244020,244022#msg-244022 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From vbart at nginx.com Sun Oct 27 11:18:31 2013 From: vbart at nginx.com (=?utf-8?b?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Sun, 27 Oct 2013 15:18:31 +0400 Subject: =?UTF-8?B?UmU6ICDQktC+0L/RgNC+0YEg0L/QviBjbGllbnQgYm9keSBpbiBmaWxlIG9ubHkg?= =?UTF-8?B?0LIg0LrQvtC90YLQtdC60YHRgtC1IGZpbGUgdXBsb2Fk?= In-Reply-To: References: <20131013230723.GA56471@mdounin.ru> <20131014140300.GE2144@mdounin.ru> Message-ID: <201310271518.31357.vbart@nginx.com> On Tuesday 15 October 2013 09:29:55 Vadim Lazovskiy wrote: > Здравствуйте. > > Директива client_body_in_file_only как раз предназначена для того, > > > чтобы лишний раз не гонять тело запроса в рамках одной машины, а > > записать его на диск и передать на обработку бекенду уже файл. И > > та же функциональность используется в модуле DAV, но уже в рамках > > самого nginx'а. > > Достаточно сомнительная экономия. > PHP, например, этот файл прочитает и все равно запишет свой(-и) > отдельный(-ые) - то что извлек из тела запроса. [..] Так и не передавайте ему тело запроса. http://nginx.org/r/fastcgi_pass_request_body/ru http://nginx.org/r/proxy_pass_request_body/ru http://nginx.org/r/proxy_set_body/ru > > Ну это так, ностальгия по upload-module Валерия Холодкова. Единственное, что делал этот модуль - парсил multipart/form-data. Всё остальное делается средствами nginx из коробки. -- Валентин Бартенев From nginx-forum at nginx.us Sun Oct 27 12:37:19 2013 From: nginx-forum at nginx.us (Vipper) Date: Sun, 27 Oct 2013 08:37:19 -0400 Subject: =?UTF-8?B?0JfQsNCz0LvRg9GI0LrQsCDQstC80LXRgdGC0L4g0L7RgtGB0YPRgtGB0YLQstGD?= =?UTF-8?B?0Y7RidC10Lkg0LrQsNGA0YLQuNC90LrQuC4=?= Message-ID: <63a2c66858d814b6ee6b39c33f2919e9.NginxMailingListRussian@forum.nginx.org> Доброго времени суток! Господа, помогите пожалуйста правильно решить вопрос. Гугление и чтение мануалов по этому вопросу привело к каше в голове и кучи сомнительных решений. У меня есть страницы, на которых в тексте встречаются логины пользователей. При наведении мышкой на них с помощью тултипа подгружается и показывается аватар юзера. Так вот очень часто возникают ситуации, когда при генерации страницы аватар еще был, а в тот момент когда навели мышой его уже нету (юзер успел удалить). В результате в логах куча записей об не найденных файлах. Все аватары хранятся в папке /photos/ИД юзера/ и только в c расширением .jpeg или .jpg Как правильно написать конфиг nginx чтобы он при условии, что картинка в папке /photos/ не найдена выдавал картинку-заглушку. Прошу прощения если некорректно описал задачу, 5 раз переписывал текст :) Очень надеюсь на вашу помощь. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244161,244161#msg-244161 From ano at bestmx.ru Sun Oct 27 14:19:02 2013 From: ano at bestmx.ru (Andrey Oktyabrskiy) Date: Sun, 27 Oct 2013 18:19:02 +0400 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+IGNsaWVudCBib2R5IGluIGZpbGUgb25seSA=?= =?UTF-8?B?0LIg0LrQvtC90YLQtdC60YHRgtC1IGZpbGUgdXBsb2Fk?= In-Reply-To: <201310271518.31357.vbart@nginx.com> References: <20131013230723.GA56471@mdounin.ru> <20131014140300.GE2144@mdounin.ru> <201310271518.31357.vbart@nginx.com> Message-ID: <526D20D6.4070503@bestmx.ru> On 27.10.2013 15:18, Валентин Бартенев wrote: >> Ну это так, ностальгия по upload-module Валерия Холодкова. > Единственное, что делал этот модуль - парсил multipart/form-data. > Всё остальное делается средствами nginx из коробки. Средствами nginx из коробки не делается докачка аплоада. From sergey.kobzar at itcraft.org Sun Oct 27 15:44:00 2013 From: sergey.kobzar at itcraft.org (Sergey Kobzar) Date: Sun, 27 Oct 2013 17:44:00 +0200 Subject: =?UTF-8?B?UmU6INCX0LDQs9C70YPRiNC60LAg0LLQvNC10YHRgtC+INC+0YLRgdGD0YLRgdGC?= =?UTF-8?B?0LLRg9GO0YnQtdC5INC60LDRgNGC0LjQvdC60Lgu?= In-Reply-To: <63a2c66858d814b6ee6b39c33f2919e9.NginxMailingListRussian@forum.nginx.org> References: <63a2c66858d814b6ee6b39c33f2919e9.NginxMailingListRussian@forum.nginx.org> Message-ID: <526D34C0.3080706@itcraft.org> On 10/27/13 14:37, Vipper wrote: > Доброго времени суток! > Господа, помогите пожалуйста правильно решить вопрос. > Гугление и чтение мануалов по этому вопросу привело к каше в голове и кучи > сомнительных решений. > > У меня есть страницы, на которых в тексте встречаются логины пользователей. > При наведении мышкой на них с помощью тултипа подгружается и показывается > аватар юзера. > > Так вот очень часто возникают ситуации, когда при генерации страницы аватар > еще был, а в тот момент когда навели мышой его уже нету (юзер успел > удалить). > В результате в логах куча записей об не найденных файлах. > > Все аватары хранятся в папке /photos/ИД юзера/ и только в c расширением > .jpeg или .jpg > > Как правильно написать конфиг nginx чтобы он при условии, что картинка в > папке /photos/ не найдена выдавал картинку-заглушку. > > Прошу прощения если некорректно описал задачу, 5 раз переписывал текст :) > Очень надеюсь на вашу помощь. location /photos/ { error_page 404 /photos/default.jpg } location /photos/default.jpg { } Как-то так. /photos/ можно заменить регулярным выражением, если хочется применять только для jpg|jpeg файлов, а под локейшн попадают другие типы файлов. From nginx-forum at nginx.us Sun Oct 27 22:19:39 2013 From: nginx-forum at nginx.us (Vipper) Date: Sun, 27 Oct 2013 18:19:39 -0400 Subject: =?UTF-8?B?UmU6INCX0LDQs9C70YPRiNC60LAg0LLQvNC10YHRgtC+INC+0YLRgdGD0YLRgdGC?= =?UTF-8?B?0LLRg9GO0YnQtdC5INC60LDRgNGC0LjQvdC60Lgu?= In-Reply-To: <526D34C0.3080706@itcraft.org> References: <526D34C0.3080706@itcraft.org> Message-ID: <4eb3dfacd4558f6568d5ea69659df6d9.NginxMailingListRussian@forum.nginx.org> Спасибо за ответ. Но что-то не очень получается.... Так как Вы написали вообще не работает. С горем пополам работает вот такой вариант: location ~ /photos/ { root /var/www/super/html; error_page 404 /photos/no_photo.gif; } location = /photos/no_photo.gif { root /var/www/super/html; expires max; } Но в error логе на каждое обращение к файлу сообщение, что он не найден. А с Мозилы аж по 2 записи. Этого я вообще понять не могу.... Может есть еще варианты как можно реализовать такую задачу? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244161,244177#msg-244177 From mdounin at mdounin.ru Sun Oct 27 22:29:41 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Mon, 28 Oct 2013 02:29:41 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQs9C70YPRiNC60LAg0LLQvNC10YHRgtC+INC+0YLRgdGD0YLRgdGC?= =?UTF-8?B?0LLRg9GO0YnQtdC5INC60LDRgNGC0LjQvdC60Lgu?= In-Reply-To: <4eb3dfacd4558f6568d5ea69659df6d9.NginxMailingListRussian@forum.nginx.org> References: <526D34C0.3080706@itcraft.org> <4eb3dfacd4558f6568d5ea69659df6d9.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131027222941.GT7074@mdounin.ru> Hello! On Sun, Oct 27, 2013 at 06:19:39PM -0400, Vipper wrote: > Спасибо за ответ. > Но что-то не очень получается.... > > Так как Вы написали вообще не работает. > С горем пополам работает вот такой вариант: > > location ~ /photos/ { > root /var/www/super/html; > error_page 404 /photos/no_photo.gif; > } > > location = /photos/no_photo.gif { > root /var/www/super/html; > expires max; > } Начните с того, что пропишите root на уровне server{}, чтобы не приходилось его дублировать в каждом location'е. Кроме того, крайне рекомендуется либо убрать модификатор "~" из "location /photos/", либо, если есть другие регулярные выражения, которые не следует обрабатывать для файлов из /photos/, использовать модификатор "^~". Подробности тут: http://nginx.org/r/location/ru > Но в error логе на каждое обращение к файлу сообщение, что он не найден. > А с Мозилы аж по 2 записи. Этого я вообще понять не могу.... > Может есть еще варианты как можно реализовать такую задачу? Данная вам рекомендация решает ту задачу, которую вы просили помочь решить - чтобы при отсутствии картинки выдавалась заглушка. Если хочется, чтобы об ошибках не писалось в лог - следует воспользоваться директивой log_not_found, см. тут: http://nginx.org/r/log_not_found/ru -- Maxim Dounin http://nginx.org/en/donation.html From dmitry.goryainov at gmail.com Sun Oct 27 22:34:45 2013 From: dmitry.goryainov at gmail.com (Dmitry) Date: Mon, 28 Oct 2013 02:34:45 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQs9C70YPRiNC60LAg0LLQvNC10YHRgtC+INC+0YLRgdGD0YLRgdGC?= =?UTF-8?B?0LLRg9GO0YnQtdC5INC60LDRgNGC0LjQvdC60Lgu?= In-Reply-To: <4eb3dfacd4558f6568d5ea69659df6d9.NginxMailingListRussian@forum.nginx.org> References: <526D34C0.3080706@itcraft.org> <4eb3dfacd4558f6568d5ea69659df6d9.NginxMailingListRussian@forum.nginx.org> Message-ID: http://nginx.org/ru/docs/http/ngx_http_core_module.html#log_not_found или попробуйте error_page 404 =200 /photos/no_photo.gif; -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Mon Oct 28 09:58:26 2013 From: nginx-forum at nginx.us (Vipper) Date: Mon, 28 Oct 2013 05:58:26 -0400 Subject: =?UTF-8?B?UmU6INCX0LDQs9C70YPRiNC60LAg0LLQvNC10YHRgtC+INC+0YLRgdGD0YLRgdGC?= =?UTF-8?B?0LLRg9GO0YnQtdC5INC60LDRgNGC0LjQvdC60Lgu?= In-Reply-To: <20131027222941.GT7074@mdounin.ru> References: <20131027222941.GT7074@mdounin.ru> Message-ID: <0e08afcf824ba8324e5c82e70314da7b.NginxMailingListRussian@forum.nginx.org> Спасибо за пояснения. Сделал так: location ^~ /photos/ { error_page 404 /photos/no_photo.gif; log_not_found off; } location = /photos/no_photo.gif { expires max; } Если писать location /photos/ то не работает. Поясните мне пожалуйста последний момент. Почему при одном обращении к несуществующей картинке в access лог пишутся ДВЕ записи? Если разрешить error лог, то и туда тоже. Я понять этого не могу. При этом картинка подменяется как положено. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244161,244193#msg-244193 From nginx-forum at nginx.us Mon Oct 28 09:59:03 2013 From: nginx-forum at nginx.us (Vipper) Date: Mon, 28 Oct 2013 05:59:03 -0400 Subject: =?UTF-8?B?UmU6INCX0LDQs9C70YPRiNC60LAg0LLQvNC10YHRgtC+INC+0YLRgdGD0YLRgdGC?= =?UTF-8?B?0LLRg9GO0YnQtdC5INC60LDRgNGC0LjQvdC60Lgu?= In-Reply-To: References: Message-ID: <330e5c8ca35ae322b8fa70dffe89e50e.NginxMailingListRussian@forum.nginx.org> Огромное спасибо. На этом варианте и остановлюсь. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244161,244194#msg-244194 From nginx-forum at nginx.us Mon Oct 28 16:34:33 2013 From: nginx-forum at nginx.us (buddha) Date: Mon, 28 Oct 2013 12:34:33 -0400 Subject: =?UTF-8?B?0JzQtdC00LvQtdC90L3QsNGPINC+0YLQtNCw0YfQsCDRgdGC0LDRgtC40LrQuA==?= Message-ID: Привет всем. Знаю что вопрос уже обсуждался - почитал, попробовал - не выходит. Есть проблема с медленной отдачей статики. Что это значит: Отдача файла(js) ~40kb за 300-400ms на drive.ru или ya 40kb за 70-90ms Т.е. разница в разы. и она ощутима. ping до сервера ~70ms до drive и ya ~ 20-30ms отдает Nginx, config: location / { sendfile on; access_log off; expires 4M; root /var/www/static } сервер находится у хетцнера. Подскажите как можно приблизить скорость отдачи к drive или ya. Если сервер, диск(хотя iowait 0.01-0.05), то подскажите на что его можно заменить Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244201,244201#msg-244201 From mdounin at mdounin.ru Mon Oct 28 20:34:32 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 29 Oct 2013 00:34:32 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQs9C70YPRiNC60LAg0LLQvNC10YHRgtC+INC+0YLRgdGD0YLRgdGC?= =?UTF-8?B?0LLRg9GO0YnQtdC5INC60LDRgNGC0LjQvdC60Lgu?= In-Reply-To: <0e08afcf824ba8324e5c82e70314da7b.NginxMailingListRussian@forum.nginx.org> References: <20131027222941.GT7074@mdounin.ru> <0e08afcf824ba8324e5c82e70314da7b.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131028203432.GW7074@mdounin.ru> Hello! On Mon, Oct 28, 2013 at 05:58:26AM -0400, Vipper wrote: > Спасибо за пояснения. > Сделал так: > location ^~ /photos/ { > error_page 404 /photos/no_photo.gif; > log_not_found off; > } > > location = /photos/no_photo.gif { > expires max; > } > > Если писать location /photos/ то не работает. > > Поясните мне пожалуйста последний момент. > Почему при одном обращении к несуществующей картинке в access лог пишутся > ДВЕ записи? Если разрешить error лог, то и туда тоже. > Я понять этого не могу. При этом картинка подменяется как положено. Если в access log'е две записи - значит браузер сделал два запроса. Почему так - отдельный вопрос, требующий разбирательств в первую очередь с браузером. E.g. он мог сделать это, если картинка используется на странице в двух местах, и из-за 404-го кода ответа он пошёл на сервер ещё раз. Можно попробовать сказать error_page 404 = /photos/no_photo.gif; (доблен модификатор "="), тогда браузеру заглушка уйдёт с кодом 200. Но это не то, чтобы очень правильный подход - лучше код ошибки в подобных ситуациях по возможности сохранять, это делает мир лучше. -- Maxim Dounin http://nginx.org/en/donation.html From n.g.i.n.x.e.r at gmail.com Mon Oct 28 23:29:25 2013 From: n.g.i.n.x.e.r at gmail.com (=?UTF-8?B?0KDQvtC80LDQvQ==?=) Date: Tue, 29 Oct 2013 03:29:25 +0400 Subject: =?UTF-8?B?0JDRgNC40YTQvNC10YLQuNGH0LXRgdC60LjQtSDQvtC/0LXRgNCw0YbQuNC4INCy?= =?UTF-8?B?IHJld3JpdGU=?= Message-ID: есть простое правило rewrite ^/discussions/page-([0-9]+)\.html /index.php?page=$1; можно ли как то вычесть из переменной $1? т.е. page-2.html будет передавать page=1 и тд -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at sysadmins.el.kg Tue Oct 29 03:23:51 2013 From: admin at sysadmins.el.kg (admin at sysadmins.el.kg) Date: Tue, 29 Oct 2013 09:23:51 +0600 Subject: =?UTF-8?B?UmU6INCc0LXQtNC70LXQvdC90LDRjyDQvtGC0LTQsNGH0LAg0YHRgtCw0YLQuNC6?= =?UTF-8?B?0Lg=?= In-Reply-To: References: Message-ID: <526F2A47.8030703@sysadmins.el.kg> Много-ли оперы на серваке и часто-ли меняется что-то в директории со статикой? 28.10.2013 22:34, buddha пишет: > Привет всем. > Знаю что вопрос уже обсуждался - почитал, попробовал - не выходит. > > Есть проблема с медленной отдачей статики. Что это значит: > > Отдача файла(js) ~40kb за 300-400ms > на drive.ru или ya 40kb за 70-90ms > > Т.е. разница в разы. и она ощутима. > > ping до сервера ~70ms > до drive и ya ~ 20-30ms > > отдает Nginx, config: > > location / { > sendfile on; > access_log off; > expires 4M; > > root /var/www/static > } > > сервер находится у хетцнера. > > Подскажите как можно приблизить скорость отдачи к drive или ya. > Если сервер, диск(хотя iowait 0.01-0.05), то подскажите на что его можно > заменить > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244201,244201#msg-244201 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- http://sysadmins.ws From postmaster at softsearch.ru Tue Oct 29 05:47:25 2013 From: postmaster at softsearch.ru (=?koi8-r?B?7cnIwcnMIO3PzsHbo9c=?=) Date: Tue, 29 Oct 2013 09:47:25 +0400 Subject: =?UTF-8?B?UmVbMl06INCc0LXQtNC70LXQvdC90LDRjyDQvtGC0LTQsNGH0LAg0YHRgtCw0YI=?= =?UTF-8?B?0LjQutC4?= In-Reply-To: <526F2A47.8030703@sysadmins.el.kg> References: <526F2A47.8030703@sysadmins.el.kg> Message-ID: <1741850067.20131029094725@softsearch.ru> Здравствуйте, admin. > Много-ли оперы на серваке Как это понять? -- С уважением, Михаил mailto:postmaster at softsearch.ru From chipitsine at gmail.com Tue Oct 29 06:02:27 2013 From: chipitsine at gmail.com (=?KOI8-R?B?6czY0SD7ydDJw8nO?=) Date: Tue, 29 Oct 2013 12:02:27 +0600 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQnNC10LTQu9C10L3QvdCw0Y8g0L7RgtC00LDRh9CwINGB0YI=?= =?UTF-8?B?0LDRgtC40LrQuA==?= In-Reply-To: <1741850067.20131029094725@softsearch.ru> References: <526F2A47.8030703@sysadmins.el.kg> <1741850067.20131029094725@softsearch.ru> Message-ID: это магические слова, которые устраняют дефект, без необходимости включать debug-лог :-) 29 октября 2013 г., 11:47 пользователь Михаил Монашёв написал: > Здравствуйте, admin. > >> Много-ли оперы на серваке > > Как это понять? > > -- > С уважением, > Михаил mailto:postmaster at softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From me at kemko.ru Tue Oct 29 06:02:33 2013 From: me at kemko.ru (=?koi8-r?B?5M3J1NLJyiDhzsTSxcXX?=) Date: Tue, 29 Oct 2013 10:02:33 +0400 Subject: =?UTF-8?B?UmU6INCc0LXQtNC70LXQvdC90LDRjyDQvtGC0LTQsNGH0LAg0YHRgtCw0YLQuNC6?= =?UTF-8?B?0Lg=?= In-Reply-To: <1741850067.20131029094725@softsearch.ru> Message-ID: <13421383026553@web30h.yandex.ru> 29.10.2013, 09:47, "Михаил Монашёв" : > Здравствуйте, admin. > > > Много-ли оперы на серваке > > Как это понять? Видимо он про оперативную память. Хотя может и про мыльную оперу. Кто этот новояз разберет... From mdounin at mdounin.ru Tue Oct 29 08:17:45 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Tue, 29 Oct 2013 12:17:45 +0400 Subject: =?UTF-8?B?UmU6INCQ0YDQuNGE0LzQtdGC0LjRh9C10YHQutC40LUg0L7Qv9C10YDQsNGG0Lg=?= =?UTF-8?B?0Lgg0LIgcmV3cml0ZQ==?= In-Reply-To: References: Message-ID: <20131029081745.GA7074@mdounin.ru> Hello! On Tue, Oct 29, 2013 at 03:29:25AM +0400, Роман wrote: > есть простое правило > > rewrite ^/discussions/page-([0-9]+)\.html /index.php?page=$1; > > можно ли как то вычесть из переменной $1? > > т.е. page-2.html будет передавать page=1 и тд Можно с помощью встроенного перла, см. http://nginx.org/r/perl_set. -- Maxim Dounin http://nginx.org/en/donation.html From nginx-forum at nginx.us Tue Oct 29 08:50:23 2013 From: nginx-forum at nginx.us (buddha) Date: Tue, 29 Oct 2013 04:50:23 -0400 Subject: =?UTF-8?B?UmU6INCc0LXQtNC70LXQvdC90LDRjyDQvtGC0LTQsNGH0LAg0YHRgtCw0YLQuNC6?= =?UTF-8?B?0Lg=?= In-Reply-To: <526F2A47.8030703@sysadmins.el.kg> References: <526F2A47.8030703@sysadmins.el.kg> Message-ID: памяти 12GB, свободно 6gb не менятся...это же статика. положили и забыли. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244201,244225#msg-244225 From admin at sysadmins.el.kg Tue Oct 29 08:54:16 2013 From: admin at sysadmins.el.kg (admin at sysadmins.el.kg) Date: Tue, 29 Oct 2013 14:54:16 +0600 Subject: =?UTF-8?B?UmU6INCc0LXQtNC70LXQvdC90LDRjyDQvtGC0LTQsNGH0LAg0YHRgtCw0YLQuNC6?= =?UTF-8?B?0Lg=?= In-Reply-To: <13421383026553@web30h.yandex.ru> References: <13421383026553@web30h.yandex.ru> Message-ID: <526F77B8.9030900@sysadmins.el.kg> 29.10.2013 12:02, Дмитрий Андреев пишет: > 29.10.2013, 09:47, "Михаил Монашёв" : >> Здравствуйте, admin. >> >>> Много-ли оперы на серваке >> Как это понять? > Видимо он про оперативную память. Хотя может и про мыльную оперу. Кто этот новояз разберет... > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Да, про нее самую я и спрашивал с целью узнать какими объемами оперативной памяти располагает проблемный сервер, дабы как вариант порекомендовать решение применяемое мной для отдачи большого количества статического контента. Теперь, как я вижу, явились великие гуру умеющие включать debug-лог силой своей мысли, стало быть сервер топикстартера в надежных руках. Не смею больше мешать вам ловить лулзы. -- http://sysadmins.ws From nginx-forum at nginx.us Tue Oct 29 09:07:43 2013 From: nginx-forum at nginx.us (buddha) Date: Tue, 29 Oct 2013 05:07:43 -0400 Subject: =?UTF-8?B?UmU6INCc0LXQtNC70LXQvdC90LDRjyDQvtGC0LTQsNGH0LAg0YHRgtCw0YLQuNC6?= =?UTF-8?B?0Lg=?= In-Reply-To: <526F77B8.9030900@sysadmins.el.kg> References: <526F77B8.9030900@sysadmins.el.kg> Message-ID: <2daca117bcbf8f2df81b79bdb09058ca.NginxMailingListRussian@forum.nginx.org> чуть выше ответил: 12gb общая, свободно 6gb папка обновляет редко Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244201,244227#msg-244227 From zmey1992 at ya.ru Tue Oct 29 09:47:01 2013 From: zmey1992 at ya.ru (=?koi8-r?B?98HTyczYxdcgIlptZXkhIiDvzMXH?=) Date: Tue, 29 Oct 2013 13:47:01 +0400 Subject: =?UTF-8?B?UmU6IE5HaW54ICsgYXBhY2hlINC/0YDQvtCy0LXRgNC60LAg0YDQsNCx0L7RgtGL?= In-Reply-To: References: <8c2657824a6823e137f2d6413b765171.NginxMailingListRussian@forum.nginx.org> Message-ID: <141671383040021@web4m.yandex.ru> Тогда надо будет прописывать исключения для nginx, потому что тот будет ломиться на внешний IP на бэкэнд. Так что не надо так. 10.10.2013, 14:00, "Юрий" : > На крайняк... можно бреши закрыть через iptables, но лучше конечно правильно конфигурить апачу, изначально на 127.0.0.1 > > 10 октября 2013 г., 12:31 пользователь Глеб Морозов написал: >> Данная настройка выполнена при активации nginx через ispmanager. Решение лучше уточнить на спец. форуме ispmanager. Вы конечно можете заставить слушать apache 127.0.0.1, так же изменив при этом NameVirtualHost, VirtualHost и proxy_pass в nginx, но ispmanager и дальше будет создавать "www-домены" с подобной конфигурацией. >> >> 2013/10/10 neo >>> Просто думаю дело в не правильной конфигурации(, апач не должен отвечать из >>> внешки >>> >>> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243574,243578#msg-243578 >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru at nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru at nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > , > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum at nginx.us Tue Oct 29 12:34:36 2013 From: nginx-forum at nginx.us (ast) Date: Tue, 29 Oct 2013 08:34:36 -0400 Subject: =?UTF-8?B?UmU6IG5naW54K3dlYnNvY2tldHMsINC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L8=?= =?UTF-8?B?0LDQvNGP0YLQuA==?= In-Reply-To: <20131025164924.GJ7074@mdounin.ru> References: <20131025164924.GJ7074@mdounin.ru> Message-ID: Правильно ли я понимаю, что если значение будет слишком маленькое, то в error.log я увижу "too large headers" ? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244073,244235#msg-244235 From nginx-forum at nginx.us Tue Oct 29 14:40:10 2013 From: nginx-forum at nginx.us (Gaidamak) Date: Tue, 29 Oct 2013 10:40:10 -0400 Subject: =?UTF-8?B?0JrQsNC6INC+0YLQsdC40YLRjNGB0Y8g0L7RgiA4MGxlZ3MuY29tID8=?= Message-ID: Повадилась такая вот напасть. http://www.80legs.com/webcrawler.html Как ее грамотно выпилить? В логах много такого: 109.166.134.39 - - [29/Oct/2013:18:34:09 +0400] site.domain.com "GET /page/url/ HTTP/1.1" 502 107 "-" "Mozilla/5.0 (compatible; 008/0.85; http://www.80legs.com/webcrawler.html) Gecko/2008032620" 0.000 Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244236,244236#msg-244236 From ppb at valuehost.ru Tue Oct 29 14:44:28 2013 From: ppb at valuehost.ru (Peter B. Pokryshev) Date: Tue, 29 Oct 2013 18:44:28 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvtGC0LHQuNGC0YzRgdGPINC+0YIgODBsZWdzLmNvbSA/?= In-Reply-To: References: Message-ID: <20131029184428.cecf53f178cf4dc4ba6ff946@valuehost.ru> On Tue, 29 Oct 2013 10:40:10 -0400 "Gaidamak" wrote: > Повадилась такая вот напасть. > > http://www.80legs.com/webcrawler.html > > Как ее грамотно выпилить? > Забанить по юзерагенту или как они на сайте сами пишут: If you'd like us to stop crawling your website, the best thing to do is to block our web crawler using the robots.txt specification. To do this, add the following to your robots.txt: User-agent: 008 Disallow: / If you block 008 using robots.txt, you will see crawl requests die down gradually, rather than immediately. This happens because of our distributed architecture. Our computers only periodically receive robots.txt information for domains they are crawling. > В логах много такого: > > 109.166.134.39 - - [29/Oct/2013:18:34:09 +0400] site.domain.com "GET > /page/url/ HTTP/1.1" 502 107 "-" "Mozilla/5.0 (compatible; 008/0.85; > http://www.80legs.com/webcrawler.html) Gecko/2008032620" 0.000 > > Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244236,244236#msg-244236 > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Peter B. Pokryshev From picklockster at gmail.com Tue Oct 29 19:25:03 2013 From: picklockster at gmail.com (Oleg Kashtanov) Date: Tue, 29 Oct 2013 23:25:03 +0400 Subject: nginx proxy without 302 status header Message-ID: Приветствую! Необходимо настроить на nginx переадресацию на другие веб-ресурсы, чтобы например при обращении по адресу http://nginx-server/reloc_proxy/web-site/index.php?page=1 происходил редирект на http://web-site/index.php?page=1 и возвращались обратно хедеры и боди от http://web-site/index.php?page=1 Я реализовал следующим образом: server { location /reloc_proxy_targets { rewrite ^/reloc_proxy_targets/(.*)$ http://$1 break; } } В моей же случае я получаю обратно статус 302 с боди: 302 Found

302 Found


nginx/1.2.1
Каким образом можно заменить 302 статус на реальноотдающий статус ресурса? На апаче это было реализовано следующим правилом: RewriteEngine On RewriteRule ^reloc_proxy/(.*)$ http://$1 [P,L] -- С уважением, Олег -------------- next part -------------- An HTML attachment was scrubbed... URL: From n.g.i.n.x.e.r at gmail.com Tue Oct 29 20:45:49 2013 From: n.g.i.n.x.e.r at gmail.com (=?UTF-8?B?0KDQvtC80LDQvQ==?=) Date: Wed, 30 Oct 2013 00:45:49 +0400 Subject: =?UTF-8?B?UmU6INCQ0YDQuNGE0LzQtdGC0LjRh9C10YHQutC40LUg0L7Qv9C10YDQsNGG0Lg=?= =?UTF-8?B?0Lgg0LIgcmV3cml0ZQ==?= In-Reply-To: <20131029081745.GA7074@mdounin.ru> References: <20131029081745.GA7074@mdounin.ru> Message-ID: Перл не знаю, а из примеров в интернете ничегон е понятно. Можешь показать как? 29 октября 2013 г., 12:17 пользователь Maxim Dounin написал: > Hello! > > On Tue, Oct 29, 2013 at 03:29:25AM +0400, Роман wrote: > > > есть простое правило > > > > rewrite ^/discussions/page-([0-9]+)\.html /index.php?page=$1; > > > > можно ли как то вычесть из переменной $1? > > > > т.е. page-2.html будет передавать page=1 и тд > > Можно с помощью встроенного перла, см. http://nginx.org/r/perl_set. > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > 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 Wed Oct 30 10:07:15 2013 From: nginx-forum at nginx.us (Bionicman) Date: Wed, 30 Oct 2013 06:07:15 -0400 Subject: =?UTF-8?Q?request_uri_=D0=B8_url_encode?= Message-ID: <9df88622c997ae8fe30ef5f041824ce7.NginxMailingListRussian@forum.nginx.org> Есть два набора серверов, настроенные практически идентично. Первый - production, второй - тестовый. Production: server1(nginx:80) proxy_pass--> server2(nginx:80 proxy_pass--> php-fpm:unix) Test: server1(nginx:80 proxy_pass--> nginx:8080 proxy_pass--> php-fpm:unix) Проверяю в php-скрипте переменную сервера request_uri и в первом случае, вставив в путь "/> получаю в этой переменной %22/%3E%3Cscript%3Ealert%28123%29;%3C/script%3E а во втором "/> Может ли это быть связанным с nginx, почему в первом случае url кодируется, а во втором нет? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244256,244256#msg-244256 From mdounin at mdounin.ru Wed Oct 30 10:31:10 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 30 Oct 2013 14:31:10 +0400 Subject: =?UTF-8?Q?Re=3A_request_uri_=D0=B8_url_encode?= In-Reply-To: <9df88622c997ae8fe30ef5f041824ce7.NginxMailingListRussian@forum.nginx.org> References: <9df88622c997ae8fe30ef5f041824ce7.NginxMailingListRussian@forum.nginx.org> Message-ID: <20131030103110.GB84761@mdounin.ru> Hello! On Wed, Oct 30, 2013 at 06:07:15AM -0400, Bionicman wrote: > Есть два набора серверов, настроенные практически идентично. Первый - > production, второй - тестовый. > > Production: server1(nginx:80) proxy_pass--> server2(nginx:80 proxy_pass--> > php-fpm:unix) > Test: server1(nginx:80 proxy_pass--> nginx:8080 proxy_pass--> php-fpm:unix) > > Проверяю в php-скрипте переменную сервера request_uri и в первом случае, > вставив в путь > "/> > получаю в этой переменной %22/%3E%3Cscript%3Ealert%28123%29;%3C/script%3E > а во втором "/> > Может ли это быть связанным с nginx, почему в первом случае url кодируется, > а во втором нет? С точки зрения URI - обе записи эквивалентны. Связано может быть с массой вещей, в том числе и с nginx'ом, если конфигурация написана так, что nginx меняет адреса и при проксировании должен строить URI заново. -- Maxim Dounin http://nginx.org/en/donation.html From mdounin at mdounin.ru Wed Oct 30 11:23:41 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 30 Oct 2013 15:23:41 +0400 Subject: =?UTF-8?B?UmU6IG5naW54K3dlYnNvY2tldHMsINC/0L7RgtGA0LXQsdC70LXQvdC40LUg0L8=?= =?UTF-8?B?0LDQvNGP0YLQuA==?= In-Reply-To: References: <20131025164924.GJ7074@mdounin.ru> Message-ID: <20131030112341.GC84761@mdounin.ru> Hello! On Tue, Oct 29, 2013 at 08:34:36AM -0400, ast wrote: > Правильно ли я понимаю, что если значение будет слишком маленькое, то в > error.log я увижу "too large headers" ? Почти. Будет сообщение "upstream sent too big header". -- Maxim Dounin http://nginx.org/en/donation.html From mdounin at mdounin.ru Wed Oct 30 12:08:49 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 30 Oct 2013 16:08:49 +0400 Subject: =?UTF-8?B?UmU6INCc0LXQtNC70LXQvdC90LDRjyDQvtGC0LTQsNGH0LAg0YHRgtCw0YLQuNC6?= =?UTF-8?B?0Lg=?= In-Reply-To: References: Message-ID: <20131030120849.GD84761@mdounin.ru> Hello! On Mon, Oct 28, 2013 at 12:34:33PM -0400, buddha wrote: > Привет всем. > Знаю что вопрос уже обсуждался - почитал, попробовал - не выходит. > > Есть проблема с медленной отдачей статики. Что это значит: > > Отдача файла(js) ~40kb за 300-400ms > на drive.ru или ya 40kb за 70-90ms > > Т.е. разница в разы. и она ощутима. > > ping до сервера ~70ms > до drive и ya ~ 20-30ms > > отдает Nginx, config: > > location / { > sendfile on; > access_log off; > expires 4M; > > root /var/www/static > } > > сервер находится у хетцнера. > > Подскажите как можно приблизить скорость отдачи к drive или ya. > Если сервер, диск(хотя iowait 0.01-0.05), то подскажите на что его можно > заменить Судя по цифрам, то, что у вас получается - это в первую очередь результат большого RTT + работы механизмов Congestion Control протокола TCP. Можно пытаться походить в сторону тюнинга initial congestion window size. Но, строго говоря, много это всё равно не даст - где-то пару round trip'ов можно сэкономить при использовании сейчас усиленно продвигаемого initial cwnd в 10 пакетов (и чем больше ответ - тем меньше разница). Ну и на всякий случай напомню, что с тюнингом таких вещей следует быть осторожным, т.к. подобные действия отражаются на всех в сети. Прежде, чем ковыряться - лучше как минимум ознакомиться с теоретической стороной вопроса. Вообще, IMHO, в первую очередь имеет смысл смотреть за тем, чтобы с клиентами обеспечивались постоянные соединения. В nginx'е они по умолчанию включены, но лишний раз проверить не помешает. В частности - посмотреть на директиву keepalive_timeout и убедиться, что там никто не написал 0 в попытке поэкономить соединения. -- Maxim Dounin http://nginx.org/en/donation.html From mdounin at mdounin.ru Wed Oct 30 12:24:50 2013 From: mdounin at mdounin.ru (Maxim Dounin) Date: Wed, 30 Oct 2013 16:24:50 +0400 Subject: =?UTF-8?B?UmU6INCQ0YDQuNGE0LzQtdGC0LjRh9C10YHQutC40LUg0L7Qv9C10YDQsNGG0Lg=?= =?UTF-8?B?0Lgg0LIgcmV3cml0ZQ==?= In-Reply-To: References: <20131029081745.GA7074@mdounin.ru> Message-ID: <20131030122450.GE84761@mdounin.ru> Hello! On Wed, Oct 30, 2013 at 12:45:49AM +0400, Роман wrote: > Перл не знаю, а из примеров в интернете ничегон е понятно. > Можешь показать как? Как-то так: perl_set $minus 'sub { my $r = shift; return $r->variable("page") - 1; }'; server { ... rewrite ^/discussions/page-(?[0-9]+)\.html /index.php?page=$minus; ... } Впрочем, я бы вынес всю эту логику в php, жизнь будет проще. Программировать надо на предназначенных для этого языках программирования, а не на конфигах nginx'а. > > > 29 октября 2013 г., 12:17 пользователь Maxim Dounin написал: > > > Hello! > > > > On Tue, Oct 29, 2013 at 03:29:25AM +0400, Роман wrote: > > > > > есть простое правило > > > > > > rewrite ^/discussions/page-([0-9]+)\.html /index.php?page=$1; > > > > > > можно ли как то вычесть из переменной $1? > > > > > > т.е. page-2.html будет передавать page=1 и тд > > > > Можно с помощью встроенного перла, см. http://nginx.org/r/perl_set. > > > > -- > > Maxim Dounin > > http://nginx.org/en/donation.html > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru at nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Maxim Dounin http://nginx.org/en/donation.html From aleksey.grigoriev at gmail.com Wed Oct 30 14:08:43 2013 From: aleksey.grigoriev at gmail.com (=?KOI8-R?B?4czFy9PFyiDn0snHz9LYxdc=?=) Date: Wed, 30 Oct 2013 18:08:43 +0400 Subject: =?UTF-8?B?UmU6INCX0LDQs9C70YPRiNC60LAg0LLQvNC10YHRgtC+INC+0YLRgdGD0YLRgdGC?= =?UTF-8?B?0LLRg9GO0YnQtdC5INC60LDRgNGC0LjQvdC60Lgu?= In-Reply-To: <20131028203432.GW7074@mdounin.ru> References: <20131027222941.GT7074@mdounin.ru> <0e08afcf824ba8324e5c82e70314da7b.NginxMailingListRussian@forum.nginx.org> <20131028203432.GW7074@mdounin.ru> Message-ID: Сегодня читал мануал и обнаружил интересную конструкцию, которая Вам поможет: location /images/ { try_files $uri /images/default.gif; } location = /images/default.gif { expires 30s; } Если нужный файл внутри /images/ не найден - загружается /images/default.gif; Более подробное описание: http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files 29 октября 2013 г., 0:34 пользователь Maxim Dounin написал: > Hello! > > On Mon, Oct 28, 2013 at 05:58:26AM -0400, Vipper wrote: > > > Спасибо за пояснения. > > Сделал так: > > location ^~ /photos/ { > > error_page 404 /photos/no_photo.gif; > > log_not_found off; > > } > > > > location = /photos/no_photo.gif { > > expires max; > > } > > > > Если писать location /photos/ то не работает. > > > > Поясните мне пожалуйста последний момент. > > Почему при одном обращении к несуществующей картинке в access лог пишутся > > ДВЕ записи? Если разрешить error лог, то и туда тоже. > > Я понять этого не могу. При этом картинка подменяется как положено. > > Если в access log'е две записи - значит браузер сделал два > запроса. Почему так - отдельный вопрос, требующий разбирательств > в первую очередь с браузером. E.g. он мог сделать это, если > картинка используется на странице в двух местах, и из-за 404-го > кода ответа он пошёл на сервер ещё раз. Можно попробовать сказать > > error_page 404 = /photos/no_photo.gif; > > (доблен модификатор "="), тогда браузеру заглушка уйдёт с кодом > 200. Но это не то, чтобы очень правильный подход - лучше код > ошибки в подобных ситуациях по возможности сохранять, это делает > мир лучше. > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- AG -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum at nginx.us Wed Oct 30 14:25:24 2013 From: nginx-forum at nginx.us (Bionicman) Date: Wed, 30 Oct 2013 10:25:24 -0400 Subject: =?UTF-8?Q?Re=3A_request_uri_=D0=B8_url_encode?= In-Reply-To: <20131030103110.GB84761@mdounin.ru> References: <20131030103110.GB84761@mdounin.ru> Message-ID: <555cbbc1ce9f1e25286af82e1358c39c.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Wed, Oct 30, 2013 at 06:07:15AM -0400, Bionicman wrote: > > > Есть два набора серверов, настроенные практически идентично. Первый > - > > production, второй - тестовый. > > > > Production: server1(nginx:80) proxy_pass--> server2(nginx:80 > proxy_pass--> > > php-fpm:unix) > > Test: server1(nginx:80 proxy_pass--> nginx:8080 proxy_pass--> > php-fpm:unix) > > > > Проверяю в php-скрипте переменную сервера request_uri и в первом > случае, > > вставив в путь > > "/> > > получаю в этой переменной > %22/%3E%3Cscript%3Ealert%28123%29;%3C/script%3E > > а во втором "/> > > Может ли это быть связанным с nginx, почему в первом случае url > кодируется, > > а во втором нет? > > С точки зрения URI - обе записи эквивалентны. Связано может > быть с массой вещей, в том числе и с nginx'ом, если конфигурация > написана так, что nginx меняет адреса и при проксировании должен > строить URI заново. > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru at nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Вся беда из-за / в конце хоста proxy_pass Спасибо за наводку. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244258,244265#msg-244265 From nginx-forum at nginx.us Wed Oct 30 18:42:12 2013 From: nginx-forum at nginx.us (megalodon) Date: Wed, 30 Oct 2013 14:42:12 -0400 Subject: =?UTF-8?B?0JDQu9C70L7QutCw0YbQuNGPINC+0LHRitC10LrRgtC+0LIg0L/QtdGA0LXQvNC1?= =?UTF-8?B?0L3QvdC+0LPQviDRgNCw0LfQvNC10YDQsCDQvdCwIHNoYXJlZCBtZW1vcnk=?= Message-ID: Всем привет. Столкнулся с такой проблемой: допустим, есть дерево в shared memory, где ключ - ip адрес, а значение - структура, которая хранит определенную информацию связанную с этим ip. С ip необходимо также связать информацию о том, на какие uri он ходил, какие рефереры присылал, какие ua, и прочие строки. Получается, примерно так: ip_tree->ip_node ---> per_ip_tree->node. Создать это не проблема, но при удалении ip_node, скажем по тайм-ауту, необходимо пройтись по всему дереву и сделать free для указателей всех нод, т.к. ноды в per_ip_tree выделялись по мере необходимости. Тут же возникает мысль: выделить сразу большой блок и на нем сделать ngx_slab_init(). А когда нам потребуется удалить per_ip_tree - будет достаточно всего лишь сделать один free для всего этого блока, т.к. все ноды этого per_ip_tree были выделены исключительно из него. Вопрос: адекватен ли такой подход в данной ситуации? Если нет, какие можете подсказать варианты? Заранее всех благодарю. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244268,244268#msg-244268 From nginx-forum at nginx.us Thu Oct 31 12:54:53 2013 From: nginx-forum at nginx.us (RedRat) Date: Thu, 31 Oct 2013 08:54:53 -0400 Subject: =?UTF-8?B?0JrQsNC6INC80L7QttC90L4g0L7RgtC70L7QstC40YLRjCAi0L/Rg9GB0YLQvtC5?= =?UTF-8?B?IiBVUkkg0LIg0LfQsNC/0YDQvtGB0LU/?= Message-ID: Приветствую всех! Началась ДДоС-атака на сайт, долбят запросами вида "POST HTTP/1.1" - то есть без URI. Можно ли как-то на уровне nginx выделить эти запросы с целью дальнейше блокировки? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244293,244293#msg-244293 From nginx-forum at nginx.us Thu Oct 31 13:35:22 2013 From: nginx-forum at nginx.us (megalodon) Date: Thu, 31 Oct 2013 09:35:22 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvNC+0LbQvdC+INC+0YLQu9C+0LLQuNGC0YwgItC/0YPRgdGC?= =?UTF-8?B?0L7QuSIgVVJJINCyINC30LDQv9GA0L7RgdC1Pw==?= In-Reply-To: References: Message-ID: <257fa4e77cc6479aa7bb496ff8f529dd.NginxMailingListRussian@forum.nginx.org> if ($request_uri == "") { return 403; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244293,244294#msg-244294 From vbart at nginx.com Thu Oct 31 13:50:42 2013 From: vbart at nginx.com (=?koi8-r?b?98HMxc7Uyc4g4sHS1MXOxdc=?=) Date: Thu, 31 Oct 2013 17:50:42 +0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvNC+0LbQvdC+INC+0YLQu9C+0LLQuNGC0YwgIiDQv9GD0YE=?= =?UTF-8?B?0YLQvtC5IiBVUkkgINCyINC30LDQv9GA0L7RgdC1Pw==?= In-Reply-To: <257fa4e77cc6479aa7bb496ff8f529dd.NginxMailingListRussian@forum.nginx.org> References: <257fa4e77cc6479aa7bb496ff8f529dd.NginxMailingListRussian@forum.nginx.org> Message-ID: <201310311750.42844.vbart@nginx.com> On Thursday 31 October 2013 17:35:22 megalodon wrote: > if ($request_uri == "") { > return 403; > } > Очевидно до этого места дело не дойдет, поскольку "POST HTTP/1.1" не является корректным HTTP-запросом, и сервер сразу же ответит ошибкой "400 Bad Request". Как отловить? Смотрите access_log, если формат его не меняли, то увидите там "POST HTTP/1.1" 400. -- Валентин Бартенев From nginx-forum at nginx.us Thu Oct 31 13:59:44 2013 From: nginx-forum at nginx.us (RedRat) Date: Thu, 31 Oct 2013 09:59:44 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvNC+0LbQvdC+INC+0YLQu9C+0LLQuNGC0YwgItC/0YPRgdGC?= =?UTF-8?B?0L7QuSIgVVJJINCyINC30LDQv9GA0L7RgdC1Pw==?= In-Reply-To: <257fa4e77cc6479aa7bb496ff8f529dd.NginxMailingListRussian@forum.nginx.org> References: <257fa4e77cc6479aa7bb496ff8f529dd.NginxMailingListRussian@forum.nginx.org> Message-ID: <560bed99b9c5b28c0a880734d7d23803.NginxMailingListRussian@forum.nginx.org> Пробовал и if ($request_uri ~* ^$) и if ($request_uri = "") - не ловит. Потому и спрашиваю у гуру... Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244293,244296#msg-244296 From nginx-forum at nginx.us Thu Oct 31 14:30:07 2013 From: nginx-forum at nginx.us (megalodon) Date: Thu, 31 Oct 2013 10:30:07 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvNC+0LbQvdC+INC+0YLQu9C+0LLQuNGC0YwgItC/0YPRgdGC?= =?UTF-8?B?0L7QuSIgVVJJINCyINC30LDQv9GA0L7RgdC1Pw==?= In-Reply-To: <560bed99b9c5b28c0a880734d7d23803.NginxMailingListRussian@forum.nginx.org> References: <257fa4e77cc6479aa7bb496ff8f529dd.NginxMailingListRussian@forum.nginx.org> <560bed99b9c5b28c0a880734d7d23803.NginxMailingListRussian@forum.nginx.org> Message-ID: <79664b53c619e64627b72a37176ef9f3.NginxMailingListRussian@forum.nginx.org> Поспешил с ответом, nginx же вернет bad request. Конечный автомат, который используется для парсинга request line обнаружит, что нет uri. Т.е. в логах будет много ip для которых статус ответа - 400. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244293,244298#msg-244298 From nginx-forum at nginx.us Thu Oct 31 14:41:24 2013 From: nginx-forum at nginx.us (megalodon) Date: Thu, 31 Oct 2013 10:41:24 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDQvNC+0LbQvdC+INC+0YLQu9C+0LLQuNGC0YwgItC/0YPRgdGC?= =?UTF-8?B?0L7QuSIgVVJJINCyINC30LDQv9GA0L7RgdC1Pw==?= In-Reply-To: <79664b53c619e64627b72a37176ef9f3.NginxMailingListRussian@forum.nginx.org> References: <257fa4e77cc6479aa7bb496ff8f529dd.NginxMailingListRussian@forum.nginx.org> <560bed99b9c5b28c0a880734d7d23803.NginxMailingListRussian@forum.nginx.org> <79664b53c619e64627b72a37176ef9f3.NginxMailingListRussian@forum.nginx.org> Message-ID: Вот как выглядит парсер запроса: http://lxr.evanmiller.org/http/source/http/ngx_http_parse.c#L104 После того, как парсер пройдет POST, он перейдет в состояние sw_spaces_before_uri; Далее, как только встретися буква H, то парсер прервется (строка 292): switch (ch) { case ' ': break; default: return NGX_HTTP_PARSE_INVALID_REQUEST; } break; Можно на баше написать скрипт, собрать из лога все такие ip и добавть их в ipset (если у Вас линукс), указав тайм-аут, скажем, минут 30. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244293,244301#msg-244301