Да, согласен, задача весьма нетривиальная. Оттого и прошу помощи. Предложеный вариант с использованием 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 пользователь ad...@sysadmins.el.kg
<ad...@sysadmins.el.kg> написал:
Доброго всем дня.

Пытаюсь поднять сервер для проксирования некоего узкоспециализированого
приложения.  Аппликуха у себя формирует ссылки на него, с указанием в
качестве реферала ссылку на один из серверов за ним.
Т.е. в теории это должно выглядеть сл. образом - посетитель жмет на сайте
ссылку ведущую на 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@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

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

Ответить