Re: Разный proxy pass в зависимости от $http referer

Борис Долгов boris на dolgov.name
Чт Янв 14 15:38:41 MSK 2010


Насколько я понима, очередные проблемы с if.
Я бы сделал так:
proxy_set_header  X-Real-IP  $remote_addr;
location / {
    if ($http_referer ~* "^http://(.*)/fw-in/(.*)$" ) { return 412; }
    if ($http_referer ~* "^http://(.*)/webrelay/(.*)$" ) { return 413;}
    error_page 412 =@in;
    error_page 413 =@web
    proxy_pass htto://login:80/;
    proxy_redirect   default;
}
location @in {
    proxy_pass htto://in:80/;
    proxy_redirect   default;
}
location @web {
    proxy_pass htto://web:80/;
    proxy_redirect   default;
}

Ах, как не хватает оператора безусловного перехода в именованый location.

2010/1/14, lazutov <nginx-forum at nginx.us>:
> Здравствуйте!
> Цель: в зависимости от referer перенаправить запрос.
>
> location / {
>      set $ups 'http://login:80/';
>      if ($http_referer ~* "^http://(.*)/fw-in/(.*)$" ) {set $ups
> 'http://in:80/';}
>      if ($http_referer ~* "^http://(.*)/webrelay/(.*)$" ) {set $ups
> 'http://web:80/';}
>      proxy_pass $ups;
> # this line is 258, the next is 259
>      proxy_redirect   default;
>      proxy_set_header  X-Real-IP  $remote_addr;
> }
>
>
> Результат:
>
>  "proxy_rewrite_location default" must go after the "proxy_pass" directive
> in /etc/nginx/conf/nginx.conf:259
>
> Вопрос: где я не прав?
> Заранее спасибо!
> PS это в server {...} с ssl;
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,40929,40929#msg-40929
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>


-- 
С уважением, Борис Долгов.
icq 77556665
e-mail boris at dolgov.name



Подробная информация о списке рассылки nginx-ru