У меня есть сервер http://example.com
с балансировщиком нагрузки перед ним с именем https://example.net
выполнение разгрузки SSL и перенаправление трафика на порт 443 на нем на 8080 в http://example.com
.
Сервер example.com
изолирован в виртуальной сети и недоступен из Интернета. Балансировщик нагрузки example.net
может достигать example.com
и находится в открытом доступе в Интернете.
Как настроить веб-интерфейс диспетчера Apache Tomcat 8 так, чтобы он был доступен только из http://example.com/manager
но не из https://example.net/manager
?
Я не знаю, какой балансировщик нагрузки вы используете, поэтому не могу указать конкретную конфигурацию для этого, у меня есть общедоступный сервер tomcat через Nginx в качестве прокси.
Nginx
upstream websites {
server 192.168.x.x:8080 fail_timeout=0;
}
server {
listen 80;
listen 443 ssl;
server_name www.example.com example.com;
location / {
proxy_pass http://websites/;
include proxy_params;
}
#SSL configuration here
}
Я также разрешаю Nginx выполнять завершение SSL и сжатие, потому что им намного проще управлять и настраивать, и если я хочу позже создать балансировку нагрузки, я также могу сделать это с Nginx, поэтому нет причин делать это в Tomcat. https://www.digitalocean.com/community/tutorials/how-to-add-the-gzip-module-to-nginx-on-ubuntu-14-04
Затем в Tomcat server.xml добавьте новый виртуальный хост для вашего сайта, если он еще не существует.
<Host name="www.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>example.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_example_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
Затем в файле manager.xml для проекта менеджера вы можете указать, кто может получить доступ к HTML-странице менеджера, либо установить его на свой общедоступный IP-адрес, либо на узел перехода, поскольку я помню, что по умолчанию только localhost может подключаться к менеджеру HTML.
Лично я удалил проект менеджера из своей собственной установки, чтобы избежать проблем с безопасностью, связанных с ним, если он не управляется правильно и мне он не нужен.
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.1.*" />
Установите пользователя и пароль для менеджера в tomcat-users.xml, и все готово.
Настройте Proxpass / Porxyalias на веб-сервере. Для этого вы должны выполнить конфигурацию в HTTP (80), но лучше всего вы можете загружать в https с ограниченным доступом.