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

Apache2 ProxyPass для Tomcat, DirectoryIndex с исключениями

Мы развертываем приложение SpringMVC и используем внешний интерфейс Apache, чтобы нашим менее технически подкованным сотрудникам было проще загружать изображения в приложение без необходимости повторного развертывания приложения и подобных неприятностей; он также обрабатывает наш SSL, так что наше развертывание SSL можно легко стандартизировать.

Для этого мы используем внешний интерфейс Apache2, расположенный на: 443, который обрабатывает SSL и с этой целью соединяет данные из нашей CMS:

ProxyPass /client-ui/images/rich/ !
Alias /client-ui/images/rich/ /var/lib/cms/images/

а также что-то вроде

<Location /client-ui/>
        ProxyPass http://localhost:8080/client-ui/ timeout=3600
        ProxyPassReverse http://localhost:8080/client-ui/
</Location>

Одна вещь, о которой наше развертывание еще не позаботилось, это то, что приложение продолжает жить. /client-ui/betptc/home поэтому, когда кто-то посещает сайт, он должен нажать example.com/client-ui/betptc/home. Я хотел бы настроить DirectoryIndex на / это просто перенаправляет на основное приложение.

Однако, если я использую ProxyPass, как я делаю с каталогом изображений, весь домен не будет проксироваться в Tomcat; в /client-ui/ блок не распознается и не соблюдается.

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

Почему не просто ..

RedirectMatch permanent ^/$ http://example.com//client-ui/betptc/home

Но исключение прокси тоже подойдет.

ProxyPassMatch ^/$ !

(это должно быть выше вашего существующего ProxyPass строк, так как они обрабатываются по порядку)