【发布时间】:2018-05-06 22:38:33
【问题描述】:
我最近将我的 Wordpress 网站迁移到 AWS,以练习在云上进行自托管。我在应用程序负载均衡器后面的自动缩放组中有一个 EC2 实例,我的 Wordpress 数据在 EFS 上,当实例被预置时会挂载,并且我将 RDS 用于我的数据库(MySQL)。该站点的流量最小,除了我,每周可能有 2-3 位访客,这真的是一个非常个人化的项目。
直到上周我的网站下线之前,一切都运行良好。尝试访问该 url 我收到了 504 错误,我无法通过 ssh 进入服务器,并且在重新启动后,我能够看到有大量 httpd 实例正在运行。在服务器停止响应之前,该站点会保持运行大约 10 分钟。查看重启时的日志,我看到了很多内存不足的错误,特别是:
无法分配内存:AH00481: fork: Unable to fork new process
我更新了我的 httpd 配置以包含自定义 prefork 设置,如下所述: Problems with Apache servers and A LOT of httpd processes
还有:https://arstechnica.com/civis/viewtopic.php?t=1185478 我也认为这可能与代码有关,但在此问题发生之前的一个多星期内没有任何代码发生变化。
我还将实例类型从 t2.micro 扩展到 t2.small,因此我的实例从 1 gig 的 RAM 增加到大约 2 gig。
过去,我曾因暴力攻击导致网站宕机,因此我检查了访问日志是否有任何异常情况。我看到一些请求发布到 xmlrpc.php,所以我更新了我的 .htaccess 以阻止对该文件的访问,如:https://wordpress.stackexchange.com/questions/156522/restrict-access-to-xmlrpc-php
我还注意到来自以下网站的健康流量:
- ELB 运行状况检查
- JetPack 插件
- Wp-Cron
- Bots(bingbot,我验证了 IP 是合法的) - 这很有趣,因为在 bingbot 爬取我的网站后,我注意到几次它会占用服务器,并出现更多内存不足错误。不过,这可能只是巧合。
我还在日志中看到我认为是端口扫描的条目,以及:
- - [06/May/2018:19:18:32 +0000] "POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1" 404 20630 "-" "Mozilla /5.0(Windows NT 10.0;Win64;x64)"
- - [06/May/2018:19:14:02 +0000] "GET /jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.system%3Aservice%3DMainDeployer HTTP/1.1" 404 20630 "-" " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
鉴于这些请求的返回码是 404,我认为它们无需担心。
我想知道我的 Wordpress 配置或 EFS 性能是否与该问题有关,但几乎所有东西都是开箱即用的。
是否有人对我可以尝试的其他故障排除步骤有任何想法,或者我可能忽略或做错了什么?
【问题讨论】:
标签: php wordpress apache amazon-web-services