加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 运营中心 > LNMP > 正文

linux系统lnmp架构keepalived高可用

发布时间:2023-02-17 13:59:21 所属栏目:LNMP 来源:互联网
导读:keepalived 注意:任何软件都可以使用keepalived来做高可用 keepalived如何实现高可用 VRRP:虚拟路由冗余协议 比如公司的网络是通过网关进行上网的,那么如果该路由器故障了,网关无法转发报文了,此时所有人都无法上网了,怎么办? 通常做法是给路由器增加
  keepalived
  注意:任何软件都可以使用keepalived来做高可用
 
  keepalived如何实现高可用
  VRRP:虚拟路由冗余协议
 
  比如公司的网络是通过网关进行上网的,那么如果该路由器故障了,网关无法转发报文了,此时所有人都无法上网了,怎么办?
 
  通常做法是给路由器增加一台备节点,但是问题是,如果我们的主网关master故障了,用户是需要手动指向backup的,如果用户过多修改起来会非常麻烦。
 
  问题一:假设用户将指向都修改为backup路由器,那么master路由器修好了怎么办?
  问题二:假设Master网关故障,我们将backup网关配置为master网关的ip是否可以?
 
  其实是不行的,因为PC第一次通过ARP广播寻找到Master网关的MAC地址与IP地址后,会将信息写到ARP的缓存表中,那么PC之后连接都是通过那个缓存表的信息去连接,然后进行数据包的转发,即使我们修改了IP但是Mac地址是唯一的,pc的数据包依然会发送给master。(除非是PC的ARP缓存表过期,再次发起ARP广播的时候才能获取新的backup对应的Mac地址与IP地址)
 
  VIP:虚拟IP地址
 
  VMAC:虚拟mac地址
 
  如何才能做到出现故障自动转移,此时VRRP就出现了,我们的VRRP其实是通过软件或者硬件的形式在Master和Backup外面增加一个虚拟的MAC地址(VMAC)与虚拟IP地址(VIP),那么在这种情况下,PC请求VIP的时候,无论是Master处理还是Backup处理,PC仅会在ARP缓存表中记录VMAC与VIP的信息。
 
  练习题:
 
  1.两台lb,Nginx keepalived
 
  2.三台web,Nginx PHP
 
  3.一台db,mariadb
 
  4.一台nfs,nfs-utils sersync
 
  5.一台backup sync nfs-utils
 
  6.部署wordpress和wecenter
 
  环境准备
  服务器 外网IP 内网IP 安装服务 角色
  web01 10.0.0.7 172.16.1.7 Nginx,PHP-fpm web服务器
  web02 10.0.0.8 172.16.1.8 Nginx,PHP-fpm web服务器
  web03 10.0.0.9 172.16.1.9 Nginx,PHP-fpm web服务器
  db01 10.0.0.51 172.16.1.51 mariadb-server 数据库服务器
  nfs 10.0.0.31 172.16.1.31 nfs-utils,sersync 共享存储服务器
  backup 10.0.0.41 172.16.1.41 rsync,nfs-utils 备份服务器
  lb01 10.0.0.5 172.16.1.5 Nginx,keepalived 负载均衡服务器
  lb02 10.0.0.6 172.16.1.6 Nginx,keepalived 负载均衡高可用服务器
  操作准备
  别着急,点根烟,一点一点来......
 
  首先把三台web服务器给整好,该装的服务装上,
 
  先解决一台,然后连接完数据库之后把配置文件啥的都
 
  scp到其他web服务器,那就得创建数据库了,也可以先把数据库创建出来
 
  再做三台web,然后就是nfs共享存储和backup,两个关联着,边做nfs,边做backup
 
  完活之后就该负载均衡代理了,lb01和lb02两个一个做负载均衡,一个做负载均衡的高可用
 
 
 
 
 
 
 
 
 
 
 
 
  # 1.在站点目录下创建一个PHP连接数据库的代码(可做可不做)
  [root@web01 ~]# vim /website/wordpress/MysqL.PHP
  <?PHP
      $servername = "10.0.0.51";
      $username = "www";
      $password = "123";
      // 创建连接
      $conn = MysqLi_connect($servername, $username, $password);
      // 检测连接
      if (!$conn) {
          die("Connection Failed: " . MysqLi_connect_error());
      }
      echo "小兄弟,PHP可以连接MysqL...";
  ?>
  <img style='width:100%;height:100%;' src=https://blog.driverzeng.com/zenglaoshi/PHP_MysqL.png>
  web02
 
  # 上传Nginx和PHP-fpm的rpm包
  [root@web01 ~]# rz
  # 查看
  [root@web01 ~]# ll
  total 19984
  -rw-------. 1 root root     1444 Apr 30 20:50 anaconda-ks.cfg
  -rw-r--r--. 1 root root      287 May  3 20:07 host_ip.sh
  -rw-r--r--  1 root root 20453237 May 22 15:20 PHP_Nginx.tgz
  # 解压
  [root@web01 ~]# tar xf PHP_Nginx/tgz
  # 进入站点目录安装Nginx和PHP-fpm
   [root@web01 ~]# cd /root/root/Nginx_PHP
  [root@web01 Nginx_PHP]# rpm -Uvh *rpm
  # 创建www用户组和用户指定gid 666 uid 666不登录系统,没有家目录
  [root@web01 ~]# groupadd www -g 666
  [root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
  # 把web01的配置文件传到web02
  [root@web01 ~]# scp -r /code 10.0.0.8:/
  The authenticity of host '10.0.0.8 (10.0.0.8)' can't be established.
  ECDSA key fingerprint is SHA256:0LmJJQAFxWmarctpHr+bkYdqoSpp3j7O+TDbK1chOqI.
  ECDSA key fingerprint is MD5:a1:a9:30:13:5f:44:ad:da:fb:a1:65:34:b5:dd:a3:d3.
  Are you sure you want to continue connecting (yes/no)? yes
  Warning: Permanently added '10.0.0.8' (ECDSA) to the list of kNown hosts.
  root@10.0.0.8's password:
  [root@web01 ~]# scp -r /etc/Nginx/* 10.0.0.8:/etc/Nginx
  [root@web01 ~]# scp -r /etc/PHP-fpm.d 10.0.0.8:/etc/
  root@10.0.0.8's password:
  www.conf                                             
  # 启动Nginx和PHP-fpm并加入开机自启
  [root@web02 ~]# systemctl start Nginx PHP-fpm && systemctl enable Nginx PHP-fpm
  # 域名解析
  web03
 
  # 上传Nginx和PHP-fpm的rpm包
  [root@web03 ~]# rz
  # 查看
  [root@web03 ~]# ll
  total 19984
  -rw-------. 1 root root     1444 Apr 30 20:50 anaconda-ks.cfg
  -rw-r--r--. 1 root root      287 May  3 20:07 host_ip.sh
  -rw-r--r--  1 root root 20453237 May 22 15:20 PHP_Nginx.tgz
  # 解压
  [root@web03 ~]# tar xf PHP_Nginx/tgz
  # 进入站点目录安装Nginx和PHP-fpm
   [root@web03 ~]# cd /root/root/Nginx_PHP
  [root@web03 Nginx_PHP]# rpm -Uvh *rpm
  # 创建www用户组和用户指定gid 666 uid 666不登录系统,没有家目录
  [root@web03 ~]# groupadd www -g 666
  [root@web03 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
  # 把web01的配置文件传到web02
  [root@web01 ~]# scp -r /code 10.0.0.9:/
  The authenticity of host '10.0.0.9 (10.0.0.9)' can't be established.
  ECDSA key fingerprint is SHA256:0LmJJQAFxWmarctpHr+bkYdqoSpp3j7O+TDbK1chOqI.
  ECDSA key fingerprint is MD5:a1:a9:30:13:5f:44:ad:da:fb:a1:65:34:b5:dd:a3:d3.
  Are you sure you want to continue connecting (yes/no)? yes
  Warning: Permanently added '10.0.0.9' (ECDSA) to the list of kNown hosts.
  root@10.0.0.9's password:
  [root@web01 ~]# scp -r /etc/Nginx/* 10.0.0.9:/etc/Nginx
  [root@web01 ~]# scp -r /etc/PHP-fpm.d 10.0.0.9:/etc/
  root@10.0.0.9's password:
  www.conf                                             
  # 启动Nginx和PHP-fpm并加入开机自启
  [root@web02 ~]# systemctl start Nginx PHP-fpm && systemctl enable Nginx PHP-fpm
  # 域名解析
  nfs服务器部署
  ## 下载nfs-utils
  [root@nfs ~]# yum install -y nfs-utils
  # 编辑配置
  [root@nfs ~]# vim /etc/exports
  /tset 172.16.1.0/24(sync,rw,all_squash,anonuid=666,anongid=666)
  # 创建用户

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读