ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Копирование запрос ов



On Fri, Feb 15, 2008 at 03:07:44PM +0300, Igor Sysoev wrote:

> On Fri, Feb 15, 2008 at 12:38:09PM +0100, Alex Sergeyev wrote:
> 
> > Подскажите. Хочется провести тестирование связки nginx+fastcgi под реальной
> > нагрузкой.
> > Сейчас стоит nginx+бэкэнд из нескольких апачей.
> > Каким образом организовать копирование запросов на тестовый бэкэнд так чтобы
> > ответ с него НЕ возвращался пользователю.
> > 
> > То есть при обращении по адресу http://mysite.com/index.php
> > запрос передается на
> > proxy_pass http://backend.mysite.com
> > 
> > и такой же запрос уходит на
> > http://test.mysite.com
> 
> Можно попробовать post_action:
> 
>        location ~ \.php$ {
> 
>            set   $ouri  $uri;
> 
>            fastcgi ...
> 
>            post_action   /post;
>        }
> 
>        location = post {
>            fastcgi ...
>            fastcgi_param  SCRIPT_FILENAME  /home/www/scripts/php$ouri;
>        }
> 
> post_action пока не поддерживает @post, поэтому призодится сохранять $uri.

С прилагаемым патчем можно делать так:

        location ~ \.php$ {
 
            fastcgi ...
 
            post_action   @post;
        }
 
        location @post {
            fastcgi ...
        }
 

-- 
Игорь Сысоев
http://sysoev.ru
Index: src/http/ngx_http_request.c
===================================================================
--- src/http/ngx_http_request.c (revision 1213)
+++ src/http/ngx_http_request.c (working copy)
@@ -2448,8 +2448,13 @@
 
     r->read_event_handler = ngx_http_block_reading;
 
-    ngx_http_internal_redirect(r, &clcf->post_action, NULL);
+    if (clcf->post_action.data[0] == '/') {
+        ngx_http_internal_redirect(r, &clcf->post_action, NULL);
 
+    } else {
+        ngx_http_named_location(r, &clcf->post_action);
+    }
+
     return NGX_OK;
 }
 


 




Copyright © Lexa Software, 1996-2009.