Я хотел бы спросить, как HAProxy может помочь в запросах маршрутизации в зависимости от частей URL.
Чтобы дать вам обзор моей установки, у меня есть машина HAProxy и два бэкэнда:
- Веб-сайт IIS (основной сайт)
- Блог Wordpress на NGINX (дочерний сайт)
Пример использования:
Я рассчитываю направить запросы в зависимости от URL-адреса:
- www.website.com/lang/index.aspx → основной сайт
- www.website.com/lang/blog/articlexx → блог-сайт
URL-адрес доступа к блогу: "/server/blog/lang/articlexx", поэтому мне нужно переписать исходный запрос клиента в этот формат, который в основном переключает "блог" и "lang".
Из того, как я понял конфигурационную документацию и некоторые сообщения в сети, я мог использовать reqrep/reqirep для изменения HTTP-заголовков запроса до того, как он будет передан в бэкэнд. И если это правильно, то эта конфигурация должна работать:
frontend vFrontLiner
bind x.x.x.x:x
mode http
option httpclose
default_backend iis_website
# the switch: x/lang/blog -? x/blog/lang
reqirep ^/(.*)/(blog)/(.*) /if\2/\1/\3
acl blog path_beg -i /lang/blog/
use_backend blog_website if blog
backend blog_website
mode http
option httpclose
cookie xxblogxx insert indirect nocache
server BLOG1 x.x.x.x:80 cookie s1 check inter 5s rise 2 fall 3
server BLOG2 x.x.x.x:80 cookie s2 check inter 5s rise 2 fall 3 backup
Проблема:. Запросы, полученные блоком blog_website, все еще являются исходным URL-адресом "x/lang/blog".
Возможно, я что-то пропустил в части регулярного выражения, но моя главная проблема заключается в том, правильно ли я понимаю или не использовать reqirep в первую очередь. Я был бы признателен за любую помощь.
Большое спасибо.