如何在多个服务器上安装WordPress分布式部署

许多网络主机现在保证其服务的正常运行时间为 99.9%,但这仍然每年最多有 8.7 小时的停机时间。

许多公司不能够承担这种风险。例如。在超级碗比赛中失败的体育新闻网站可能会失去忠实的追随者。

我们通过设置维护高可用性 WordPress分布式部署配置来帮助 WordPress 网站主防止此类灾难性故障。

今天我们将介绍我们的支持工程师如何设置 WordPress 多服务器。

目录 隐藏

1 如何在多个服务器上设置 WordPress分布式部署? 

1.1 步骤 1. WordPress 文件的高可用性 

1.2 步骤 2. 数据库的高可用性 

1.3 步骤 3. 设置负载均衡器 

2 结论 

如何在多个服务器上设置 WordPress分布式部署?

将 WordPress 移动到多个服务器通常会产生跨服务器数据不完整、会话文件损坏、网页加载缓慢等问题。

幸运的是,这些限制可以通过规划和使用 HAProxy、Percona XtraDB 等特殊工具来纠正。

在这些软件的帮助下,我们的支持工程师仅用 5 台服务器就成功地在多台服务器中实施了 WordPress。

让我们看看这个实现中的 3 个主要步骤。

步骤 1. WordPress 文件的高可用性

维持网站正常运行的第一步是确保 WordPress 文件始终可用。

为此,我们使用 3 台服务器并在每台服务器中维护一组相同的网站文件。

在一台服务器上完成的 WordPress 帖子添加、删除、媒体上传等任何操作都应立即在所有服务器上更新。否则访问者可能会发现网站异常。

由于文件变化太多,要在最短时间内更新所有服务器上的文件成为一个真正的挑战。

根据我们在管理服务器方面的专业知识,我们看到Unison是适用于 WordPress 文件的解决方案之一。

Unison 有助于更新所有服务器上的网站内容更改。

步骤 2. 数据库的高可用性

我们现在在所有 3 个服务器中都有相同的网站文件。

WordPress 将其所有帖子、评论等存储在数据库中。即使是 WordPress 中的一个小页面添加也涉及多个数据库操作。

因此,下一步是确保 WordPress 数据库始终正常工作。

为此,我们使用数据库服务器集群。为了任何集群的正常工作,我们需要一个至少包含 3 台服务器的服务器池。只有 2 个服务器的问题是,如果服务器之间的连接丢失,高可用性的整个想法就会失败。

可以在同一台服务器上运行多个服务,如 Web 服务器、数据库服务器等。

因此,我们使用与文件集群相同的 3 台服务器设置了一个数据库集群。

数据库集群中最大的挑战是即时复制所有服务器中的数据库更改。也就是说,当一个条目从数据库中删除时,它也必须从其他服务器中删除。

而且涉及到太多的读写操作。

我们已经看到像Percona XtraDB这样的工具确实有助于确保数据库的高可用性。

为了使数据库始终可用,我们的专门支持工程师在Percona XtraDB集群中进行配置更改,包括以下步骤:

  1. 避免数据库更新冲突
  2. 禁止外部访问
  3. 启用日志进行故障分析

步骤 3. 设置负载均衡器

现在我们已经设置了 WordPress 文件集群和数据库集群,下一步是设置一个系统来平均处理网站请求。

这是负载均衡器提供帮助的地方。它在服务器之间平均分配访问者,有助于避免单个服务器过载。

如果您的网站一次有 1000 个访问者,Load Balancer 会将这些访问者分配到 3 个服务器,每个服务器只需要处理大约 300 个访问者。

根据客户的具体要求,我们部署了负载均衡器,如HAProxy,即使对于流量大的网站,也被认为是高效的。

但是,如果负载均衡器本身出现故障怎么办?整个设置失败。

这就是为什么我们为 Load Balancer 实施一个保持激活的备份服务器。此备份服务器用作负载平衡器的故障转移选项。

因此,使用此设置,访问者将永远不会遇到任何网站运行缓慢或停机的情况。

如何在多个服务器上设置 WordPress分布式部署

