已经找到了很多这个问题的答案,但似乎没有任何效果。
我有一个Windows EC2
实例,它已在端口8080
上安装并运行tomcat 8。我部署了我的应用程序,并且能够通过连接到实例并在浏览器中启动URL来以localhost:8080/myapp
的形式访问它。
但是,当我尝试通过aws外部的家庭网络访问它时,应用程序无法连接。
我知道这是因为security group
设置,但我已经涵盖了这一点。即使我做了
安全组 - >入境 - >编辑:
自定义TCP规则:TCP:8080:Source Anywhere
问题仍然存在。甚至尝试使用all traffic
添加规则,但仍然没有运气。
另外,要提一下,我的实例与Elastic IP
相关联。一直尝试使用elastic.ip:8080/myapp
访问但无法连接。
我还能尝试什么? tomcat的xml
中的任何配置?
答案 0 :(得分:0)
对实例进行映像并从创建的AMI中启动一个新实例。
EC2似乎在过去12小时内遇到问题,其中某些实例的公共界面无法接受流量,即使其他实例使用完全相同的启动配置启动(在我的情况下作为Auto Scaling的一部分)集团)没有问题。
如果您拥有高级技术支持,我建议您保持错误实例运行并提交带有实例ID,公共IP地址等的票证。
答案 1 :(得分: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
答案 2 :(得分: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
上收听,但这些内容无法在您当地主机之外播放。