На нашем веб-сервере 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/