现实环境中,随着业务量的不断增加,web 服务器也有之前的一台变成了多台,但是问题是,在负载均衡下,不可能再次搭建一个站点,这样当用户访问的时候其站点内容绝对不是一致的,如何操作呢?
实验机器:
IP 地址 | 功能 |
---|---|
192.168.230.150 | WEB 1 (线上在使用中) |
192.168.230.151 | WEB 2 (新机器) |
192.168.230.149 | MYSQL |
思路是:在WEB 1 上面安装NFS服务端,在WEB 2上面安装客户端,WEB 2 挂载WEB 1上面的站点目录。实现数据一致!
一、配置新机器WEB2
1.1 配置并安装 Linux+Nginx+Mysql+Php-fpm。如何去配置参照此连接。
1.2 新机器创建好了之后,不要上传任何站点文件。
[root@zhdy-03 ~]# cd /data/wwwroot/www.zhdy03.com/
[root@zhdy-03 www.zhdy03.com]# ls
二、安装NFS服务
2.1 WEB 1安装NFS服务端并配置
# yum install -y nfs-utils rpcbind
# vim /etc/exports
写入如下内容:
/data/wwwroot/www.discuz.com/ 192.168.230.0/24(rw,sync,all_squash,anonuid=1040,anongid=1040)
---------------------
# systemctl restart nfs
# sudo chmod 777 /data/wwwroot/www.zhdy04.com/
2.2 WEB 2挂载分享的站点目录
# showmount -e 192.168.230.150
Export list for 192.168.230.150:
/data/wwwroot/www.zhdy04.com 192.168.230.0/24
# mount -t nfs 192.168.230.150:/data/wwwroot/www.zhdy04.com/ /data/wwwroot/www.zhdy03.com/
2.3 测试
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 30G 6.2G 24G 21% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 7.1M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 473M 165M 309M 35% /boot
/dev/mapper/cl-var 9.4G 1.4G 8.0G 15% /var
/dev/mapper/cl-home 7.5G 37M 7.5G 1% /home
tmpfs 98M 0 98M 0% /run/user/0
192.168.230.150:/data/wwwroot/www.zhdy04.com 30G 6.3G 24G 21% /data/wwwroot/www.zhdy03.com
# ls
admin.php api.php config crossdomain.xml favicon.ico group.php index.php member.php plugin.php robots.txt source template uc_server
api archiver connect.php data forum.php home.php install misc.php portal.php search.php static uc_client
三、数据库增加授权
##之前我们已经授权了当前站点(WEB 1)可以访问本机数据库,下面我们需要授权(WEB 2同理也需要可以访问)
##WEB 1 :
mysql> create database discuz;
Query OK, 1 row affected (0.04 sec)
mysql> grant all on discuz.* to 'discuz'@'192.168.230.150' identified by 'zhangduanya';
Query OK, 0 rows affected (0.06 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
##WEB 2 :
mysql> grant all on discuz.* to 'discuz'@'192.168.230.151' identified by 'zhangduanya';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
然后使用 http://192.168.230.150/forum.php 可以顺利访问,也可以看到刚刚发布的帖子。
使用 http://192.168.230.151/forum.php 呢?
也许你现在也会有和我之前一样的疑问,为什么呢?
因为WEB 1站点配置好的所有信息均写进了discuz站点目录中的install文件夹,里面包含了数据库的配置和连接信息!!
然后再次在负载均衡server内增加real server添加新机器即可!