💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
 

 
推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
 导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
 常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
 数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
 
mysql+ nginx+nfs lvs+keepalived +inotify+rsync高可用群集
 
简介
 
这是一个典型的Linux服务器群集解决方案,包括MySQL、Nginx、NFS、LVS和Keepalived。
 
MySQL:提供数据库服务。
 
Nginx:提供网页服务器和负载均衡。
 
NFS:提供文件存储服务。
 
LVS:提供负载均衡服务。
 
Keepalived:提供高可用性服务,通过VRRP协议实现。
 
inotify:Linux内核特性,用于检测文件系统的变动。
 
rsync:文件同步工具,用于同步文件和数据。
 
高可用性(High Availability,简称 HA)通常是指系统有效性和持续性。在这个解决方案中,Keepalived确保了服务的高可用性,即使一个节点失效,另一个备份节点可以接管服务。
 
NFS用于数据存储,确保了所有服务器节点都可以访问同一份数据。
 
LVS通过负载均衡算法分配用户请求到不同的服务器节点。
 
Nginx和MySQL配合工作,提供完整的网站服务和数据库服务。
 
inotify监控文件系统的变动,并通过rsync将变更的文件同步到其他服务器节点。
 
这个解决方案提供了一个高性能、高可用的网站服务平台。
 
 
 项目负责人:老纪 
 
 
 1 
 、配置和管理 
  MySQL  
 数据库。  
 
 
 2 
 、部署和管理 
  Nginx 
 。  
 
 
 3 
 、设置和管理 
  NFS  
 文件共享系统。  
 
 
 4 
 、部署 
  LVS+Keeplived  
 高可用负载均衡。  
 
 
 5 
 、部署 
  inotify+rsync 
 服务进行数据备份。  
 
 
 企业网站群集架构部署—项目报告、项目需求 项目环境表
 
  
 | 主机 | 操作系统 | 主机名 / IP地址主机名 / IP地址 | 主要软件 | 
| 客户端 | Windows 11 | 192.168.23.10 |  | 
| MySQL 服务器 | CentOS7.6 |  
       
      mysql_master /  
       
      
      192.168.244.203 
        | MySQL5.7 | 
| MySQL 服务器 | CentOS7.6 |  
       
      mysql_slave /  
       
      
      192.168.244.204 
        | MySQL5.7 | 
| Web 服务器 | CentOS7.6 |  
       
      Web01 /  
       
      
      192.168.244.205 
        |  
       
      nginx 
      、 
      php-fpm 
      、  
       
      
      rpcbind 
        | 
| Web 服务器 | CentOS7.6 |  
       
      Web01 /  
       
      
      192.168.244.206 
        | nginx、php-fpm | 
| NFS 共享服务器 | CentOS7.6 | NFS / 192.168.244.207 | rpcbind、rsync | 
| 负载均衡服务器 | CentOS7.6 |  
       
      Lvs-master  
       
      
      ens32 
      :  
       
      
      192.168.23.208 
       
      
       
       ens34 
       :  
        
       
       192.168.244.179  
        
       
       VIP 
       : 
       192.168.23.100  
        
       
       VIP 
       : 
       192.168.244.100 
        
        | LVS、Keepalived | 
| 负载均衡服务器 | CentOS7.6 |  
       
      Lvs-slave  
       
      
      ens32 
      :  
       
      
      192.168.23.209  
       
      
      ens34 
      :  
       
      
      192.168.244.209  
       
      
      VIP 
      : 
      192.168.23.100  
       
      
      VIP 
      : 
      192.168.244.100 
        | LVS、Keepalived | 
| 数据备份服务器 | CentOS7.6 |  
       
      rsync /  
       
      
      192.168.244.210 
        | inotify、rsync | 
 
  
 
 项目实施:  
 
 
 💡 
 注意:所有服务器的 
  Firewalld  
 与 
  Selinux  
 已关闭  
 
