Изменение файла WAR в соответствии с платформой по тому же URL с Tomcat

Мы создали 2 Приложения: 1 приложение для обслуживания пользователей экрана размером с ПК и другое для мобильных пользователей. Оба проекта будут размещены в разных экземплярах Tomcat в ROOTпапке.

Если у нас есть разные URL для обоих приложений (например, для рабочего стола у нас есть www.xyz.com и для черни m.xyz.com ) тогда это работает очень хорошо для нас.

Но нам не нужны разные домены для обоих. Скорее, мы хотим, чтобы один и тот же url работал для обоих веб-сайтов. Таким образом, в соответствии с платформой, конкретное приложение изменяется, но url-адрес тот же.

Как ROOT.warна Tomcat 1 и ROOt.warна Tomcat 2, они работают на одном url abc.com. Таким образом, используется один и тот же URL для мобильных и настольных приложений, но фактическое приложение выбирается в зависимости от того, является ли пользователь мобильным или нет.

Как я могу это сделать?

1 ответ

  1. Для этого требуется обратный прокси перед двумя приложениями. Это легко сделать и с httpdTomcat. Вот один способ, которым вы могли бы это сделать:

    1. Настройка httpdдля использования mod_jkпрокси-сервера Tomcat (в общем случае).
    2. Настройте mod_jkс работником для каждого из ваших приложений (desktop,mobile).
    3. Настройте httpdСmod_setenvif, чтобы выбрать работника на основе некоторых критериев (например, user-agent). Вы можете использоватьmod_rewrite, если хотите еще более сложную конфигурацию.

      JkWorkerIndicator JK_WORKER_NAME ## Note this is the default

      SetEnv JK_WORKER_NAME=desktop-worker ## Your default site

      BrowserMatch "mobile" JK_WORKER_NAME=mobile-worker

      SetHandler jakarta-servlet ## replaces JkMount

    Это позволит выбрать имя работника в зависимости от ваших критериев (поиск «мобильный» в заголовке клиента User-Agentв этом примере.

    Если бы это был мой продукт, я бы попытался собрать его все вместе в одном приложении с адаптивным дизайном, скрывая рабочие процессы, которые не подходят для устройств с ограниченным пространством.