Я хотел бы спросить, как HAProxy может помочь в маршрутизации запросов в зависимости от частей URL.
Чтобы дать вам обзор моих настроек, у меня есть машина HAProxy и два бэкэнда:
- Веб-сайт IIS (основной сайт)
- Блог Wordpress по NGINX (дочерний сайт)
Вариант использования:
Я ожидаю перенаправления запросов в зависимости от URL:
- www.website.com / lang / index.aspx -> основной сайт
- www.website.com / lang / blog / articlexx -> блог-сайт
URL доступа к блогу: " / server / blog / lang / articlexx ", поэтому я должен переписать исходный клиентзапрос к этому формату - который в основном переключает «блог» и «язык».
Из того, как я понял документацию по конфигурации и некоторые сообщения в сети, я мог бы использовать 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 или нет.Буду признателен за любую помощь.
Большое спасибо.