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

admin at sysadmins.el.kg admin at sysadmins.el.kg
Mon Jun 24 04:38:48 UTC 2013


Да, согласен, задача весьма нетривиальная. Оттого и прошу помощи. 
Предложеный вариант с использованием 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 at sysadmins.el.kg
> <admin at 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 at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



Подробная информация о списке рассылки nginx-ru