本次负载均衡的教程以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.txt a2.txt
验证a1.txt a2.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地址来保持会话,这样访问的请求会在会话时间内落到同一个节点上
关闭:当您的网站是纯静态的,无需登录和数据交互,就可以选择这种方式