Назад | Перейти на главную страницу

Сопоставление mod_jk с приложением с именем, отличным от псевдонима

У нас есть интернет-приложение под названием X, которое заменяется новым приложением под названием Y.

Мы используем экземпляры Tomcat, обслуживаемые Apache, для обслуживания X и Y с обменом данными через mod_jk. Один Tomcat размещает X, а другой - Y.

X и Y были установлены на наших производственных серверах - X используется нашими клиентами, а Y проходит финальное тестирование:

JkMount /x loadbalancer-x
JkMount /x/* loadbalancer-x
JkMount /y loadbalancer-y
JkMount /y/* loadbalancer-y

(давайте проигнорируем аспект безопасности через неясность!)

Когда придет время для Y перейти в производство, есть ли способ сопоставить старый URL-адрес новому приложению, чтобы www.mysite.com/x будет указывать на новое приложение вместо старого.

Это сработало бы, если бы на loadbalancer-y было развернуто приложение с именем x. В том-то и проблема - у нового приложения другое имя, но начальство хочет, чтобы URL остался прежним. Я пытаюсь найти способ сообщить JKMount запросить приложение Y, когда URL-адрес X нас запросил.

Это причина, по которой Context элемент существует.

  1. Указывая /x Префикс URL для нового воркера loadbalancer-y:

    JkMount /x loadbalancer-y
    
  2. Предполагая, что имя нового приложения newname, создать Context в твоем <Host> элемент, примерно так:

    <Host name="your.domain.name"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
        <Context path="/x" docBase="newname"/>
    </Host>
    

Просто указывая JkMount /x loadbalancer-y не сработает?

Вместо того, чтобы глобально использовать JkMount, почему бы не создать запись каталога / x в httpd и просто JkMount loadbalancer-y, а затем указать loadbalancer-y на фактическое приложение, а не на корень tomcat.