如何通过 HTTP 访问 Amazon EC2 实例?

如何通过 HTTP 访问 Amazon EC2 实例?

我已经安装了 Amazon EC2 实例,并使用命令在其上设置了 tomcat7 sudo yum install tomcat7。我还添加了一条规则

8080 0.0.0.0/0

在实例的安全组中。

我还运行了 tomcat7 服务,现在

$ service tomcat7 status
tomcat7 (pid 3979) is running...                           [  OK  ]

但我仍然无法访问tomcat的欢迎页面:

$ wget http://localhost:8080
--2012-05-21 19:33:56--  http://localhost:8080/
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2012-05-21 19:33:56 ERROR 404: Not Found.

还应该做什么?

远程访问

另外,当我尝试从家里的电脑访问服务器时,出现“网络不可达”错误。

>wget http://<DNS>.amazonaws.com:8080
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = c:/progra~1/wget/etc/wgetrc
--2012-05-21 23:37:35--  http://<DNS>.amazonaws.com:8080/
Resolving <DNS>.amazonaws.com... xxx.xx.xxx.xxx
Connecting to <DNS>.amazonaws.com|<IP>|:8080... failed: Network is unreachable.

答案1

鉴于您是从 ec2 实例本身本地运行 wget,安全组并不重要。您收到 404 的事实意味着 tomcat 确实在处理您的请求。tomcat 返回“页面未找到”错误则是另一回事。

两件事:1) 对于对 ec2 实例的本地访问(即从实例本身访问),安全组没有任何意义。而且您显然能够访问 tomcat。只是 tomcat 返回的是 404 Not Found,而不是问候页面。

2) 远程访问由安全组控制。但鉴于您看到网络无法访问错误,这看起来像是路由表问题。

答案2

防火墙 (IPTables) 是否配置为允许连接到 8080?尝试禁用 iptables 并查看是否可以访问。

答案3

检查您的防火墙规则。Redhat 默认不允许此端口,而 Amazon linux AMI 允许。

如果您正在运行 redhat,请尝试运行此命令来配置防火墙:

system-config-firewall-tui

答案4

您好,Tomcat 已安装并且正在运行,这就是您收到 404 错误的原因,而您没有获得管理页面的原因是它的 Web 应用程序文件未安装,因此运行以下命令您将获得 tomcat 管理页面。

sudo yum 安装 tomcat6-webapps tomcat6-docs-webapp tomcat6-admin-webapps

相关内容