Re: Уточнение логики работы ngx_http_auth_request_module
Да, прошу прощения, во время раскладки не скопировал новый бинарник. Сейчас всё работает! Спасибо огромное всем в этом треде! 2013/11/7 Валентин Бартенев > On Wednesday 06 November 2013 23:42:19 Dzmitry Stremkouski wrote: > > Увы, патч не помог. > > http://static.stremki.net/nginx-debug-spdy0.log > > Вот, лог. > > Я пока выключил spdy, жаль, конечно. > > > > Лог по ссылке в точности такой, как если бы nginx был собран без патча. > > Проверьте, что патч действительно был применен, что после применения патча > сборка прошла успешно, и что был действительно запущен собранный с патчем > nginx, а не какой-то другой. > > У меня на аналогичной конфигурации без патча проблема стабильно > воспроизводится, > с патчем - нет. > > -- > Валентин Бартенев > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- (o_ - Dzmitry Stremkouski. //\ - cel: +7 (916) 090-85-68 V_/_- web: http://mitroko.com ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Nginx 1.2.7 + Apache2 2.2.24 on Freebsd 9.1 хостинг speedtest mini проблема с upload
поддержка ISP Manager что говорит по поводу данной ситуации ? 6 ноября 2013 г., 19:48 пользователь ans34 написал: > gstat показывает запись на hdd, lsof никакой разницы между открытыми на > запись файлами в момент проведения теста и в момент бездействия не находит. > Пересобирать nginx не вариант, т.к все ставилось вместе с ISP Manager, > неизвестно какие опции применялись при установке пакетов. Да и сервер скорее > боевой чем тестовый, сильно ломать его неохота. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,244480,244498#msg-244498 > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
Увы, патч не помог. http://static.stremki.net/nginx-debug-spdy0.log Вот, лог. Я пока выключил spdy, жаль, конечно. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
On Wednesday 06 November 2013 19:23:52 Dzmitry Stremkouski wrote: > Максим, я сделал ещё пару экспериментов в сторону упрощения конфигурации > сервера. > Выключение опции spdy: > server { > # listen 443 ssl spdy default_server; > listen 443 ssl default_server; > > дало работоспособность вашего модуля на все сто, без костылей. > http://static.stremki.net/nginx-debug.log > Вот, дебаглог при простой конфигурации > Локейшн /nauth > [..] Должно помочь со SPDY: diff -r f817f9d1cded src/http/ngx_http_request_body.c --- a/src/http/ngx_http_request_body.c Mon Nov 04 17:00:25 2013 -0800 +++ b/src/http/ngx_http_request_body.c Wed Nov 06 20:32:15 2013 +0400 @@ -43,7 +43,7 @@ ngx_http_read_client_request_body(ngx_ht r->main->count++; #if (NGX_HTTP_SPDY) -if (r->spdy_stream) { +if (r->spdy_stream && r == r->main) { rc = ngx_http_spdy_read_request_body(r, post_handler); goto done; } -- Валентин Бартенев ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
Hello! On Wed, Nov 06, 2013 at 07:23:52PM +0400, Dzmitry Stremkouski wrote: > Максим, я сделал ещё пару экспериментов в сторону упрощения конфигурации > сервера. > Выключение опции spdy: > server { > # listen 443 ssl spdy default_server; > listen 443 ssl default_server; > > дало работоспособность вашего модуля на все сто, без костылей. > http://static.stremki.net/nginx-debug.log > Вот, дебаглог при простой конфигурации > Локейшн /nauth А, понятно. Цитирую документацию по модулю spdy, "модуль экспериментальный, поэтому возможно всё". Чтение тела запроса в spdy-модуле, скажем так, нуждается в доработке, в нетривиальных конструкциях с подзапросами там могут быть нюансы. Валентин, взгляни? ЕМНИП, я тебе уже как-то показывал пальцем на эту проблему в коде spdy. -- Maxim Dounin http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
Максим, я сделал ещё пару экспериментов в сторону упрощения конфигурации сервера. Выключение опции spdy: server { # listen 443 ssl spdy default_server; listen 443 ssl default_server; дало работоспособность вашего модуля на все сто, без костылей. http://static.stremki.net/nginx-debug.log Вот, дебаглог при простой конфигурации Локейшн /nauth 2013/11/6 Maxim Dounin > Hello! > > On Wed, Nov 06, 2013 at 04:31:46PM +0400, Eugene Mychlo wrote: > > [...] > > > >> 2. Есть ли возможность в основном запросе получить, в виде > переменных, заголовки возвращаемые auth-подзапросом? > > >> Просто есть желание заменить X-Accel-Redirect, и проксировать на > разные бэкенды в зависимости от того, что вернул auth-бэкенд. > > > > > > Антон уже отписал, директива auth_request_set - позволяет вынуть > > > данные из заголовков ответа бекенда и сложить их в переменные. > > > Использовать можно как-то так: > > > > > >location / { > > >auth_request /auth; > > >auth_request_set $backend $upstream_http_x_backend; > > > > > >proxy_pass http://$backend; > > >} > > > > > > http://nginx.org/r/auth_request_set > > > > > > > В догонку. > > Директива auth_request понимает именованные локейшены? > > Нет. > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- (o_ - Dzmitry Stremkouski. //\ - cel: +7 (916) 090-85-68 V_/_- web: http://mitroko.com ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: При включении gzip не работает chunk-encoding
Фух... Спасибо большое! Помогло! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244400,244500#msg-244500 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
Hello! On Wed, Nov 06, 2013 at 04:31:46PM +0400, Eugene Mychlo wrote: [...] > >> 2. Есть ли возможность в основном запросе получить, в виде переменных, > >> заголовки возвращаемые auth-подзапросом? > >> Просто есть желание заменить X-Accel-Redirect, и проксировать на разные > >> бэкенды в зависимости от того, что вернул auth-бэкенд. > > > > Антон уже отписал, директива auth_request_set - позволяет вынуть > > данные из заголовков ответа бекенда и сложить их в переменные. > > Использовать можно как-то так: > > > >location / { > >auth_request /auth; > >auth_request_set $backend $upstream_http_x_backend; > > > >proxy_pass http://$backend; > >} > > > > http://nginx.org/r/auth_request_set > > > > В догонку. > Директива auth_request понимает именованные локейшены? Нет. -- Maxim Dounin http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Nginx 1.2.7 + Apache2 2.2.24 on Freebsd 9.1 хостинг speedtest mini проблема с upload
gstat показывает запись на hdd, lsof никакой разницы между открытыми на запись файлами в момент проведения теста и в момент бездействия не находит. Пересобирать nginx не вариант, т.к все ставилось вместе с ISP Manager, неизвестно какие опции применялись при установке пакетов. Да и сервер скорее боевой чем тестовый, сильно ломать его неохота. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244480,244498#msg-244498 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
06 нояб. 2013 г., в 16:15, Maxim Dounin написал(а): > Hello! > > On Wed, Nov 06, 2013 at 03:53:09PM +0400, Eugene Mychlo wrote: > >> Добрый день, >> >> 05 нояб. 2013 г., в 0:19, Maxim Dounin написал(а): >> >> […] >> >>> >>> Модуль auth_request не пытается реализовывать каких-либо >>> протколов сам, он просто делает подзапрос. Точно так же, как это >>> делает SSI или модуль addition. >>> >>> Настроить необходимую обработку для соответствующего URI, который >>> вы используете в auth_request - ваша задача, будь то проксирование >>> или что-либо ещё. >> >> […] >> >> Раз возник топик про логику auth_request, задам и я пару уточняющих воросов: >> >> 1. Что вернется клиенту, если auth-подзапрос вернет код отличный от 200, 403 >> и 401, скажем 404 или 301, или 5xx? > > Клиенту уйдёт 500, в логах появится запись "[error] ... auth > request unexpected status: 404 ...». > Понятно. >> 2. Есть ли возможность в основном запросе получить, в виде переменных, >> заголовки возвращаемые auth-подзапросом? >> Просто есть желание заменить X-Accel-Redirect, и проксировать на разные >> бэкенды в зависимости от того, что вернул auth-бэкенд. > > Антон уже отписал, директива auth_request_set - позволяет вынуть > данные из заголовков ответа бекенда и сложить их в переменные. > Использовать можно как-то так: > >location / { >auth_request /auth; >auth_request_set $backend $upstream_http_x_backend; > >proxy_pass http://$backend; >} > > http://nginx.org/r/auth_request_set > В догонку. Директива auth_request понимает именованные локейшены? -- Regards, Eugene Mychlo MYC-RIPE EAMYC-RIPN ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
Hello! On Wed, Nov 06, 2013 at 03:53:09PM +0400, Eugene Mychlo wrote: > Добрый день, > > 05 нояб. 2013 г., в 0:19, Maxim Dounin написал(а): > > […] > > > > > Модуль auth_request не пытается реализовывать каких-либо > > протколов сам, он просто делает подзапрос. Точно так же, как это > > делает SSI или модуль addition. > > > > Настроить необходимую обработку для соответствующего URI, который > > вы используете в auth_request - ваша задача, будь то проксирование > > или что-либо ещё. > > […] > > Раз возник топик про логику auth_request, задам и я пару уточняющих воросов: > > 1. Что вернется клиенту, если auth-подзапрос вернет код отличный от 200, 403 > и 401, скажем 404 или 301, или 5xx? Клиенту уйдёт 500, в логах появится запись "[error] ... auth request unexpected status: 404 ...". > 2. Есть ли возможность в основном запросе получить, в виде переменных, > заголовки возвращаемые auth-подзапросом? > Просто есть желание заменить X-Accel-Redirect, и проксировать на разные > бэкенды в зависимости от того, что вернул auth-бэкенд. Антон уже отписал, директива auth_request_set - позволяет вынуть данные из заголовков ответа бекенда и сложить их в переменные. Использовать можно как-то так: location / { auth_request /auth; auth_request_set $backend $upstream_http_x_backend; proxy_pass http://$backend; } http://nginx.org/r/auth_request_set -- Maxim Dounin http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
06 нояб. 2013 г., в 15:59, Anton Yuzhaninov написал(а): > On 11/06/13 15:53, Eugene Mychlo wrote: >> 2. Есть ли возможность в основном запросе получить, в виде переменных, >> заголовки возвращаемые auth-подзапросом? >> Просто есть желание заменить X-Accel-Redirect, и проксировать на разные >> бэкенды в зависимости от того, что вернул auth-бэкенд. > > есть: > http://nginx.org/r/auth_request_set > Замечательно. Спасибо. -- Regards, Eugene Mychlo MYC-RIPE EAMYC-RIPN ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
Hello! On Wed, Nov 06, 2013 at 12:03:25AM +0400, Dzmitry Stremkouski wrote: > Максим, спасибо огромное за подсказку с satisfy. > Гораздо удобнее геомапинга. > > Я немного поэкспериментировал и выяснил, что nginx подвисает в подзапросе, > если прилетает POST запрос. > Я вставил следующее правило: > location /auth { > if ( $request_method = POST ) { return 200; } > > И все приложения заработали, как положено. Бэкенд отлично справляется с > нагрузкой, дело не в нём. > Видимо, когда приходит запрос на > .https://ssl.stremki.net/project_nameметодом POST, то > ngx_http_auth_request_module > хочет сделать подзапрос таким же методом. Нет, auth_request делает подзапрос методом GET. Если при POST'ах что-то не работает - скорее всего, вы недоконфигурили (или переконфигурили), и при обращении к бекенду передаётся заголовок Content-Length от основного запроса. Нужно, чтобы в location /auth стояло: proxy_set_header Content-Length ""; Покажите конфиг и debug log подвисания (без "if ($request_method) ...") - можно будет сказать подробнее. > Но, мало того, что он хочет это сделать, он зачем-то добавляет знак ? в > конец локейшна /auth (это видно в дебаглоге) > На стороне бэкенда в этот момент не видно никакого трафика от nginx. > Тоесть, как только прилетает POST с данными на любой локейшн, который > проверяется вашим модулем, nginx строит подзапрос с методом POST, добавляет > символ ? и не делает подзапрос к бэкенду. Символ "?" в отладочных логах - это нормально, он там есть всегда. -- Maxim Dounin http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
On 11/06/13 15:53, Eugene Mychlo wrote: 2. Есть ли возможность в основном запросе получить, в виде переменных, заголовки возвращаемые auth-подзапросом? Просто есть желание заменить X-Accel-Redirect, и проксировать на разные бэкенды в зависимости от того, что вернул auth-бэкенд. есть: http://nginx.org/r/auth_request_set ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Уточнение логики работы ngx_http_auth_request_module
Добрый день, 05 нояб. 2013 г., в 0:19, Maxim Dounin написал(а): […] > > Модуль auth_request не пытается реализовывать каких-либо > протколов сам, он просто делает подзапрос. Точно так же, как это > делает SSI или модуль addition. > > Настроить необходимую обработку для соответствующего URI, который > вы используете в auth_request - ваша задача, будь то проксирование > или что-либо ещё. […] Раз возник топик про логику auth_request, задам и я пару уточняющих воросов: 1. Что вернется клиенту, если auth-подзапрос вернет код отличный от 200, 403 и 401, скажем 404 или 301, или 5xx? 2. Есть ли возможность в основном запросе получить, в виде переменных, заголовки возвращаемые auth-подзапросом? Просто есть желание заменить X-Accel-Redirect, и проксировать на разные бэкенды в зависимости от того, что вернул auth-бэкенд. -- Regards, Eugene Mychlo MYC-RIPE EAMYC-RIPN ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Nginx 1.2.7 + Apache2 2.2.24 on Freebsd 9.1 хостинг speedtest mini проблема с upload
А если тест проводить напрямую с Apache? Запись на какой носитель показывает gstat? На ramdisk или hdd? Можно попробовать подсмотреть что и куда он пишет (fstat или lsof). Можно проверить на последней версии nginx (nginx-devel в портах). Ну и последний вариант - перекомпилировать nginx с debug, включить дебаг логи и посмотреть что происходит при аплоаде. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Nginx 1.2.7 + Apache2 2.2.24 on Freebsd 9.1 хостинг speedtest mini проблема с upload
Я игрался с этими параметрами. Все изменения (пробовал начиная с 8k до 1024k) приводили только к ухудшению результата в моем случае Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244480,244489#msg-244489 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Nginx 1.2.7 + Apache2 2.2.24 on Freebsd 9.1 хостинг speedtest mini проблема с upload
Вопрос уже поднимался в рассылке. Советом было: > Насколько я вижу, указанная зверушка проверяет скорость вверх с > помощью POST'ов размером 426565 байт. У вас же в конфиге: >> client_body_buffer_size 128k; > Т.е. все эти проверки скорости вверх - сначала попадают на nginx, > складываются им на диск, потом поднимаются с диска и отправляются на > апач. > Попробуйте для начала сделать > client_body_buffer_size 512k; > Должно заметно улучшить ситуацию. По дефолту у nginx client_body_buffer_size 8k|16k К сожалению, ответа на этот комментарий так и не поступило. 6 ноября 2013 г., 10:38 пользователь ans34 написал: > На сервере живет связка из Nginx 1.2.7 + Apache2 2.2.24. Конфиг nginx > дефолтный, размеры буферов и т.п не переопределены. Перенес на этот сервер > свой хост speedtest mini. Папка с файлами спидеста расположена на рамдиске > и > проблем с скоростью доступа к ним нет, скорость скачивания (downlaod) 300+ > Mbit/s. Но есть проблемы с тестом скорости загрузки (upload) - 40-50 Mbit/s > После отключения sendfile в конфиге nginx скорость подросла до 80-120 > Mbit/s > Во время теста загрузки в top io mode nginx показывает 100% загрузки > VCSW IVCSW READ WRITE FAULT TOTAL PERCENT COMMAND > 4839 0 0 16 0 16 100.00% > nginx > > и gstat показывает активную запись на диск. > > Вынос client_body_temp_path на рамдиск и изменение переменных client_body* > относительно дефолтных значений приводят только к ухудшению результата > теста скорости. > > Posted at Nginx Forum: > http://forum.nginx.org/read.php?21,244480,244480#msg-244480 > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru