【发布时间】:2012-05-24 06:43:47
【问题描述】:
背景:
- 操作系统:ubuntu
- Web 服务器:apache2
什么有效:
- 我可以 ping 服务器的弹性 IP(并收到响应)
- 我可以通过 ssh 进入服务器
什么不起作用:
- 我无法从服务器获得任何类型的 http 响应
预期行为:
- 当我转到 http://ec2-XXX-XX-XXX-XXX.compute-1.amazonaws.com/ 时,它会为我的页面提供服务,或者至少给我一个可以调试的 404
实际行为:
- 当我转到 http://ec2-XXX-XX-XXX-XXX.compute-1.amazonaws.com/ 时,它显示“糟糕!Google Chrome 无法连接到 ec2-XXX-XX-XXX-XXX.compute-1.amazonaws.com”。它甚至没有给我 404。
咆哮:
很明显,服务器在那里,因为我可以通过 ssh 进入那个确切的地址,我可以 ping 那个确切的 IP 并得到响应。但是当我在我的网络浏览器中访问那个确切的地址时,就好像它永远不会到达服务器一样。或者好像亚马逊不允许 http 请求通过,但在我的安全组中,我明确指定来自所有来源的 http 请求都允许通过。 Apache 肯定在运行,我的文档根目录肯定设置正确,而且我的错误和访问日志没有给我任何信息。
在 Amazon 和服务器之间,或者在发送到服务器和被 Apache 接收的请求之间是否有任何类型的登录,这会指定它返回“未找到”而不是 404 的原因。我可以让我的 Apache日志更详细?
提前致谢!我在这上面花了几个小时......
【问题讨论】:
-
听起来 apache 配置错误。检查进程列表中是否存在,尝试重新启动它。检查 .htaccess 文件(如果有)。你设置了虚拟主机吗?默认域指向哪里?
-
apache2有3个进程,重启了很多次,没有htaccess文件,虚拟主机很多,不知道你说的默认域是什么意思?
-
默认情况下,Apache 中有一个默认虚拟主机(/etc/apache2/sites-available/default),如果您不要求特定域,则请求将转到那里。 serverfault.com 上的人可能会更快地帮助您
-
我在那里设置了一个,没有改变任何东西。我还通过 godaddy 设置了一个域名,然后转到该域会产生同样的结果。
-
ping 服务器与发出 http 请求不同。服务器可能会响应在 ICMP 层上进行的 ping 或通常在端口 22 上的 ssh,但不响应 HTTP 层(应用层)上的请求,为此需要打开端口 80。服务器可能有很多设置错误的东西,比如 iptables、防火墙、apache 指令等
标签: apache http amazon-ec2