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

Использование Tomcat за Apache2 Http с разными путями контекста

На нашем веб-сервере Ubuntu у нас есть HTTP-сервер Apache2 в сочетании с приложением JSF, работающим на сервере приложений Tomcat8 с использованием коннектора AJP 1.3 и HTTPS / SSL. Я хочу, чтобы мое приложение, работающее на localhost: 8009 / myApp /, было доступно из https://subdomain.domain.com (поддомен и домен, конечно, являются владельцами). Другими словами, мне нужны разные пути контекста (/ на apache2, / myApp на tomcat)

Теперь я столкнулся с проблемой, что - хотя страница приветствия доступна - все ресурсы / изображения / ссылки не работают, поскольку они все еще содержат путь контекста / myApp. Я безуспешно пытался установить соответствующие настройки ProxPass / ReverseProxyPass.

<VirtualHost _default_:443>
        ServerAdmin admin@domain.com
        DocumentRoot /srv/www/subdomain.domain.com
        ServerName subdomain.domain.com

        RewriteEngine On
        RewriteCond %{HTTP_HOST} !^subdomain\.domain\.com$ [NC]
        RewriteRule .? https://subdomain.domain.com%{REQUEST_URI} [R=301,L]

        <Location />
                ProxyPass ajp://localhost:8009/myApp/ connectiontimeout=5 timeout=300
                ProxyPassReverse https://localhost:8080/myApp/
                ProxyPassReverse https://subdomain.domain.com/myApp/
                ProxyPassReverse ajp://localhost:8009/myApp/
                ProxyPassReverseCookiePath /myApp/ /

                #Order deny,allow
                Allow from all
        </Location>

</VirtualHost>

PS: В качестве обходного пути myApp в настоящее время работает в корневом контексте "/" на tomcat, но я хочу изменить это, чтобы разместить несколько веб-приложений.

В tomcat conf / server.xml у меня настроен следующий коннектор:

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
           address="127.0.0.1"
           proxyName="subdomain.domain.com" proxyPort="443" secure="true" />

вы можете попробовать добавить это условие перезаписи:

RewriteCond %{REQUEST_URI} ^/myApp/ [NC]
RewriteRule ^/myApp(.*) https://subdomain.domain.com$1 [R=301,L]

как будто у ваших дополнительных вещей должна быть правильная ссылка:

https://localhost:8080/myApp/ вместе с https://localhost:8080/myApp/myApp/