未知时间后 EC2 实例无法访问(HTTP 和 SSH)

未知时间后 EC2 实例无法访问(HTTP 和 SSH)

我有一个 Amazon Linux 实例,上面只运行着 Wordpress(使用 Amazon 指南安装)。一段时间后(我不知道具体多长时间,至少几个小时),该实例既无法通过 HTTP 访问(一直尝试打开网站),也无法通过 SSH 访问(消息:ssh_exchange_identification:已读:对等方重置连接)。

当我登录控制台时,我看到灯是绿色的,一切似乎都正常。即使重新启动实例也无济于事。唯一的解决办法是停止实例并重新开始,然后整个循环再次开始:工作几个小时,然后突然不工作了。

也许有必要提一下,我已经购买了与我的 EC2 实例匹配的预留 Linux 实例。所以我正在使用它。有什么想法可以帮助我解决这个问题吗?

更新:我对我的实例做了快照并将其放在新卷上,但这也不能解决问题。

当前安全组(入站):

  • 无处不在的 HTTP 和 HTTPS
  • 仅从我的 IP 进行 SSH

我检查了 httpd 文件夹中的 access_log,发现它只包含很少几行,其中有几行是奇怪的俄罗斯网站(有时)。这很奇怪,因为我的网站并未正式上线,而且任何地方都找不到它的链接。

答案1

我认为您的服务器或磁盘已损坏,需要完全更换。以下是我会做的事情

第一的你可以选择方法

  1. 在 EC2 上设置新的 Ubuntu 16.04 Linux 服务器。有一个 AMI,所以很容易。我发现 Amazon Linux 的支持较少,可用的软件包也比 Ubuntu 少。使用易引擎或类似方法使其更简单。
  2. 使用预制的 Wordpress AMI,例如比特纳米。我认为他们仍在使用 Ubuntu 14.04,但您可以轻松升级到 16.04。

另一个选择是在实例上使用 RDS 或 MySQL。我在实例上使用 MySQL,因为它更便宜,而且运行良好。

下一个

  • 如果您没有使用预制 AMI,请设置您的实例以运行 Wordpress。在继续之前,请检查基本安装是否正常。
  • 从原始服务器执行 MySQL 转储,然后将数据导入数据库。
  • 将数据复制到新服务器。这将是 wp-content 目录。
  • 为了使其正常工作,需要进行一些调整和改进。

如果结果不可靠,则可能是您的数据库出了问题。通过 XML 导出您的帖子和内容,然后导入。如果这是必要的,我会感到惊讶。

杂项

回答你上面的问题,只对你自己IP开放SSH。

答案2

我也遇到了同样的问题,但没有你说的那么频繁。

在我的情况下,服务器由于内存不足而无响应,而这并没有受到 Amazon AWS 控制台的监控,

某些 cron 作业无法执行 fork。

在停止-启动后检查你的 cron 日志是很好的,你可能会看到这一行

crond[2656]: (CRON) can't fork (do_command): Cannot allocate memory 

为了进一步避免此类问题,AWS Support 建议我使用更大的实例或设置交换文件以及设置第三方警报

答案3

在控制台的设置下,您应该会找到一个小的“控制台快照”选项,它将对原始控制台输出进行“拍照”。

我敢打赌,该实例崩溃了,现在它处于某种恢复状态。

这种情况时有发生。如果你认为 AWS 的弹性是 EC2 的 7 个 9,那么你应该可以预料到每 20 分钟就会有一个实例(某个实例、某个地方)发生故障。

相关内容