Существует один вариант использования, который я пока не могу решить с помощью функции балансировки нагрузки коннектора Apache Jakarta (Tomcat).
У меня есть один сайт IIS, к которому подключен один Apache Tomcat Connector. Мне нужно "перенаправить" трафик на другой Tomcat в зависимости от запрашиваемого URI. Это довольно просто сделать, когда у вас есть только приложения с определенным контекстом (например, / app1, / app2 и т. Д.). Моя проблема в том, что у меня есть одно приложение (в одном Tomcat), которое находится в / (ROOT), и одно другое приложение (в другом Tomcat), которое находится в /app1.
.
Я попробовал следующий конфиг в uriworkermap.properties:
/*=loadBalancer1
/app1/*=loadBalancer2
Но это не работает, потому что «loadBalancer1» забирает весь трафик. «loadBalancer2» игнорируется, что имеет смысл, поскольку / app1 / * соответствует / * (регулярное выражение мудрое).
Я также попытался добавить исключение следующим образом:
/*=loadBalancer1
!/app1/*=loadBalancer1
/app1/*=loadBalancer2
Но это тоже не работает, потому что «loadBalancer1» по-прежнему принимает весь трафик, но просто игнорирует этот шаблон «/ app1 / *» URI. «loadBalancer2» просто снова игнорируется.
Любое предложение, учитывая, что у меня не может быть 2 сайтов IIS, и при этом я не могу переместить приложение, находящееся в / (ROOT), в другой контекстный путь в Tomcat?
Спасибо
Edit:
Вместо того чтобы использовать только один Apache Tomcat Connector, я использую 1 коннектор для каждого Tomcat на одном сайте IIS.
uriworkermap.properties # 1: для Tomcat с приложением в / (ROOT)
/*=wlb
!/app1/*=wlb
uriworkermap.proerties # 2: для Tomcat с приложением в / app1
/app1/*=wlb
Соединитель # 1 будет игнорировать трафик по URI "/ app1 / *", но соединитель # 2 будет перехватывать его (и наоборот).
Теперь я могу устанавливать различные параметры виртуальной машины и распределение памяти для своих приложений!
Я открыт для комментариев или лучшего решения ..