【发布时间】:2023-02-04 20:51:59
【问题描述】:
我想为我的 wordpress 网站提供一个可扩展的基础设施。我们目前有以下内容:
- 为网站提供服务的云端
- 其中只有一个注册目标的负载均衡器和目标组
- RDS。
- WP 服务器(配置和 wp-content 在其上)。
我们在 wordpress 实例中有数千个页面,有时我们需要进行更改,使云端缓存无效以提供新内容。在很多页面上执行此操作会给服务器带来巨大的负载,并使其无法访问或速度极慢。所以我们考虑添加一个自动缩放组,如果负载太高,它会启动新实例,并在必要时删除。
为此,我认为我们需要将 wp-content 文件夹移动到共享目录(在所有服务器之间)。首先,这是一个正确的假设吗?
所以我很自然地创建了一个 EFS,我将其安装在我的 wordpress 服务器的副本上,然后使用 efs 中的权限 rsync 所有文件。
然后按照整个网络的建议,我在我的 wp-config.php 中添加了以下内容:
define('WP_CONTENT_DIR', '/mnt/efs/wp-content'); 其中 /mnt/efs/wp-content 是 efs 上的目录。
至此,网站如期运行,我在查看页面时可以在EFS监控页面看到一些流量。
为了确保所有文件都在 wp-content 中正确共享和复制,我删除了 /data/app/wp-content/ 文件夹(不应该使用它,因为我在我的 efs 中引用了 wp-content)。 我的网站开始表现得很奇怪。一些格式消失了,按钮是原生的而不是定制的等等。控制台显示了很多 404 也有以下错误:
www.mysite.eu/:1 Access to font at 'https://www.mysite.fr/wp-content/themes/mysite/dist/fonts/icomoon/icomoon.ttf' from origin 'https://www.mysite.eu' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
GET https://www.mysite.fr/wp-content/plugins/js_composer/assets/lib/bower/font-awesome/webfonts/fa-solid-900.woff net::ERR_FAILED 200
看起来没有字体,没有插件,没有主题了。 所以,有很多问题:
- 我是否需要同时保留本地 wp-content 和共享 wp-content?如果是这样,如果我安装一个插件或主题,它是否也可用于其他服务器?
- 我真的需要 EFS 吗?或者数据完全存储在数据库中,wp-content 可以为每个服务器独立存在?
- 移动 wp-content 文件夹还有其他步骤吗?也许某些插件的具体步骤?
- 我的架构是否缺乏我想要实现的东西(根据需求向上和向下扩展),或者这是否有意义?
谢谢你!
【问题讨论】:
-
EFS 的 IOP 不足以处理任何规模的 Web 流量需求,您实际上会费心对其进行负载平衡;即使你能让它工作,你也会很快遇到非常糟糕的性能问题。也就是说,这是我推荐的:deliciousbrains.com/wp-offload-media。我过去用过它,并且用它做过你描述的事情。
-
感谢您的反馈意见!查看解决方案,看起来我们可以自己做,不是吗?将数据迁移到 S3 而不是 EFS。而我们的Cloudfront就是加载资源的CDN。你怎么认为?
标签: wordpress amazon-web-services load-balancing