一:配置和管理 MySQL 数据库 
 
 
 1、安装两台 MySQL数据库,配置主从复制  
 
 
 修改主机名  
 
 
 1  
 [root@centos7-3 ~]# hostnamectl set-hostname mysql_master  
 
 
 2  
 [root@centos7-3 ~]# bash  
 
 
 3  
 [root@mysql_master ~]#  
 
 
 4  
 
 
 5  
 [root@centos7-4 ~]# hostnamectl set-hostname mysql_slave  
 
 
 6  
 [root@centos7-4 ~]# bash  
 
 
 7  
 [root@mysql_slave ~]#  
 
 
 安装 
  NTP  
 时间同步( 
 master 
 上操作)  
 
 
 1  
 [root@mysql_master ~]# yum -y install ntp  
 
 
 2  
 [root@mysql_master ~]# vim /etc/ntp.conf  
 (添加下面两行)  
 
 
 3  
 server 127.127.1.0  
 
 
 4  
 fudge 127.127.1.0 stratum 8  
 
 
 5  
 [root@mysql_master ~]# systemctl restart ntpd  
 
 
 6  
 [root@mysql_master ~]# systemctl enable ntpd  
 
 
 7  
 
 
 8  
 在从节点上进行时间同步( 
 slave 
 上操作)  
 
 
 9  
 [root@mysql_slave ~]# yum -y install ntpdate  
 
 
 10  
 [root@mysql_slave ~]# ntpdate 192.168.244.203  
 
 
 11  
 30 Mar 09:54:58 ntpdate[9034]: adjust time server 192.168.244.203 offset -0.000334 sec  
 
 
 安装 
 MySQL 
 数据库(在 
 master 
 、 
 slave 
 上面操作) 
 1  
 [root@mysql_master ~]# cd /etc/yum.repos.d/  
 
 
 2  
 [root@mysql_master yum.repos.d]# vim mysql57.repo  
 
 
 3  
 [mysql57-community]  
 
 
 4  
 name=MySQL 5.7 Community Server  
 
 
 5  
 baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/  
 
 
 6  
 enabled=1  
 
 
 7  
 gpgcheck=0  
 
 
 8  
 [root@mysql_master yum.repos.d]# yum -y install mysql mysql-server  
 
 
 9  
 [root@mysql_master ~]# systemctl enable mysqld --now  
 
 
 2、设置 MySQL 数据库的用户名和密码(master、slave上面操作)  
 
 
 1  
 [root@mysql_master ~]# grep password /var/log/mysqld.log  
 
 
 2  
 2024-03-30T02:10:02.167999Z 1 [Note] A temporary password is generated for  
 
 
 root@localhost: qUUp,.:p!7fw  
 
 
 3  
 [root@mysql_master ~]# mysql -u root -p'qUUp,.:p!7fw'  
 
 
 4  
 
 
 5  
 mysql> set password=password('Cisco@123');  
 
 
 6  
 Query OK, 0 rows affected, 1 warning (0.01 sec)  
 
 
 7  
 
 
 8  
 [root@mysql_slave ~]# grep password /var/log/mysqld.log  
 
 
 9  
 2024-03-30T02:10:02.790999Z 1 [Note] A temporary password is generated for  
 
 
 root@localhost: iakZfwxfv1(p  
 
 
 10  
 [root@mysql_slave ~]# mysql -u root -p'iakZfwxfv1(p'  
 
 
 11  
 
 
 12  
 mysql> set password=password('Cisco@123');  
 
 
 13  
 Query OK, 0 rows affected, 1 warning (0.01 sec)  
 
 
 3、配置主数据库的 binlog 格式和 binlog 同步。  
 
 
 1  
 ## 
 编辑 
 /etc/my.cnf 
 配置文件,增加以下三行  
 
 
 2  
 [root@mysql_master ~]# vim /etc/my.cnf  
 
 
 3  
 server-id = 11  
 
 
 4  
 log-bin = master-bin  
 
 
 5  
 log-slave-updates = true 
 6  
 
 
 7  
 ## 
 重启 
 mysql 
 服务  
 
 
 8  
 [root@mysql_master ~]# systemctl restart mysqld  
 
 
 9  
 
 
 10  
 ## 
 登录 
  MySQL  
 程序,给从服务器授权  
 
 
 11  
 [root@mysql_master ~]# mysql -u root -pCisco@123  
 
 
 12  
 
 
 13  
 mysql> grant replication slave on *.* to 'myslave'@'192.168.244.%' identified by  
 
 
 'Cisco@123';  
 
 
 14  
 
 
 15  
 mysql> flush privileges;  
 
 
 16  
 
 
 17  
 mysql> show master status;  
 
 
 18  
 +-------------------+----------+--------------+------------------+-------------------+  
 
 
 19  
 | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |  
 
 
 20  
 +-------------------+----------+--------------+------------------+-------------------+  
 
 
 21  
 | master-bin.000001 | 604 | | | |  
 
 
 22  
 +-------------------+----------+--------------+------------------+-------------------+  
 
 
 23  
 1 row in set (0.00 sec)  
 
 
 4、配置 slave 从服务器  
 
 
 1  
 ## 
 编辑 
 /etc/my.cnf 
 配置文件,增加以下三行  
 
 
 2  
 [root@mysql_slave ~]# vim /etc/my.cnf  
 
 
 3  
 server-id = 22  
 
 
 4  
 relay-log = relay-log-bin  
 
 
 5  
 relay-log-index = slave-relay-bin.index  
 
 
 6  
 
 
 7  
 ## 
 重启 
  MySQL  
 服务  
 
 
 8  
 [root@mysql_slave ~]# systemctl restart mysqld  
 
 
 9  
 
 
 10  
 ## 
 登录 
  MySQL 
 ,配置同步。(按主服务器结果更改下面命令中 
  master_log_file  
 和 
  master_log_pos  
 参  
 
 
 数。)  
 
 
 11  
 [root@mysql_slave ~]# mysql -u root -pCisco@123  
 
 
 12  
 
 
 13  
 mysql> change master to  
 
 
 master_host='192.168.244.203',master_user='myslave',master_password='Cisco@123',master_  
 
 
 log_file='master-bin.000001',master_log_pos=604;  
 
 
 14 
 15  
 Query OK, 0 rows affected, 2 warnings (0.02 sec)  
 
 
 16  
 
 
 17  
 ## 
 启动同步  
 
 
 18  
 mysql> start slave;  
 
 
 19  
 Query OK, 0 rows affected (0.00 sec)  
 
 
 20  
 
 
 21  
 ## 
 查看 
  Slave  
 状态,确保以下两个值为 
  YES 
 。  
 
 
 22  
 mysql> show slave status\G  
 
 
 23  
 *************************** 1. row ***************************  
 
 
 24 
  Slave_IO_Running: Yes  
 
 
 25 
  Slave_SQL_Running: Yes  
 
 
 26  
 1 row in set (0.00 sec)  
 
 
 5、测试主从复制是否正常  
 
 
 在主服务器上新建数据库 
  auth 
 。  
 
 
 1  
 mysql> create database auth;  
 
 
 2  
 Query OK, 1 row affected (0.00 sec)  
 
 
 3  
 
 
 4  
 mysql> show databases;  
 
 
 5  
 +--------------------+  
 
 
 6  
 | Database |  
 
 
 7  
 +--------------------+  
 
 
 8  
 | information_schema |  
 
 
 9  
 | auth |  
 
 
 10  
 | mysql |  
 
 
 11  
 | performance_schema |  
 
 
 12  
 | sys |  
 
 
 13  
 +--------------------+  
 
 
 14  
 5 rows in set (0.00 sec)  
 
 
 在从服务器上查看数据库,显示数据库相同,则主从复制成功。  
 
 
 1  
 mysql> show databases;  
 
 
 2  
 +--------------------+  
 
 
 3  
 | Database | 
 4  
 +--------------------+  
 
 
 5  
 | information_schema |  
 
 
 6  
 | auth |  
 
 
 7  
 | mysql |  
 
 
 8  
 | performance_schema |  
 
 
 9  
 | sys |  
 
 
 10  
 +--------------------+  
 
11 5 rows in set (0.00 sec) 
 
二、部署和管理 Nginx 
 
 
 1、安装 Nginx 服务器,配置支持使用 epoll 模型提高性能 
 。  
 
 
 修改主机名  
 
 
 1  
 [root@centos7-5 ~]# hostnamectl set-hostname web01  
 
 
 2  
 [root@centos7-5 ~]# bash  
 
 
 3  
 [root@web01 ~]#  
 
 
 4  
 
 
 5  
 [root@centos7-6 ~]# hostnamectl set-hostname web02  
 
 
 6  
 [root@centos7-6 ~]# bash  
 
 
 7  
 [root@web02 ~]#  
 
 
 配置 
  Nginx  
 的官方 
  yum  
 源  
 
 
 💡 
 web01 
 、 
 web02  
 相同操作,以下在 
  web01  
 上演示  
 
 
 1  
 [root@web01 ~]# cd /etc/yum.repos.d/  
 
 
 2  
 [root@web01 yum.repos.d]# vim nginx.repo  
 
 
 3  
 [nginx-stable]  
 
 
 4  
 name=nginx stable repo  
 
 
 5  
 baseurl=http://nginx.org/packages/centos/$releasever/$basearch/  
 
 
 6  
 gpgcheck=1  
 
 
 7  
 enabled=1  
 
 
 8  
 gpgkey=https://nginx.org/keys/nginx_signing.key  
 
 
 9  
 module_hotfixes=true 
 安装 
  Nginx  
 
 
 1  
 [root@web01 ~]# yum -y install nginx  
 
 
 配置支持 
  epoll  
 模型提高性能  
 
 
 1  
 ## 
 编辑配置文件 
  /etc/nginx/nginx.conf  
 
 
 2  
 [root@web01 ~]# vim /etc/nginx/nginx.conf  
 
 
 3 
  events {  
 
 
 4 
  use epoll; // 
 在 
 events 
 模块中添加此行  
 
 
 2、设置 Nginx 的工作进程数和最大连接数  
 
 
 1  
 ## 
 编辑配置文件 
  /etc/nginx/nginx.conf  
 
 
 2  
 [root@web01 ~]# vim /etc/nginx/nginx.conf  
 
 
 3  
 worker_processes 1; // 
 工作进程数量  
 
 
 4  
 events {  
 
 
 5 
  use epoll;  
 
 
 6 
  worker_connections 1024; // 
 最大连接数  
 
 
 7  
 }  
 
 
 3、部署安装 php  
 
 
 1  
 ## 
 安装 
  php  
 相关软件  
 
 
 2  
 [root@web01 ~]# yum -y install php php-fpm php-mysql php-gd  
 
 
 3  
 
 
 4  
 ## 
 编辑 
  php  
 配置文件 
 /etc/php-fpm.d/www.conf 
 ,定用户与组,并开启状态页面用于监控服务状态。  
 
 
 5  
 [root@web01 ~]# vim /etc/php-fpm.d/www.conf  
 
 
 6  
 39 user = nginx  
 
 
 7  
 41 group = nginx  
 
 
 8  
 121 pm.status_path = /php_status // 
 取消注释(默认被注释)并改名为 
 /php_status  
 
 
 9 
 10  
 ## 
 修改配置 
 /etc/php.ini  
 指定 
 php 
 时区  
 
 
 11  
 [root@web01 ~]# vim /etc/php.ini  
 
 
 12  
 878 date.timezone = "Asia/Shanghai" // 
 指定时区  
 
 
 13  
 
 
 14  
 ## 
 启动 
  php-fpm  
 
 
 15  
 [root@web01 ~]# systemctl start php-fpm  
 
 
 16  
 [root@web01 ~]# systemctl enable php-fpm  
 
 
 17  
 Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to  
 
 
 /usr/lib/systemd/system/php-fpm.service.  
 
 
 4、配置 Nginx 的虚拟主机,根据要求设置各虚拟主机的域名、访问日志前缀、网站根目录和默认字  
 符集。  
 
 
 1  
 ## 
 编辑配置文件 
  /etc/nginx/nginx.conf  
 
 
 2  
 [root@web01 ~]# vim /etc/nginx/nginx.conf  
 
 
 3  
 ......  
 
 
 4  
 http {  
 
 
 5  
 include mime.types;  
 
 
 6 
  default_type application/octet-stream;  
 
 
 7  
 ## 
 配置日志格式  
 
 
 8 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '  
 
 
 9 
  '$status $body_bytes_sent "$http_referer" '  
 
 
 10 
  '"$http_user_agent" "$http_x_forwarded_for"';  
 
 
 11  
 
 
 12  
 ## 
 配置 
 access.log 
 日志及存放路径,并且使用上面定义的 
  main 
 日志格式  
 
 
 13 
  access_log /var/log/nginx/access.log main;  
 
 
 14 
  sendfile on; // 
 高效文件传输模式  
 
 
 15 
  #tcp_nopush on;  
 
 
 16 
  #keepalive_timeout 0;  
 
 
 17 
  keepalive_timeout 65; // 
 连接超时时间,单位秒  
 
 
 18 
  #gzip on;  
 
 
 19  
 server { // 
 配置虚拟主机  
 
 
 20 
  listen 80; // 
 指定虚拟主机的服务端口  
 
 
 21 
  server_name www.bdqn.com; // 
 虚拟主机域名  
 
 
 22 
  charset utf-8; // 
 默认字符集  
 
 
 23 
  access_log /var/log/nginx/bdqn.access.log main; // 
 日志存放路径,最后的 
  main 
 指定  
 
 
 访问日志的输出格式  
 
 
 24 
  location / { 
 25 
  root /var/www/bdqn; // 
 虚拟主机网页根目录  
 
 
 26 
  index index.html index.php;  
 
 
 27 
  }  
 
 
 28  
 ## 
 配置 
  nginx  
 连接 
  php  
 
 
 29 
  location ~ \.php$ {  
 
 
 30 
  root /var/www/bdqn;  
 
 
 31 
  fastcgi_pass 127.0.0.1:9000;  
 
 
 32 
  fastcgi_index index.php;  
 
 
 33 
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
 
 
 34 
  include fastcgi_params;  
 
 
 35 
  }  
 
 
 36  
 ## 
 开启 
  php  
 页面  
 
 
 37 
  location /php_status {  
 
 
 38 
  root html;  
 
 
 39 
  fastcgi_pass 127.0.0.1:9000;  
 
 
 40 
  fastcgi_index index.php;  
 
 
 41 
  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;  
 
 
 42 
  include fastcgi_params;  
 
 
 43 
  }  
 
 
 44 
  }  
 
 
 45  
 }  
 
 
 46  
 ## 
 配置 
  stream  
 反向代理模块  
 
 
 47  
 stream {  
 
 
 48 
  upstream mysql {  
 
 
 49 
  server 192.168.244.203:3306; // 
 后端数据库的 
  ip  
 地址和端口  
 
 
 50 
  server 192.168.244.204:3306;  
 
 
 51 
  }  
 
 
 52 
  server {  
 
 
 53 
  listen 3306; // 
 监听 
  3306  
 端口,远程登录时不用加 
 -p 
 参数  
 
 
 54 
  proxy_connect_timeout 10s;  
 
 
 55 
  proxy_timeout 30s;  
 
 
 56 
  proxy_pass mysql;  
 
 
 57 
  }  
 
 
 58  
 }  
 
 
 59  
 
 
 60  
 ## 
 检查配置文件  
 
 
 61  
 [root@web01 ~]# nginx -t  
 
 
 62  
 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok  
 
 
 63  
 nginx: configuration file /etc/nginx/nginx.conf test is successful 
 64  
 
 
 65  
 ## 
 建立虚拟 
  web  
 主机根目录以及测试文件  
 
 
 66  
 [root@web01 ~]# mkdir -p /var/www/bdqn  
 
 
 67  
 [root@web01 ~]# cd /var/www/bdqn/  
 
 
 68  
 [root@web01 bdqn]# vim index.html  
 
 
 69  
 www.bdqn.com  
 
 
 70  
 
 
 71 
  ## 
 建立 
  nginx  
 与 
  php  
 连接测试文件  
 
 
 72 
  [root@web02 ~]# cd /var/www/bdqn/  
 
 
 73  
 [root@web02 bdqn]# vim info.php  
 
 
 74  
 <?php  
 
 
 75  
 phpinfo();  
 
 
 76  
 ?>  
 
 
 77  
 
 
 78  
 ## 
 建立 
  php  
 与后端 
  mysql  
 服务器测试文件  
 
 
 79  
 [root@web02 ~]# cd /var/www/bdqn/  
 
 
 80  
 [root@web02 bdqn]# vim mysql.php  
 
 
 81  
 <?php  
 
 
 82  
 $con=mysql_connect("192.168.244.203","root","Cisco@123");  
 
 
 83  
 if(!$con) echo "error";  
 
 
 84  
 else echo "success";  
 
 
 85  
 ?>  
 
 
 86 
 
 
 87  
 ## 
 启动 
 nginx  
 
 
 88  
 [root@web01 ~]# systemctl restart nginx  
 
 
 89  
 [root@web01 ~]# systemctl enable nginx  
 
 
 90  
 Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to  
 
 
 /usr/lib/systemd/system/nginx.service.  
 
 
 配置后端 
  mysql  
 数据库 
  root  
 用户远程连接权限  
 
 
 在 
  master 
 、 
 slave 
 上面操作  
 
 
 1  
 mysql> grant all privileges on *.* to 'root'@'%' identified by 'Cisco@123' with grant  
 
 
 option;  
 
 
 2  
 Query OK, 0 rows affected, 1 warning (0.01 sec)  
 
 
 3  
 
 
 4  
 mysql> flush privileges;  
 
 
 5  
 Query OK, 0 rows affected (0.01 sec) 
 
 
 5、测试  
 
 
 测试访问虚拟 
  web  
 主机  
 
 
 提前在 
 windows 
 中配置域名解析: 
 C:\Windows\System32\drivers\etc\hosts  
 
三、设置和管理 NFS 共享文件系统 
 
 
 1、安装 NFS 服务器,配置共享目录为/opt/wwwroot  
 
 
 修改主机名  
 
 
 1  
 [root@centos7-7 ~]# hostnamectl set-hostname nfs  
 
 
 2  
 [root@centos7-7 ~]# bash  
 
 
 3  
 bash  
 
 
 4  
 [root@nfs ~]#  
 
 
 安装 
  nfs-utils rpcbind  
 软件包  
 
 
 1  
 [root@nfs ~]# yum -y install nfs-utils rpcbind  
 
 
 2  
 [root@nfs ~]# systemctl enable rpcbind  
 
 
 3  
 [root@nfs ~]# systemctl enable nfs  
 
 
 4  
 Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to  
 
 
 /usr/lib/systemd/system/nfs-server.service.  
 
 
 设置共享目录  
 
 
 1  
 [root@nfs ~]# mkdir -p /opt/wwwroot  
 
 
 2  
 [root@nfs ~]# vim /etc/exports  
 
 
 3  
 /opt/wwwroot 192.168.244.0/24(rw,sync,no_root_squash) 
 启动 
  NFS  
 服务程序  
 
 
 1  
 [root@nfs ~]# systemctl start rpcbind  
 
 
 2  
 [root@nfs ~]# systemctl start nfs  
 
 
 3  
 [root@nfs ~]# netstat -anpt | grep rpcbind  
 
 
 4  
 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN  
 
 
 711/rpcbind  
 
 
 5  
 tcp6 0 0 :::111 :::* LISTEN  
 
 
 711/rpcbind  
 
 
 查看本机发布的 
  NFS  
 共享目录  
 
 
 1  
 [root@nfs ~]# showmount -e  
 
 
 2  
 Export list for nfs:  
 
 
 3  
 /opt/wwwroot 192.168.244.0/24  
 
 
 2、配置 web 节点服务器  
 
 
 这里在 
  web01  
 上面演示, 
 web02 
 同样操作,这里不在赘述  
 
 
 安装 
  nfs-utils rpcbind  
 软件包  
 
 
 1  
 [root@web01 ~]# yum -y install nfs-utils rpcbind  
 
 
 2  
 [root@web01 ~]# systemctl enable rpcbind  
 
 
 3  
 [root@web01 ~]# systemctl start rpcbind  
 
 
 4  
 [root@web01 ~]# netstat -anpt | grep rpcbind  
 
 
 5  
 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN  
 
 
 68241/rpcbind  
 
 
 6  
 tcp6 0 0 :::111 :::* LISTEN  
 
 
 68241/rpcbind  
 
 
 查看共享服务器的服务目录  
 
 
 1  
 [root@web01 ~]# showmount -e 192.168.244.207  
 
 
 2  
 Export list for 192.168.244.207: 
 3  
 /opt/wwwroot 192.168.244.0/24  
 
 
 挂载 
  NFS  
 共享目录  
 
 
 1  
 [root@web01 ~]# mount 192.168.244.207:/opt/wwwroot /var/www/bdqn/ // 
 手动挂载  
 
 
 2  
 [root@web01 ~]# vim /etc/fstab  
 
 
 3  
 ......  
 
 
 4  
 192.168.244.207:/opt/wwwroot /var/www/bdqn nfs defaults,_netdev 0 0 // 
 添加此行,设  
 
 
 置开机自动挂载  
 
 
 3、在共享目录下创建各虚拟主机对应的 PHP 测试网页,并添加数据库连接测试代码  
 
 
 1  
 [root@nfs ~]# cd /opt/wwwroot/  
 
 
 2  
 [root@nfs wwwroot]# vim info.php  
 
 
 3  
 <?php  
 
 
 4  
 phpinfo();  
 
 
 5  
 ?>  
 
 
 6  
 
 
 7  
 [root@nfs wwwroot]# vim mysql.php  
 
 
 8  
 <?php  
 
 
 9  
 $link=mysqli_connect('192.168.244.203','root','Cisco@123');  
 
 
 10  
 if($link) echo "<h1> 
 恭喜你,数据库连接成功 
 </h1>";  
 
 
 11  
 mysqli_close($link);  
 
 
 12  
 ?>  
 
 
 13  
 
 
 4、验证各虚拟主机的 PHP 测试网页能够连接 MySQL 数据库。  
 
 
 测试 
  php 
 测试连接 
  mysql  
 
四、部署 LVS+Keeplived 高可用负载均衡 
 
 
 修改主机名  
 
 
 1  
 [root@centos7-8 ~]# hostnamectl set-hostname lvs-master  
 
 
 2  
 [root@centos7-8 ~]# bash  
 
 
 3  
 bash  
 
 
 4  
 [root@lvs-master ~]#  
 
 
 5  
 
 
 6  
 
 
 7  
 [root@centos7-9 ~]# hostnamectl set-hostname lvs-slave  
 
 
 8  
 [root@centos7-9 ~]# bash  
 
 
 9  
 bash  
 
 
 10  
 [root@lvs-slave ~]#  
 
 
 检查网卡地址 
 1  
 [root@lvs-master ~]# ip add | grep ens32  
 
 
 2  
 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group  
 
 
 default qlen 1000  
 
 
 3 
  inet 192.168.23.208/24 brd 192.168.23.255 scope global noprefixroute ens32  
 
 
 4  
 [root@lvs-master ~]# ip add | grep ens34  
 
 
 5  
 3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group  
 
 
 default qlen 1000  
 
 
 6 
  inet 192.168.244.179/24 brd 192.168.244.255 scope global noprefixroute dynamic  
 
 
 ens34  
 
 
 7 
 
 
 8 
 
 
 9 
  [root@lvs-slave ~]# ip add | grep ens32  
 
 
 10  
 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group  
 
 
 default qlen 1000  
 
 
 11 
  inet 192.168.23.209/24 brd 192.168.23.255 scope global noprefixroute ens32  
 
 
 12  
 [root@lvs-slave ~]# ip add | grep ens34  
 
 
 13  
 3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group  
 
 
 default qlen 1000  
 
 
 14 
  inet 192.168.244.180/24 brd 192.168.244.255 scope global noprefixroute dynamic  
 
 
 ens34  
 
 
 15 
 
 
 1、安装 LVS 和 Keepalived 工具  
 
 
 lvs-master 
 、 
 lvs-slave  
 相同操作,这里演示 
  lvs-master  
 
 
 1  
 [root@lvs-master ~]# yum -y install ipvsadm keepalived  
 
 
 2、配置 LVS-NAT 模式,设置 VIP 地址为 192.168.23.100  
 
 
 创建虚拟服务器  
 
 
 1  
 [root@lvs-master ~]# ipvsadm -A -t 192.168.23.100:80 -s rr  
 
 
 添加节点服务器 
 1  
 [root@lvs-master ~]# ipvsadm -a -t 192.168.23.100:80 -r 192.168.244.205:80 -m -w 1  
 
 
 2  
 [root@lvs-master ~]# ipvsadm -a -t 192.168.23.100:80 -r 192.168.244.206:80 -m -w 1  
 
 
 查看群集节点状态  
 
 
 1  
 [root@lvs-master ~]# ipvsadm -ln  
 
 
 2  
 IP Virtual Server version 1.2.1 (size=4096)  
 
 
 3  
 Prot LocalAddress:Port Scheduler Flags  
 
 
 4 
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn  
 
 
 5  
 TCP 192.168.23.100:80 rr  
 
 
 6 
  -> 192.168.244.205:80 Masq 1 0 0  
 
 
 7 
  -> 192.168.244.206:80 Masq 1 0 0  
 
 
 保存负载分配策略  
 
 
 1  
 [root@lvs-master ~]# ipvsadm-save > /etc/sysconfig/ipvsadm  
 
 
 开启路由转发规则  
 
 
 1  
 [root@lvs-master ~]# vim /etc/sysctl.conf  
 
 
 2  
 ......  
 
 
 3  
 net.ipv4.ip_forward = 1  
 
 
 4  
 [root@lvs-master ~]# sysctl -p  
 
 
 5  
 net.ipv4.ip_forward = 1  
 
 
 开启服务  
 
 
 1  
 [root@lvs-master ~]# systemctl start ipvsadm  
 
 
 2  
 [root@lvs-master ~]# systemctl enable ipvsadm  
 
 
 3  
 Created symlink from /etc/systemd/system/multi-user.target.wants/ipvsadm.service to  
 
 
 /usr/lib/systemd/system/ipvsadm.service. 
 
 
 3、设置负载调度算法为轮询,健康检查间隔为 10 秒,连接超时为 3 秒,重试次数为 3 次,重试间隔  
 为 5 秒。  
 
 
 编辑 
  keepalived  
 配置文件( 
 lvs-master 
 )  
 
 
 1  
 [root@lvs-master ~]# cd /etc/keepalived/  
 
 
 2  
 [root@lvs-master keepalived]# cp keepalived.conf keepalived.conf.bak  
 
 
 3  
 [root@lvs-master keepalived]# vim keepalived.conf  
 
 
 4  
 ! Configuration File for keepalived  
 
 
 5  
 
 
 6  
 global_defs {  
 
 
 7 
  notification_email { // 
 设置邮箱报警地址  
 
 
 8 
  m17602062016@163.com  
 
 
 9 
  }  
 
 
 10 
  notification_email_from 1780950432@qq.com // 
 设置邮件的发送地址  
 
 
 11 
  smtp_server 192.168.200.1  
 
 
 12 
  smtp_connect_timeout 30  
 
 
 13 
  router_id LVS_master // 
 运行 
  keepalive  
 服务器标识  
 
 
 14  
 }  
 
 
 15  
 vrrp_instance VI_1 { // 
 实例名  
 
 
 16 
  state MASTER // 
 指定 
  keepalived  
 角色  
 
 
 17 
  interface ens32 // 
 指定 
  HA  
 监测网络的接口  
 
 
 18 
  virtual_router_id 1 // 
 虚拟路由标识  
 
 
 19 
  priority 100 // 
 节点优先级  
 
 
 20 
  advert_int 1 // 
 设定 
  master  
 与 
  backup  
 主机之间同步检查时间间隔,单位是秒  
 
 
 21 
  authentication { // 
 设定节点间通信验证类型和密码  
 
 
 22 
  auth_type PASS // 
 验证类型  
 
 
 23 
  auth_pass 123456 // 
 验证密码  
 
 
 24 
  }  
 
 
 25 
  virtual_ipaddress { // 
 虚拟 
  IP  
 地址( 
 VIP 
 )  
 
 
 26 
  192.168.23.100  
 
 
 27 
  }  
 
 
 28  
 }  
 
 
 29  
 
 
 30 
  vrrp_instance VI_2 { // 
 第二个虚拟 
  IP  
 实例  
 
 
 31 
  state MASTER 
 32 
  interface ens34  
 
 
 33 
  virtual_router_id 1  
 
 
 34 
  priority 100  
 
 
 35 
  advert_int 1  
 
 
 36 
  authentication {  
 
 
 37 
  auth_type PASS  
 
 
 38 
  auth_pass 123456  
 
 
 39 
  }  
 
 
 40 
  virtual_ipaddress {  
 
 
 41 
  192.168.244.100  
 
 
 42 
  }  
 
 
 43  
 }  
 
 
 44  
 
 
 45  
 virtual_server 192.168.23.100 80 { // 
 虚拟服务器开始  
 
 
 46 
  delay_loop 10 // 
 健康检查时间间隔,单位是秒  
 
 
 47 
  lb_algo rr // 
 设置负载调度算法  
 
 
 48 
  lb_kind NAT // 
 设置 
  LVS  
 负载均衡的机制  
 
 
 49 
  persistence 60 // 
 会话保持时间,单位是秒  
 
 
 50 
  protocol TCP // 
 指定转发协议类型  
 
 
 51 
  real_server 192.168.244.205 80 { // 
 指定 
  real server  
 节点  
 
 
 52 
  weight 1 // 
 设置 
  real server  
 节点的权重值  
 
 
 53 
  TCP_CHECK {  
 
 
 54 
  connect_port 80 // 
 健康检查的端口  
 
 
 55 
  connect_timeout 3 // 
 无响应超时时间,单位是秒  
 
 
 56 
  nb_get_retry 3 // 
 重试次数  
 
 
 57 
  delay_before_retry 5 // 
 重试间隔时间,单位是秒  
 
 
 58 
  }  
 
 
 59 
  }  
 
 
 60 
  real_server 192.168.244.206 80 {  
 
 
 61 
  weight 1  
 
 
 62 
  TCP_CHECK {  
 
 
 63 
  connect_port 80  
 
 
 64 
  connect_timeout 3  
 
 
 65 
  nb_get_retry 3  
 
 
 66 
  delay_before_retry 5  
 
 
 67 
  }  
 
 
 68  
 }  
 
 
 69  
 }  
 
 
 70  
 [root@lvs-master keepalived]# systemctl restart keepalived 
 71  
 [root@lvs-master keepalived]# systemctl enable keepalived  
 
 
 72  
 Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to  
 
 
 /usr/lib/systemd/system/keepalived.service.  
 
 
 lvs-slave配置文件  
 
 
 1  
 [root@lvs-slave ~]# cd /etc/keepalived/  
 
 
 2  
 [root@lvs-slave keepalived]# cp keepalived.conf keepalived.conf.bak  
 
 
 3  
 [root@lvs-slave keepalived]# vim keepalived.conf  
 
 
 4  
 ! Configuration File for keepalived  
 
 
 5  
 
 
 6  
 global_defs {  
 
 
 7 
  notification_email {  
 
 
 8 
  m17602062016@163.com  
 
 
 9 
  }  
 
 
 10 
  notification_email_from Alexandre.Cassen@firewall.loc  
 
 
 11 
  smtp_server 192.168.200.1  
 
 
 12 
  smtp_connect_timeout 30  
 
 
 13 
  router_id LVS_master  
 
 
 14  
 }  
 
 
 15  
 vrrp_instance VI_1 {  
 
 
 16 
  state BACKUP  
 
 
 17 
  interface ens32  
 
 
 18 
  virtual_router_id 1  
 
 
 19 
  priority 99  
 
 
 20 
  advert_int 1  
 
 
 21 
  authentication {  
 
 
 22 
  auth_type PASS  
 
 
 23 
  auth_pass 123456  
 
 
 24 
  }  
 
 
 25 
  virtual_ipaddress {  
 
 
 26 
  192.168.23.100  
 
 
 27 
  }  
 
 
 28  
 }  
 
 
 29  
 
 
 30 
  vrrp_instance VI_2 {  
 
 
 31 
  state BACKUP 
 32 
  interface ens34  
 
 
 33 
  virtual_router_id 1  
 
 
 34 
  priority 99  
 
 
 35 
  advert_int 1  
 
 
 36 
  authentication {  
 
 
 37 
  auth_type PASS  
 
 
 38 
  auth_pass 123456  
 
 
 39 
  }  
 
 
 40 
  virtual_ipaddress {  
 
 
 41 
  192.168.244.100  
 
 
 42 
  }  
 
 
 43  
 }  
 
 
 44 
 
 
 45  
 virtual_server 192.168.23.100 80 {  
 
 
 46 
  delay_loop 10  
 
 
 47 
  lb_algo rr  
 
 
 48 
  lb_kind NAT  
 
 
 49 
  persistence 60  
 
 
 50 
  protocol TCP  
 
 
 51 
  real_server 192.168.244.205 80 {  
 
 
 52 
  weight 1  
 
 
 53 
  TCP_CHECK {  
 
 
 54 
  connect_port 80  
 
 
 55 
  connect_timeout 3  
 
 
 56 
  nb_get_retry 3  
 
 
 57 
  delay_before_retry 5  
 
 
 58 
  }  
 
 
 59 
  }  
 
 
 60 
  real_server 192.168.244.206 80 {  
 
 
 61 
  weight 1  
 
 
 62 
  TCP_CHECK {  
 
 
 63 
  connect_port 80  
 
 
 64 
  connect_timeout 3  
 
 
 65 
  nb_get_retry 3  
 
 
 66 
  delay_before_retry 5  
 
 
 67 
  }  
 
 
 68  
 }  
 
 
 69  
 }  
 
 
 70 
 71  
 [root@lvs-slave ~]# cd /etc/keepalived/  
 
 
 72  
 [root@lvs-slave keepalived]# cp keepalived.conf keepalived.conf.bak  
 
 
 73  
 [root@lvs-slave keepalived]# vim keepalived.conf  
 
 
 💡 
 注意:  
 
 
 内网两台 
  web  
 服务器的网关地址修改为第二个实例的 
  VIP  
 地址  
 
 
 192.168.244.100  
 
 
 第一个实例的 
  VIP  
 地址用于客户端访问使用 
 
 
 4、测试负载均衡是否正常工作  
 
 
 客户端测试访问 
  VIP  
 地址  
 
 
 可以看到,我们在客户端一共访问 
 2 
 次, 
 LVS  
 调度器分别将请求交给 
  web01  
 和 
  web02  
 
 
 关闭 
  lvs-master  
 服务器  
 
 
 可以看到, 当主服务器 
 master 
 关闭时, 
 VIP  
 地址漂移到 
  slave  
 从服务器 
 
 
 
 5、启用邮件通知功能,以便及时了解各 Web 节点服务器的健康状况 
 。  
 
 
 1  
 [root@lvs-master ~]# head -5 /etc/keepalived/keepalived.conf  
 
 
 2  
 ! Configuration File for keepalived  
 
 
 3  
 
 
 4  
 global_defs {  
 
 
 5 
  notification_email { // 
 启用邮件告警功能  
 
 
 6 
  m17602062016@163.com  
 
 
 7  
 
五、部署 inotify+rsync 服务进行数据备份 
 
 
 1、在 Web 服务器上设置计划任务,每天凌晨 1 点通过推送方式备份网站访问日志 
 。  
 
 
 修改 
  web01  
 配置文件  
 
 
 1  
 [root@web01 ~]# vim /etc/rsyncd.conf  
 
 
 2  
 uid = nobody  
 
 
 3  
 gid = nobody  
 
 
 4  
 use chroot = yes // 
 禁锢在源目录  
 
 
 5  
 max connections = 4 // 
 最大连接数  
 
 
 6  
 pid file = /var/run/rsyncd.pid // 
 存放进程 
  ID  
 的文件位置  
 
 
 7  
 log file = /var/log/rsyncd.log // 
 日志文件位置  
 
 
 8  
 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 // 
 同步时不在压缩的文件类型  
 
 
 9  
 address = 192.168.244.205 // 
 监听地址  
 
 
 10  
 port = 873 // 
 监听端口  
 
 
 11  
 hosts allow = 192.168.244.0/24 // 
 允许访问的客户机地址  
 
 
 12  
 [wwwroot] // 
 共享模块名称  
 
 
 13 
  path = /var/log/nginx // 
 源目录的实际路径  
 
 
 14 
  read only = yes // 
 是否为只读  
 
 
 15 
  auth users = backuper // 
 授权账户  
 
 
 16 
  secrets file = /etc/rsyncd_users.db // 
 存放账户信息的数据文件  
 
 
 17  
 [root@web01 ~]# vim /etc/rsyncd_users.db  
 
 
 18  
 backuper:cisco@123 
 19  
 [root@web01 ~]# chmod 600 /etc/rsyncd_users.db  
 
 
 20  
 [root@web01 ~]# rsync --daemon  
 
 
 21  
 [root@web01 ~]# ss -anpt | grep rsync  
 
 
 22  
 LISTEN 0 5 192.168.244.205:873 *:*  
 
 
 users:(("rsync",pid=79686,fd=4))  
 
 
 23  
 
 
 配置 
  rsync  
 服务器,每天凌晨 
 1 
 点将 
  web  
 服务器的访问日志备份至 
  rsync  
 服务器下的 
  /bdqn_access_log.bak  
 目录  
 
 
 1  
 [root@centos7-10 ~]# hostnamectl set-hostname rsync  
 
 
 2  
 [root@centos7-10 ~]# bash  
 
 
 3  
 [root@rsync ~]# vim /etc/server.pass  
 
 
 4  
 cisco@123  
 
 
 5  
 [root@rsync ~]# chmod 600 /etc/server.pass  
 
 
 6  
 [root@rsync ~]# crontab -e // 
 设置定时任务,每天凌晨一点备份网站的访问日志  
 
 
 7  
 00 1 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass  
 
 
 backuper@192.168.244.205::wwwroot /bdqn_access_log.bak  
 
 
 8  
 [root@rsync ~]# mkdir /bdqn_access_log.bak  
 
 
 9  
 [root@rsync ~]# systemctl restart crond  
 
 
 10  
 [root@rsync ~]# systemctl enable crond  
 
 
 2、配置 inotify 监控 NFS 文件服务器共享目录的变动情况,一旦有更新就触发 rsync 同步操作  
 
 
 配置 rsync 服务器  
 
 
 1  
 [root@rsync ~]# useradd aaa  
 
 
 2  
 [root@rsync ~]# passwd aaa  
 
 
 3  
 [root@rsync ~]# vim /etc/rsyncd.conf  
 
 
 4  
 uid = aaa  
 
 
 5  
 gid = aaa  
 
 
 6  
 use chroot = yes  
 
 
 7  
 max connections = 4  
 
 
 8  
 pid file = /var/run/rsyncd.pid  
 
 
 9  
 log file = /var/log/rsyncd.log  
 
 
 10  
 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2  
 
 
 11  
 address = 192.168.244.210  
 
 
 12  
 port = 873 
 13  
 hosts allow = 192.168.244.0/24  
 
 
 14  
 [wwwroot]  
 
 
 15 
  path = /var/www/html  
 
 
 16 
  comment = wwwroot  
 
 
 17 
  read only = no  
 
 
 
 18  
 [root@rsync ~]# mkdir -p /var/www/html  
 
 
 19  
 [root@rsync ~]# chown -R aaa:aaa /var/www/html  
 
 
 20  
 [root@rsync ~]# ls -ld /var/www/html/  
 
 
 21  
 drwxr-xr-x 2 aaa aaa 6 3 
 月 
  31 11:03 /var/www/html/  
 
 
 22  
 [root@rsync ~]# rsync --daemon  
 
 
 23  
 [root@rsync ~]# systemctl enable rsyncd  
 
 
 24  
 [root@rsync ~]# ss -anpt | grep rsync  
 
 
 25  
 LISTEN 0 5 192.168.244.210:873 *:*  
 
 
 users:(("rsync",pid=1637,fd=4))  
 
 
 配置 
  NFS  
 共享文件服务器  
 
 
 1  
 [root@nfs ~]# vim /etc/sysctl.conf  
 
 
 2  
 .......  
 
 
 3  
 fs.inotify.max_queued_events = 16384  
 
 
 4  
 fs.inotify.max_user_instances = 1024  
 
 
 5  
 fs.inotify.max_user_watches = 1048576  
 
 
 6  
 [root@nfs ~]# sysctl -p  
 
 
 7  
 
 
 8  
 
 
 9  
 ## 
 安装 
  inotify  
 工具  
 
 
 10  
 [root@nfs ~]# tar zxf inotify-tools-3.14.tar.gz -C /usr/src/  
 
 
 11  
 [root@nfs ~]# cd /usr/src/inotify-tools-3.14/  
 
 
 12  
 [root@nfs inotify-tools-3.14]# ./configure  
 
 
 13  
 [root@nfs inotify-tools-3.14]# make && make install  
 
 
 14  
 
 
 15  
 [root@nfs ~]# vim /etc/server.pass  
 
 
 16  
 cisco@123  
 
 
 17  
 [root@nfs ~]# chmod 600 /etc/server.pass  
 
 
 18  
 [root@nfs ~]# vim /opt/inotify_rsyncd.sh  
 
 
 19  
 #!/bin/bash  
 
 
 20  
 INOTIFY_CMD="inotifywait -mrq -e modify,create,move,delete /opt/wwwroot" 
 21  
 RSYNC_CMD="rsync -az --delete --password-file=/etc/server.pass /opt/wwwroot/  
 
 
 root@192.168.244.210::wwwroot"  
 
 
 22  
 $INOTIFY_CMD | while read DIRECTORY EVENT FILE  
 
 
 23  
 do  
 
 
 24 
  $RSYNC_CMD  
 
 
 25  
 done  
 
 
 26  
 [root@nfs wwwroot]# chmod +x /opt/inotify_rsyncd.sh  
 
 
 3、验证数据备份是否正常工作  
 
 
 在 
  nfs  
 服务器的 
  /opt/wwwroot/  
 目录下创建文件  
 
 
 1  
 [root@nfs wwwroot]# touch a.txt b.txt c.txt  
 
 
 在 
  rsync  
 服务器的 
  /var/www/html  
 目录下查看,刚才在 
  nfs  
 服务器上创建的文件有没有被同步过来  
 
 
 1  
 [root@rsync ~]# cd /var/www/html/  
 
 
 2  
 [root@rsync html]# ls  
 
 
 3  
 1.txt 2.txt 3.txt a.txt b.txt c.txt index.html info.php mysql.php  
 
 
 可以看到,数据被同步过来  
 
 
 至此,项目完成  
 
六、问题及分析 
 
 
 1、测试 PHP 无法解析后端数据库(已解决)  
 
 
 解决办法:后端数据库用户没有远程连接权限,添加远程连接权限即可。  
 
 
 2、无法通过 lvs-slave 从负载调度器访问 web 页面(已解决)  
 
 
 解决办法:经排查主从调度器切换没问题,VIP 地址能正常飘逸,最后发现内网 web 服务  
 
 
 器网关未设置正确, Keepallived 配置文件再次添加一个实例 VIP 地址,网关设置成这个地  
 
 
 址即可。3、inotify 监控与 rsync 同步,用户问题无法触发更新,暂且使用 root 用户(已解决)  
 
 
 解决办法:修改 rsync 服器共享目录所属用户,属组即可。  
 
 
 4、inotify 触发脚本设置开机启动无法生效。(未解决)