Ответ 1
Вы близко, попробуйте немного изменить регулярное выражение, чтобы учесть фрагмент версии:
ProxyPassMatch ^/.*?/APP.*?/v[0-9]+/(.*)$ http://localhost:8080/AppContext/$1
ProxyPassReverse
в основном обеспечивает переписывание полей заголовка местоположения на лету в ответах, заданных прокси-сервером. Поэтому, когда он возвращает 301 переадресацию, скажем, http://localhost:8080/AppContext/something
, apache знает, чтобы изменить его на /APP/v1/something
, поэтому информация за прокси не будет отображаться. Поскольку у вас есть динамический URL-адрес, используемый в обратном прокси, здесь у вас есть несколько вариантов. Вы можете отправить его на балансировщик HAProxy (не уверен, что это для вас), или вы можете просто выбрать один и надеяться на лучшее. Например, если у вас есть балансировщик нагрузки в /APP/balancer/
, который затем отправляет запросы /APP/v1/
, /APP/v2/
, /APP/v3/
и т.д. Затем вы можете сделать это:
ProxyPassReverse /APP/balancer http://localhost:8080/AppContext
В противном случае вы можете просто указать его на один и надеяться на лучшее:
ProxyPassReverse /APP/v1 http://localhost:8080/AppContext