ПРОЕКТЫ 


  АРХИВ 


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: Проксирование по referrer


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Проксирование по referrer
  • From: Vadim Lazovskiy <vadim.lazovskiy@xxxxxxxxx>
  • Date: Mon, 24 Jun 2013 08:55:07 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=Yu3WKzcSp92zrC9i51chxJl5ts0D8x5KjckQGChjAiI=; b=Wdmocjvi6eISUJ0uzNywQEZkGLMADzj2e3XDfylgJ49djjK4DhYabDjytuMiaieEyB sX5V1t6qZ560WQkG4ychAIjIk8yuAxIzRdVA+xtWGyrtzYafyMpcZlVDxI2vK8wX17pz qbdAGWCavwT3fOy11J+Ax7aQQ1/dbLb9T/KuR+FlOU8BT5day9ACkn3jsvdt1fwGgVmO 9WSeIMVaWiCtrzt/qzwMMDmwCNE1Tc8bKPsJ4ldYdgjmwuAzZ/ck4wDCz5raqfBsi1rX JE0cf5v3vgSbu72mM+wRRuJeTZo12h6QhbW4/fF0cihswtnIWCkLakAGAFJwpdzFsuii HrZg==
  • In-reply-to: <51C7CD58.5070407@sysadmins.el.kg>
  • References: <51C42ECB.9090702@sysadmins.el.kg> <CAFHpkQG8g=1YQ0+yeUegWbsCmEjPVXaxRiepxQLfhV7pL=zsSg@mail.gmail.com> <51C7CD58.5070407@sysadmins.el.kg>

Здравствуйте.

Блок map только декларируется на уровне http. Вычисление значения переменной происходит только при обращении к ней.


24 июня 2013 г., 8:38 пользователь admin@xxxxxxxxxxxxxxx <admin@xxxxxxxxxxxxxxx> написал:
Да, согласен, задача весьма нетривиальная. Оттого и прошу помощи. Предложеный вариант с использованием map не подходит потому, что map работает в блоке http, мне же критично запускать его из server.

 Вкратце о приложении - веб-страница, хрянящаяся на site[1-9].tld и загружаемая на сторонние сайты посредством <iframe>...</iframe>.  На каждом бэкенде она разная, количество бэкендов растет в геометрической прогресии, а некоторые сайты, внедряющие к себе это приложение (напр. facebook) требуют ssl-шифрование. Чтобы избежать каши с ssl-сертификацией всех бэкендов было сочтено целесообразным использование прокси, шифрующего соединения, и проксирующего на http-бэкенды.


как-то так можно попробовать вытащить

map $http_referer $backend {
   default -;
   ~*(?<b>[^\;]+)(?:\;|$) $b;
}


это решит "грабли No.1", но задача в целом выглядит весьма запутанной.


21 июня 2013 г., 16:45 пользователь admin@xxxxxxxxxxxxxxx
<admin@xxxxxxxxxxxxxxx> написал:
Доброго всем дня.

Пытаюсь поднять сервер для проксирования некоего узкоспециализированого
приложения.  Аппликуха у себя формирует ссылки на него, с указанием в
качестве реферала ссылку на один из серверов за ним.
Т.е. в теории это должно выглядеть сл. образом - посетитель жмет на сайте
ссылку ведущую на site.tld, прокси на этом самом site.tld разобрав
$http_referrer извлекает из него ссылку к site[1-9].tld дописывает ему в
куку адрес нужного из этих самых site[1-9].tld и отправляет на
соответствующий сервер. Ну а дальнейшие обращения уже на основе кук.

Грабли No.1: - предполагал указать адрес прокси в виде переменной:

if ($http_referer ~* "*\.*") {
set $backend "извлеченный из реферала домен";
}
location / {
             proxy_pass http://$backend;
...
Только как?

Грабли No.2: то же что и Грабли1 только с куками.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru



--
Best Regards,
Vadim Lazovskiy
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.