Мы развертываем приложение 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
строк, так как они обрабатываются по порядку)