Tomcat 管理器 GUI

Tomcat 管理器 GUI

我有一台服务器http://example.com,它前面有一个名为“https://example.net执行 SSL 卸载”的负载均衡器,并将流量重定向到其上的端口 443 到 8080 http://example.com

服务器example.com被隔离在虚拟网络中,无法通过互联网访问。负载均衡器example.net可以访问example.com互联网,并且公开显示。

如何设置 Apache Tomcat 8 管理器 Web 界面,使其只能从 访问,http://example.com/manager而不能从 访问https://example.net/manager

答案1

我不知道您使用什么负载均衡器,因此无法提供特定的配置,我自己有一个可通过 Nginx 作为代理公开访问的 tomcat 服务器。

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 地址或跳转主机,我记得标准情况下只有本地主机可以连接到 HTML 管理器。

就我个人而言,我已从自己的安装中删除了管理器项目,以避免如果管理不当而出现相关的安全问题,而且我不需要它。

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
        allow="192.168.1.*" />

在 tomcat-users.xml 中为管理员设置用户和密码,就可以开始了。

答案2

在 Web 服务器中配置 Proxpass/Porxyalias。您应该在 HTTP(80) 中进行配置,但最佳做法是您可以在受限访问的情况下在 https 中加载

相关内容