Vadim Lazovskiy
June 24, 2013 12:56AM
Здравствуйте.

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


24 июня 2013 г., 8:38 пользователь admin@sysadmins.el.kg <
admin@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 пользователь admin@sysadmins.el.kg
>> <admin@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-ruhttp://mailman.nginx.org/mailman/listinfo/nginx-ru
>>>
>> ______________________________**_________________
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/**mailman/listinfo/nginx-ruhttp://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
> ______________________________**_________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/**mailman/listinfo/nginx-ruhttp://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
Subject Author Posted

Проксирование по referrer

Raven_kg June 21, 2013 06:48AM

Re: Проксирование по referrer

Илья Шипицин June 23, 2013 11:44AM

Re: Проксирование по referrer

Raven_kg June 24, 2013 12:40AM

Re: Проксирование по referrer

Vadim Lazovskiy June 24, 2013 12:56AM

Регулярки для map

Raven_kg June 25, 2013 03:32AM

Re: Регулярки для map

kron June 25, 2013 07:54AM

Re: Регулярки для map

Raven_kg June 26, 2013 12:22AM

Re: Регулярки для map

kron June 26, 2013 06:10AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 236
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready