tomcat - VPC私有(private)子网EC2实例访问tomcat manager控制台

标签 tomcat amazon-ec2 vpc

我们有一个环境,其中有两个 EC2 实例,一个在 VPC 的公共(public)子网中,这是我们的 Web 服务器,另一个在 VPC 的私有(private)子网中,它是 pur 应用程序服务器。私有(private)子网中的 EC2 实例正在运行 tomcat。我们如何从浏览器访问 tomcat 管理器控制台?

我们的安全组如下:

对于具有公共(public) IP 的 Web 服务器,我们允许来自 0.0.0.0/0(来自任何地方)的端口 22、80 和 8080。这些是入站规则。 出站规则是允许端口 22 进入私有(private)子网的安全组。这将允许从 Web 服务器通过 ssh 连接到应用程序服务器。

私有(private)子网的入站允许来自公共(public)子网的 22,以及 80 和 8080。

NAT 网关允许到 Internet 的出站流量。可以从应用程序服务器访问 Internet。

我现在如何:

  1. 使用浏览器访问 tomcat 管理器控制台? (Tomcat 已在应用程序服务器上配置。我们创建了一个旧实例的镜像并启动了这个实例)

  2. 如果我们需要将任何 war 文件部署到应用程序服务器,我们该怎么做?

谢谢你..

最佳答案

当前设计的解决方案:

该计划不安全,因为您需要将网络服务器上的端口 22 暴露给互联网,但可以解决您的问题。您可以在入站角色中限制源 IP。

在目前的设计中,没有堡垒(jumphost),所以你必须使用网络服务器(具有弹性IP)作为堡垒跳转到应用程序(tomcat)服务器。

您需要在浏览器中设置 ssh socket 代理才能访问 tomcat 管理控制台,在 google 中搜索 key world ssh socket proxy 您会得到很多文档来教您如何做到这一点。

两种改进方式:

方法#1,安装vpn。

使用 EIP 在公共(public)子网中创建一个新的 ec2 实例并在其上安装 VPN。例如,openvpn。设置仅允许从该跳转主机登录到其他 ec2 实例的安全组

登录openvpn后,浏览器应该可以直接访问tomcat manager console。

方式#2,使用ssh套接字代理

在公共(public)子网中使用 EIP 创建一个 ec2 实例,微型类型在当前设计中应该足够好。

使用新的 Bastion 实例,您应该可以在浏览器中设置 ssh 套接字代理 以访问 tomcat 管理器控制台。

另一个与浏览器问题无关的改进

在您的 VPC 中添加 ELB,然后您可以将 Web 服务器移动到私有(private)子网。

关于tomcat - VPC私有(private)子网EC2实例访问tomcat manager控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34894310/

相关文章:

tomcat - 为 JNDIRealm 创建 userPattern

java - 如何使用tomcat启动网络套接字应用程序?

amazon-web-services - 将 cloudformation 中的资源列入白名单

php - 是否可以使用 php pdo 连接到 ec2 实例上的远程数据库?

java - 如何解决我的 Jsp 程序中的错误?

java - 如何防止重新启动我的 Web 应用程序(不仅重新启动 tomcat 服务器)?

php - 无法将 Laravel 应用程序部署到 EC2

amazon-web-services - AWS CloudFormation 是否支持 AWS::EC2::VPCEndpoint 的标签属性

javascript - VPC下Lambda访问Api Gateway

amazon-web-services - KOPS:在 AWS VPC 上具有私有(private)网络的 Kubernetes 集群:错误列出节点