我已经安装了Amazon EC2实例,并使用sudo yum install tomcat7
命令在其上设置了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.
还有什么应该做的?
远程访问
另外,当我尝试从家用电脑访问服务器时,出现“networking不可更新”错误。
>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.
考虑到你从ec2实例本身运行wget,安全组没有任何意义。 你得到一个404的事实意味着,tomcat确实服务于你的请求。 tomcat正在返回一个Page Not Found错误。
两件事情:1)对于本地访问一个EC2实例(从实例本身),安全组没有任何意义。 在那里,你显然能够达到tomcat。 只是,tomcat正在返回404 Not Found而不是问候页面。
2)远程访问由安全组控制。 但是,鉴于您看到了Netwok Unreachable错误,它看起来像一个路由表问题。
防火墙(IPTables)configuration为允许连接到8080? 尝试禁用iptables,看看它是否可访问。
检查你的防火墙规则。 默认情况下Redhat将不允许这个端口,而亚马逊linux AMI则允许这个端口。
如果你正在运行redhat,试着运行这个命令来configuration防火墙:
system-config-firewall-tui
嗨Tomcat安装和它的正常运行,这就是为什么你有404错误,为什么你没有得到pipe理页面是因为它的networking应用程序文件没有安装,所以运行下面的命令,你会得到的Tomcatpipe理页面。
sudo yum安装tomcat6-webapps tomcat6-docs-webapp tomcat6-admin-webapps