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

2013-06-26 Пенетрантность Kron
  Данная строка изымается 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, ad...@sysadmins.el.kg ad...@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, ad...@sysadmins.el.kg ad...@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

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

2013-06-25 Пенетрантность ad...@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, ad...@sysadmins.el.kg ad...@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