Мне в настоящее время интегрировали Apache 2.4 с двумя серверами кота в конфигурации выравнивания нагрузки.
Веб-сервер возьмет запросы из запроса DNS для двух доменных имен, http://domain1.nl и http://domain2.nl
Я хочу отправить запросы для http (s)://domain1.nl/к http (s)://domain1.nl/myapp1/login/login.do И http (s)://domain2.nl/к http (s)://domain2.nl/myapp2/
myapp1 и myapp2 оба работают на сбалансированных экземплярах кота обеих загрузок.
Включите mod_rewrite
и 'mod_proxy_http` на Apache.
<VirtualHost *:80>
ServerName domain1.nl
Rewriteengine on
RewriteRule ^/$ http://domain1.nl/myapp1/login/login.do
ProxyPass /myapp1 http://localhost:8080/myapp1
ProxyPassReverse /myapp1 http://localhost:8080/myapp1
</VirtualHost>
<VirtualHost *:80>
ServerName domain2.nl
Rewriteengine on
RewriteRule ^/$ http://domain2.nl/myapp2/
ProxyPass /myapp2 http://localhost:8080/myapp2
ProxyPassReverse /myapp1 http://localhost:8080/myapp2
</VirtualHost>
Есть ответ копирования / вставки. Но это, вероятно, приведет к большему количеству вопросов, потому что вы не получите фундаментального понимания, копируя / вставляя дословно.
Прочтите всю документацию Виртуальный хост Apache и Модуль перезаписи Apache так что вы действительно понимаете, как это работает, чтобы вы могли думать с этим.
Чтобы этот URL-адрес проходил через Apache на ваш внутренний сервер Tomcat, примените директивы прокси согласно документации Apache Proxy . Очевидно, что в приведенной выше конфигурации localhost
следует заменить на любой хост, на котором находится ваш сервер Tomcat.
Включить mod_rewrite и 'mod_proxy_http' на Apache.
В зависимости от версии apache эти моды могут не существовать (из-за 'mod_'), попробуйте вместо этого:
a2enmod rewrite
.
a2enmod proxy_http
service apache2 restart
И на вашем виртуальном хосте я перенаправляю на tomcat и исключаю php admin из переадресации:
ProxyPreserveHost on
ProxyRequests off
ProxyPass /phpmyadmin !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/