HaProxy reqrep, используя последнюю часть пути - PullRequest
0 голосов
/ 09 октября 2018

Это для HaProxy 1.4, поэтому нам нужно решение reqrep, если это возможно.

У нас есть входящие URL, которые имеют переменные пути, такие как:

my.url.com / oldpath1 / oldpath2/ oldpath3 / oldpath4 / capture_path

my.url.com / oldpath1 / oldpath2 / oldpath3 / capture_path

my.url.com / oldpath1/ oldpath2 / capture_path

Нам нужно правило reqrep, чтобы получить capture_path для перезаписи URL на:

my.url.com / newpath/ capture_path

Мы попробовали следующие шаблоны регулярных выражений без успеха:

reqrep ^ ([^ \] *) \ ([^ /] +) $ \ 1\ / newpath / \ 2

reqrep ^ ([^ \] *) \ ([^ /] +) (\ [^ \] +) $ \ 1 \ / newpath / \ 2 \ 3

Оба эти шаблона, похоже, полностью игнорируются, но у нас возникают проблемы с устранением неполадок, поскольку ничего не получается в журналах.

Если мы это сделаем:

reqrep ^ ([^\] *) \ /oldpath1/oldpath2/(.*) \ 1 \ / newpath / \ 2

Это работает для my.url.com/ oldpath1 / oldpath2 / capture_path, но, похоже, ему не нравится часть ([^ /] +) $ регулярного выражения, которая пытается динамически захватить последнюю часть пути.

Записьправило для каждого варианта - не вариант, так как «oldpath1» и т. д. сами по себе являются переменными, а не статическими значениями.

Кто-нибудь сталкивался с этой проблемой раньше?

...