【问题标题】:Load-balance wordpress site负载平衡 wordpress 站点
【发布时间】: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


【解决方案1】:

不要将 wp_content 放在共享文件系统(s3 存储桶)上。它包含大量主题和插件代码,从 s3 运行代码会导致性能问题并增加 IOPS 成本。相反,使用插件将您网站上传的媒体文件(jpg 等)卸载到 s3 存储桶,然后克隆该网站。

如果可以,请使用共享持久对象缓存。 redis 是一个不错的选择。

AWS 在 Lightsail 上有一个关于在没有缓存的情况下执行此操作的教程。 https://aws.amazon.com/getting-started/hands-on/launch-load-balanced-wordpress-website/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2017-09-21
    • 2022-06-22
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多