Re: Уточнение логики работы ngx_http_auth_request_module

2013-11-06 Пенетрантность Dzmitry Stremkouski
Да, прошу прощения, во время раскладки не скопировал новый бинарник.

Сейчас всё работает!
Спасибо огромное всем в этом треде!

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

2013-11-06 Пенетрантность Илья Шипицин
поддержка 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

2013-11-06 Пенетрантность Dzmitry Stremkouski
Увы, патч не помог.
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

2013-11-06 Пенетрантность Валентин Бартенев
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

2013-11-06 Пенетрантность Maxim Dounin
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

2013-11-06 Пенетрантность Dzmitry Stremkouski
Максим, я сделал ещё пару экспериментов в сторону упрощения конфигурации
сервера.
Выключение опции 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

2013-11-06 Пенетрантность vulgast
Фух... Спасибо большое! Помогло!

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

2013-11-06 Пенетрантность 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

Re: Nginx 1.2.7 + Apache2 2.2.24 on Freebsd 9.1 хостинг speedtest mini проблема с upload

2013-11-06 Пенетрантность 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

Re: Уточнение логики работы ngx_http_auth_request_module

2013-11-06 Пенетрантность Eugene Mychlo

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

2013-11-06 Пенетрантность 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

-- 
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

2013-11-06 Пенетрантность Eugene Mychlo

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

2013-11-06 Пенетрантность Maxim Dounin
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

2013-11-06 Пенетрантность Anton Yuzhaninov

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

2013-11-06 Пенетрантность Eugene Mychlo
Добрый день,

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

2013-11-06 Пенетрантность Maksim Kulik
А если тест проводить напрямую с 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

2013-11-06 Пенетрантность ans34
Я игрался с этими параметрами. Все изменения (пробовал начиная с 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

2013-11-06 Пенетрантность Maksim Kulik
Вопрос уже поднимался в рассылке. Советом было:

> Насколько я вижу, указанная зверушка проверяет скорость вверх с
> помощью 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