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

2013-06-23 Пенетрантность Vadim Lazovskiy
Здравствуйте.

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


24 июня 2013 г., 8:38 пользователь ad...@sysadmins.el.kg <
ad...@sysadmins.el.kg> написал:

> Да, согласен, задача весьма нетривиальная. Оттого и прошу помощи.
> Предложеный вариант с использованием map не подходит потому, что map
> работает в блоке http, мне же критично запускать его из server.
>
>  Вкратце о приложении - веб-страница, хрянящаяся на site[1-9].tld и
> загружаемая на сторонние сайты посредством   На каждом
> бэкенде она разная, количество бэкендов растет в геометрической прогресии,
> а некоторые сайты, внедряющие к себе это приложение (напр. facebook)
> требуют ssl-шифрование. Чтобы избежать каши с ssl-сертификацией всех
> бэкендов было сочтено целесообразным использование прокси, шифрующего
> соединения, и проксирующего на http-бэкенды.
>
>
>  как-то так можно попробовать вытащить
>>
>> map $http_referer $backend {
>>default -;
>>~*(?[^\;]+)(?:\;|$) $b;
>> }
>>
>>
>> это решит "грабли No.1", но задача в целом выглядит весьма запутанной.
>>
>>
>> 21 июня 2013 г., 16:45 пользователь 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
>



-- 
Best Regards,
Vadim Lazovskiy
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2013-06-23 Пенетрантность ad...@sysadmins.el.kg
Да, согласен, задача весьма нетривиальная. Оттого и прошу помощи. 
Предложеный вариант с использованием map не подходит потому, что map 
работает в блоке http, мне же критично запускать его из server.


 Вкратце о приложении - веб-страница, хрянящаяся на site[1-9].tld и 
загружаемая на сторонние сайты посредством   На 
каждом бэкенде она разная, количество бэкендов растет в геометрической 
прогресии, а некоторые сайты, внедряющие к себе это приложение (напр. 
facebook) требуют ssl-шифрование. Чтобы избежать каши с 
ssl-сертификацией всех бэкендов было сочтено целесообразным 
использование прокси, шифрующего соединения, и проксирующего на 
http-бэкенды.



как-то так можно попробовать вытащить

map $http_referer $backend {
   default -;
   ~*(?[^\;]+)(?:\;|$) $b;
}


это решит "грабли No.1", но задача в целом выглядит весьма запутанной.


21 июня 2013 г., 16:45 пользователь 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

Re: ограничение скорости

2013-06-23 Пенетрантность Vadim Lazovskiy
Здравствуйте.

Думаю, стоит взглянуть: http://mdounin.ru/hg/ngx_http_ip_tos_filter_module/
Трафик далее зашейпить.


24 июня 2013 г., 1:06 пользователь muhas  написал:

> 503 отдавать? Мне надо скорость ограничить, а не посетителей что не влазят
> выгонять...
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,240203,240290#msg-240290
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> 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

Re: ограничение скорости

2013-06-23 Пенетрантность muhas
503 отдавать? Мне надо скорость ограничить, а не посетителей что не влазят
выгонять...

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,240203,240290#msg-240290

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

Re: ограничение скорости

2013-06-23 Пенетрантность Михаил Монашёв
Здравствуйте, muhas.

> limit_rate устанавливает ограничения только для конкретного пользователя.
> Есть ли возможность хоть как то ограничить общую скорость для всех
> пользователей на уровне location  или server?

http://nginx.org/ru/docs/http/ngx_http_limit_req_module.html

-- 
С уважением,
 Михаил  mailto:postmas...@softsearch.ru

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

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

2013-06-23 Пенетрантность Илья Шипицин
как-то так можно попробовать вытащить

map $http_referer $backend {
  default -;
  ~*(?[^\;]+)(?:\;|$) $b;
}


это решит "грабли No.1", но задача в целом выглядит весьма запутанной.


21 июня 2013 г., 16:45 пользователь 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