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) # 创建用户 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |