2

已经找到了很多关于这个问题的答案,但似乎没有任何效果。

我有一个 WindowsEC2实例,它在 port 上安装并运行了 tomcat 8 8080。我已经部署了我的应用程序,我可以localhost:8080/myapp通过连接到实例并在浏览器中启动 url 来访问它。

但是,当我尝试通过 aws 之外的家庭网络访问它时,应用程序无法连接。

我知道这是因为security group设置,但我已经涵盖了。即使在我这样做之后

安全组 -> 入站 -> 编辑:

自定义 TCP 规则 : TCP: 8080 : Source Anywhere

问题仍然存在。甚至尝试添加规则,all traffic但仍然没有运气。

另外,值得一提的是,我有一个Elastic IP关联到我的实例。一直在尝试访问elastic.ip:8080/myapp但无法连接。

我还能尝试什么?tomcat的有什么配置xml吗?

4

3 回答 3

0

我会检查“wget”是否工作。如果是,则意味着 tomcat 服务器已启动并正在运行。

wget <hostname>:8080

此外,您家中的计算机可能有防火墙,阻止您检索端口 8080。您可以尝试从您的家用计算机远程登录到端口 8080 的服务器吗?

最后还要检查服务器上的 IPtables:-

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
于 2018-05-25T13:20:39.437 回答
0

确保 Tomcat 不仅在监听127.0.0.1:8080. 这将使其可用于 localhost 但不能用于其他地方。在您server.xml的连接器地址中查找并确保将其设置0.0.0.0为侦听所有接口:

# Example
<Connector port="8080" protocol="HTTP/1.1" 
           address="0.0.0.0" />

您还可以查看输出,netstat -an | grep :8080您应该看到如下一行

tcp        0      0 0.0.0.0:8080              0.0.0.0:*               LISTEN

相反,如果你看到

tcp        0      0 127.0.0.1:8080              0.0.0.0:*               LISTEN

您知道它只是在侦听在127.0.0.1本地主机之外不可用的内容。

于 2018-05-25T14:03:58.317 回答
0

映像实例并从创建的 AMI 启动新实例。

EC2 似乎在过去 12 小时内遇到问题,其中某些实例的公共接口不接受流量,即使使用完全相同的启动配置启动的其他实例(在我的情况下作为 Auto Scaling 组的一部分)没有问题.

如果您有高级技术支持,我建议您让坏实例继续运行,并使用实例 ID、公共 IP 地址等提交工单。

于 2018-05-23T15:05:03.620 回答