June 26, 2013 06:10AM
>  Данная строка изымается nginx'ом из бд посредством модуля ngx_postgres
>  исходя из того, что вернет как раз-таки та самая первая регулярка. Далее
>  ее нужно раздробить на 3 части и если $протокол = http://, то
>  спроксировать на $домен, если конечный сайт в подпапке - добавить $путь
>  к $request_uri, если же $протокол = https:// - тогда просто сделать
>  редирект.

Если я ничего не путаю, то после того как вы сделали запрос к базе, nginx возвращает результат и сам с ним уже никак не взаимодействует.
Здесь я вижу несколько вариантов решения:
1. каким то чудом после обращения к базе, что бы плагин выставлял дополнительные заголовки, например X-Query-Url: http(s)://test.local/(site([1-9])), и второй X-Accel-Redirect: ( а здесь указание на location nginx который будет парсить заголовок X-Query-Url и делать нужные действия)
2. использовать perl модуль и работу с БД вести внутри него.
3. наиболее адекватный, на мой взгляд, это написать легкий backend скрипт который будет делать всю работу.



26.06.2013, 08:21, "admin@sysadmins.el.kg" <admin@sysadmins.el.kg>:

>  Благодарю за помощь с первой регуляркой - это как раз то, что доктор
>  прописал. А вот во втором случае встроенными переменными не обойтись,
>  поскольку указанный мной url
>
>  http(s)://test.local/(site([1-9]))
>
>  не является переданным от клиента (иначе проблемы №2 не было бы вообще).
>  Данная строка изымается nginx'ом из бд посредством модуля ngx_postgres
>  исходя из того, что вернет как раз-таки та самая первая регулярка. Далее
>  ее нужно раздробить на 3 части и если $протокол = http://, то
>  спроксировать на $домен, если конечный сайт в подпапке - добавить $путь
>  к $request_uri, если же $протокол = https:// - тогда просто сделать
>  редирект. Вот как-то так у меня задача поставлена.
>
>  25.06.2013 17:53, Kron пишет:
>>   1.
>>
>>   map $request_uri $num {
>>   "~*/pages/Test/(?<n>\d+)" $n;
>>   }
>>
>>   2.
>>
>>   http://nginx.org/ru/docs/http/ngx_http_core_module.html
>>   читать про "встроенные переменные"
>>
>>   25.06.2013, 11:31, "admin@sysadmins.el.kg" <admin@sysadmins.el.kg>:
>>>     Доброго всем!
>>>
>>>     Помогите плз с регулярками для map'ов.
>>>
>>>     Имеется строка типа:
>>>       https://www.facebook.com/pages/Test/123456789123456?sk=app_987654321987654
>>>     которая приходит как реферал. Нужно получить из нее первый блок цифр -
>>>     "123456789123456".
>>>
>>>     Также имеется строка http(s)://test.local/(site([1-9])) которую мне
>>>     нужно разбить на 3 части - протокол, домен, uri. То есть получить
>>>     отдельно "http(s)://", "test.local" и "/(site([1-9]))".
>>>
>>>     Только что-то я не совсем понимаю как их составлять... :-[
>>>
>>>     _______________________________________________
>>>     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

_______________________________________________
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: 86
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