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

Графический интерфейс Tomcat Manager

У меня есть сервер 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

https://letsencrypt.org/

https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-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 &quot;%r&quot; %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 с ограниченным доступом.