我在窗口2008服务器上安装了Amazon EC2微型实例,并在那里部署了一个使用java并部署在tomcat 7服务器上的示例Web应用程序。 我可以在本地实例访问它,但是当我尝试在AWS实例之外访问它时,可以使用AWS公有DNS /公有IP地址/实例的弹性IP地址从我的家庭计算机中进行说明,它使我“网页为无法使用”。
我在这个论坛上经历了许多类似的问题,我想我已经完成了他们所要做的所有事情,但仍然没有成功。
这是我所做的/确认的。
1.本地主机工作,所以应用程序监听端口80。
2.为端口80上的HTTP添join站规则,适用于我的实例正在使用的安全组下的所有人。
3.检查Windows实例上的防火墙设置,确保端口80未被阻止。
4.甚至尝试closures防火墙,但没有成功。
如果有人能帮助我,我将不胜感激。
谢谢,NS
当我在Windows Server 2012 ec2实例上安装JetBrains YouTrack时,遇到了类似的令人沮丧的问题。 对我来说有效的是打开java 专门使用的Windows防火墙端口并禁用World Wide Publishing服务端口。 我还必须在LocalSystem帐户下运行YouTrack服务,而不是默认帐户。
尝试这个:
如果正在使用,请closuresIIS中的默认网站
运行一个netstat -a -b来发现java.exe试图绑定到的端口,例如:
TCP 0.0.0.0:80 WIN-9NFIG6IEPT6:0聆听[java.exe]
TCP 127.0.0.1:49306 WIN-9NFIG6IEPT6:49307 ESTABLISHED [java.exe]
打开服务控制pipe理器并右键单击您的服务并打开属性对话框。 在“login为”选项卡上,select“ 本地系统帐户”作为服务运行的帐户。 这个用户是pipe理员是很重要的
使用TCP端口80和任何其他可能需要的端口为Tomcat创build新的规则。
保存规则并从服务器外部testing您的URL。
你不应该完全closures防火墙设置。 这会危及你的应用程序的安全。 而是修改Windows服务器入站防火墙规则,以允许特定端口上的传入stream量。
我有一个类似的问题,我在通过AWS EC2configuration的Windows 2012服务器上的Tomcat 8上部署了一个应用程序。 使用虚拟机的公有IP地址replaceURL中的stringlocalhost后,我可以从虚拟机内访问http:// localhost:8080上已部署的应用程序,但不能访问公共Internet。
它改变了防火墙规则,以允许在端口80(http),端口443(https)和端口8080(这是我的web应用程序默认部署在tomcat服务器上的端口)传入stream量后,它工作正常。
我已经在下面的链接中logging了防火墙和安全组configuration:
您可能错过了configurationWeb服务器。 您可以通过以下方式连接到服务器来testing:
telnet $IP 80
如果你没有得到一个错误,你可以连接。 在这种情况下,您没有正确设置Web服务器。
对于您的实例,可能需要在AWS安全组中input入站TCP端口80的规则。
您可能需要使端口可用于侦听来自AWS控制台的任何公共呼叫。
请参阅链接..这将是更具体的。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
您可以允许与此安全组关联的所有实例之间或与另一个安全组关联的实例与与此安全组关联的实例之间进行通信。 单击添加规则,select所有ICMP,然后开始在源中键入安全组的ID; 这为您提供了一个安全组列表。 从列表中select安全组。 重复TCP和UDP协议的步骤。 完成后点击保存。
请按照此链接http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-network-security.html ,章节安全组
为您的EC2实例创build一个安全组,以允许您希望的端口上的连接。
它主要是Windows防火墙的问题。 我尝试了同样的步骤,因为它没有成功。 我转过防火墙的那一刻就没事了。 我认为安全不应该受到影响,因为我们正在configuration入站出站规则。