背景:
- 操作系统: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 并获得响应。但是当我在 Web 浏览器中访问该确切地址时,好像它从未到达服务器。或者好像 Amazon 不让 http 请求通过,但在我的安全组中,我明确指定允许来自所有来源的 http 请求通过。Apache 肯定在运行,我的文档根目录肯定设置正确,并且我的错误和访问日志没有给我任何东西。
在亚马逊和服务器之间,或者在发送到服务器的请求和被 Apache 接收的请求之间是否有任何类型的日志可以说明为什么它返回“未找到”而不是 404。我可以让我的 Apache 日志更详细吗?
提前致谢!我花了好几个小时才搞定……
答案1
如果输出拒绝您的连接telnet
,则意味着您正在连接到服务器上已关闭的端口。
其中有一行内容netstat -lnp
是:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1662/apache2
如果您的 apache 正在监听不同的端口,那么您需要在 URL 中指定该端口,例如:http://ec2-XXX...com:8080/
如果端口是 8080。