结论

通过在多台服务器中正确设置 WordPress,可以消除网站因流量过大而宕机的风险。今天,我们看到了我们的支持工程师如何帮助客户实现 WordPress 网站 100% 的正常运行时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity3d:Shader知识点,矩阵,函数,坐标转换,Tags,半透明,阴影,深度,亮度,优化

基本结构 Shader "MyShaderName" {Properties {// 属性}SubShader {// 针对显卡A的SubShaderPass {// 设置渲染状态和标签Tags { "LightMode""ForwardBase" }// 开始Cg代码片段CGPROGRAM// 该代码片段的编译指令,例如:#p…

【笔记】在window上连接虚拟机中的redis

愚昧啊 困扰了我近两天的问题居然是因为是java代码写错地方了 在虚拟机中进入redis.conf文件 vim redis.conf /bind --斜杠搜索关键词 将值设置为 bind 0.0.0.0 保存 退出:wq 回到java中 添加redis依赖 刷新maven 就是在这一步出问题……………………………………自己在蓝…

LeetCode 189.轮转数组 三段逆置 C写法

LeetCode 189.轮转数组 C写法 三段逆置 思路: 三段逆置方法:先逆置前n-k个 再逆置后k个 最后整体逆置 由示例1得,需要先逆置1,2,3,4 再逆置5,6,7,最后前n-k个与后k个逆置 代码 void reverse(int*num, int left, int right) //逆置函数 { while(left …

react-类组件1

类组件&#xff1a; import { Component } from "react";class App extends Component {constructor() {super();this.state {message: "xxxxx",};}render() {return (<div><div>{this.state.message}</div></div>);} }export d…

算法的空间复杂度(C语言)

1.空间复杂度的定义 算法在临时占用储存空间大小的量度&#xff08;就是完成这个算法所额外开辟的空间&#xff09;&#xff0c;空间复杂度也使用大O渐进表示法来表示 注&#xff1a; 函数在运行时所需要的栈空间(储存参数&#xff0c;局部变量&#xff0c;一些寄存器信息等)…

Python | Leetcode Python题解之第217题存在重复元素

题目&#xff1a; 题解&#xff1a; class Solution(object):def containsDuplicate(self, nums):if len(set(nums)) ! len(nums):return Trueelse:return False

一种一维时间序列信号变化/事件/异常检测方法(MATLAB)

随着工业物联网、大数据和人工智能的发展&#xff0c;传统工业正在向数字化和智能化升级&#xff0c;从而创造了大量的时间序列数据。通过分析这些数据&#xff0c;可以提供准确可靠的信息服务和决策依据&#xff0c;促进制造业的转型升级。工业物联网在传统工业向“工业 4.0”…

PostgreSQL 如何优化存储过程的执行效率?

文章目录 一、查询优化1. 正确使用索引2. 避免不必要的全表扫描3. 使用合适的连接方式4. 优化子查询 二、参数传递1. 避免传递大对象2. 参数类型匹配 三、减少数据量处理1. 限制返回结果集2. 提前筛选数据 四、优化逻辑结构1. 分解复杂的存储过程2. 避免过度使用游标 五、事务处…

合并pdf的方法,如何合并pdf文件到一个pdf,简单方法

在现代办公和学习中&#xff0c;pdf格式的文件因其跨平台兼容性和安全性得到了广泛应用。然而&#xff0c;有时我们需要将多个pdf文件合并成一个&#xff0c;以便于管理和分享。本文将详细介绍几种合并pdf的方法&#xff0c;帮助读者轻松完成pdf文件的合并工作。 方法一、使用p…

Camera Raw:编辑 - 校准

Camera Raw “编辑”模块中的校准 Calibration面板设计初衷是校准相机所采集的 R、G、B 色彩信息&#xff0c;使相机的 RGB 色域范围尽可能与标准 RGB 色域范围重合。不过&#xff0c;现在多用于创意调色。通过调整红、绿、蓝三个原色的色相和饱和度&#xff0c;以及阴影的色调…

cs231n 作业3

使用普通RNN进行图像标注 单个RNN神经元行为 前向传播&#xff1a; 反向传播&#xff1a; def rnn_step_backward(dnext_h, cache):dx, dprev_h, dWx, dWh, db None, None, None, None, Nonex, Wx, Wh, prev_h, next_h cachedtanh 1 - next_h**2dx (dnext_h*dtanh).dot(…

《华为战略管理法:DSTE实战体系》累计印量已达4万册(截至2024年7月)

近日&#xff0c;从中国人民大学出版社丁一老师处获悉&#xff0c;截至2024年07月&#xff0c;谢宁老师专著《华为战略管理法:DSTE实战体系》已经完成第10次印刷&#xff0c;累计4万册。&#xff08;该书于2022年06月份出版&#xff09;。 《华为战略管理法:DSTE实战体系》作为…

Linux——进程间通信一(共享内存、管道、systrem V)

一、进程间通信介绍 1.1、进程间通信的概念和意义 进程间通信(IPC interprocess communication)是一组编程接口&#xff0c;让不同进程之间相互传递、交换信息(让不同的进程看到同一份资源) 数据传输:一个进程需要将它的数据发送给另外一个进程 资源共享:多个进程之间共享同样…

fork创建子进程详解

一.前言 在上一篇文章-进程的概念&#xff0c;最后我们提到了创建进程的方式有两种方式&#xff0c;一种是手动的创建出进程&#xff0c;还有一种就是我们今天要学习的使用代码的方式创建出子进程-fork。 而学习fork创建出进程的过程中&#xff0c;我们会遇到以下问题&#x…

ECharts在最新版本中使用getInstanceByDom报错处理

引用问题导致报错 如果按如下引用的话&#xff0c;会报错 import echarts from “echarts/lib/echarts”; 原因 在 ECharts 的之前版本中&#xff0c;默认导出了一个名为 echarts 的对象&#xff0c;所以使用 import echarts from “echarts” 是没有问题的。但是在 ECharts …

【Spring Boot】关系映射开发(二):一对多映射

关系映射开发&#xff08;二&#xff09;&#xff1a;一对多映射 1.编写实体1.1 新建 School 实体1.2 新建 Teacher 实体 2.测试映射关系 单向关系的一对多注解 oneToMany&#xff0c;只用于关系的发出端&#xff08;一 的一方&#xff09;。另外&#xff0c;需要关系的发出端定…

android之蓝牙遥控器新增键值

文章目录 简述连接蓝牙代码流程总结简述 使用android 10平台来适配蓝牙遥控器新增的键值 连接蓝牙 当使用遥控器与蓝牙进行配对成功后,就可以通过getevent获取蓝牙打印的信息,如下所示 其中000700a0是发送过来的协议(0007)和码值(00a0)的组合。0xfa是驱动定义好的值,如果…

【LabVIEW学习篇 - 4】:程序结构——条件结构、事件结构、禁用结构

文章目录 条件结构案例一&#xff08;布尔输入&#xff09;案例二&#xff08;整数输入&#xff09;案例三&#xff08;字符串输入&#xff09; 事件结构案例一案例二 禁用结构 条件结构 条件结构的组成部分&#xff1a; 选择器标签&#xff08;带方框的“?”&#xff09;&…

机械硬盘坏了怎么导出数据?5中高效恢复数据的方法

面对机械硬盘损坏的紧急情况&#xff0c;如何有效地导出数据成为了许多用户关注的焦点。以下是对上述方法的深入分析与润色&#xff0c;旨在为用户提供更加全面、清晰的指导。 机械硬盘损坏后的数据导出策略 1. 利用数据恢复软件&#xff1a; 当机械硬盘出现逻辑故障或轻微物…

中标麒麟 RAC 19c 部署(Openssh免密BUG解决方案)

部署环境&#xff1a; 主机一主机二host ip192.168.80.46192.168.80.47vip 192.168.80.48192.168.80.49private ip192.168.10.10192.168.10.11storage ip192.168.20.33192.168.20.34主机名rac19c1rac19c2 需要上传的软件包&#xff1a; 一.虚拟机配置 选择中标麒麟IOS文件&am…