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