Здравствуйте. Блок map только декларируется на уровне http. Вычисление значения переменной происходит только при обращении к ней.
24 июня 2013 г., 8:38 пользователь ad...@sysadmins.el.kg < ad...@sysadmins.el.kg> написал: > Да, согласен, задача весьма нетривиальная. Оттого и прошу помощи. > Предложеный вариант с использованием 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<http://mailman.nginx.org/mailman/listinfo/nginx-ru> >>> >> ______________________________**_________________ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/**mailman/listinfo/nginx-ru<http://mailman.nginx.org/mailman/listinfo/nginx-ru> >> > > ______________________________**_________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/**mailman/listinfo/nginx-ru<http://mailman.nginx.org/mailman/listinfo/nginx-ru> > -- Best Regards, Vadim Lazovskiy
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru