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