大炮运维V587 发表于 2022-4-13 15:54:51

负载均衡之WordPress博客项目案例

本次负载均衡的教程以WordPress博客案例来写,大致架构如图(最小可用架构)

服务器分配:
192.168.1.190为主节点+数据库服务器
192.168.1.191为WordPress节点1
192.168.1.192为WordPress节点2
访问流程:用户访问负载均衡主节点-----根据算法分配到节点1或节点2
负载均衡配置步骤:
1、在192.168.1.190服务器上安装好建站环境,我这里的建站环境是CentOS7.9,Nginx1.21,MySQL5.7,PHP8.0,建站源码是一键部署中的WordPress5.6版本

192.168.1.191和192.168.1.192的建站环境分别如下


2、先在192.168.1.190上创建好网站

3、将主节点建站好的网站包打包,创建分享连接

4、分别在191和192节点上下载后并解压

5、分别在节点1和节点2 上进行建站

6、回到主节点,删除当前的建站环境,注意不要删除数据库

7、配置192.168.1.191和192.168.1.192这两台服务器对数据库的访问权限

分别修改192.168.1.191和192.168.1.192网站中的数据库配置
打开/www/wwwroot/412test.dapaoit.com/wp-config.php


8、安装负载均衡重构版

9、在节点192.168.1.191,192.168.1.192,分别创建验证文件a1.txta2.txt

验证a1.txta2.txt是否可以访问

10、添加节点1 和节点2

11、节点添加完成后,添加域名


提交后访问网站

到这里负载均衡已经部署完成,下面讲解部署了SSL证书后,如何被WordPress网站兼容
12、部署SSL,在主节点上部署

13、此时访问会有静态文件加载失败的问题,原因是由于网站在部署的时候使用的是HTTP方式进行部署的

14、使用phpmyadmin打开WordPress的数据库,将 wp_options、wp_users表中的http连接全部修改成https的

15、增加网站代码里的HTTPS协议支持
找到/www/wwwroot/412test.dapaoit.com/wp-includes/functions.php中的第8行:
require ABSPATH . WPINC . '/option.php';
后面增加:
add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2); function agnostic_script_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); }
add_filter('style_loader_src', 'agnostic_style_loader_src', 20,2); function agnostic_style_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); }

打开/www/wwwroot/412test.dapaoit.com/wp-config.php
在第19行下增加
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);


16、保存后开启主节点的强制https

17、测试访问


至此,负载均衡重构版之WordPress博客项目案例教程结束,如果您有好的建议或者其他的问题请在下面留言
FAQ:
问:最小架构必须是三台服务器吗?两台可以吗?
答:为了更好的提供服务,我们的主节点只做了转发的作用,符合Linux运维的规范,另外转发的服务器已经增加了数据库了(也可以将数据库独立安装到一台服务器上),就不要再处理网站上的其他业务了,转发节点尽量配置高一点
问:在节点创建网站时候,为什么要创建ip建站?
答:因为使用IP建站,省略了域名DNS解析的步骤,这样建立的负载转发到子节点更快
问:数据库权限可以设置所有人吗?
答:为了数据库的安全,不建议设置为所有人,指定IP访问
问:会话跟随怎么选择?
答:会话跟随有三种选择方案,
cookie跟随:如果您的网站有使用CDN这类型的加速,需要使用这个cookie跟随的方式来做负载
IP地址跟随:通过客户端的IP地址来保持会话,这样访问的请求会在会话时间内落到同一个节点上
关闭:当您的网站是纯静态的,无需登录和数据交互,就可以选择这种方式


大炮运维V587 发表于 2023-3-27 15:21:25

负载答疑1、负载均衡会把子节点的带宽10MB和主节点的带宽100MB进行平均吗?

答:不会进行平分,访问请求是先到主节点,然后再由主节点通过负载均衡算法分配给后面的子节点,由子节点将数据处理后,返回给主节点,再由返回给客户



200882254 发表于 2022-8-21 16:04:02

两个子节点服务器与主服务器在一个机房,可通过内网IP访问,请问是否还需要给这两个子节点服务器购买公网带宽?

向樛木多少斤了 发表于 2022-4-13 20:40:05

火前留名

540788 发表于 2022-8-21 16:33:20

前排占座,负载均衡是个很有用的知识

200882254 发表于 2022-8-22 21:16:09

有两个疑问

本帖最后由 200882254 于 2022-8-23 01:08 编辑

1、为嘛那么多500错误?如图所示:

2、php拓展插件是都安装还是只安装主服务器?
如:opcache和redis这些

3、伪静态规则只设置在多个节点服务器上吗?


200882254 发表于 2022-8-23 00:25:14

本帖最后由 200882254 于 2022-8-23 14:45 编辑

php拓展插件是都安装还是只安装主服务器?
如:opcache和redis这些

大炮运维V587 发表于 2022-8-25 09:45:45

200882254 发表于 2022-8-23 00:25
php拓展插件是都安装还是只安装主服务器?
如:opcache和redis这些

安装到子节点,主节点是不处理业务的,只做抓发

大炮运维V587 发表于 2022-8-25 09:46:14

200882254 发表于 2022-8-22 21:16
1、为嘛那么多500错误?如图所示:

2、php拓展插件是都安装还是只安装主服务器?


伪静态在子节点上配置

剃刀 发表于 2022-9-12 18:35:46

请问负载均衡Apache行不行

荞行健 发表于 2022-10-8 12:25:08

是不是 修改服务器A的php文件B也要修改

icciuo 发表于 2022-10-13 22:45:30

三台都需要购买授权?

运维风光 发表于 2022-10-14 10:13:06

剃刀 发表于 2022-9-12 18:35
请问负载均衡Apache行不行

负责负载均衡的服务器要安装nginx,后端可以apache

运维风光 发表于 2022-10-14 10:13:23

荞行健 发表于 2022-10-8 12:25
是不是 修改服务器A的php文件B也要修改

是的,网站的文件数据要一样

运维风光 发表于 2022-10-14 10:13:51

icciuo 发表于 2022-10-13 22:45
三台都需要购买授权?

只要一台负责负载均衡的购买就行了
页: [1] 2 3
查看完整版本: 负载均衡之WordPress博客项目案例