您的位置:首页 > 汽车 > 时评 > 网络安装公司_软件外包公司的一生_企业管理培训课程费用_外贸网

网络安装公司_软件外包公司的一生_企业管理培训课程费用_外贸网

2025/5/24 13:44:19 来源:https://blog.csdn.net/2201_75406597/article/details/146501347  浏览:    关键词:网络安装公司_软件外包公司的一生_企业管理培训课程费用_外贸网
网络安装公司_软件外包公司的一生_企业管理培训课程费用_外贸网

1、虚拟环境准备:

角色主机名软件IP地址
用户client192.168.250.90
keepalivedVip

192.168.250.100

192.168.250.101

192.168.250.101

masterserverakeepalived、nginx192.168.250.30
backupserverbkeepalived、nginx192.168.250.31
backupserverckeepalived、nginx192.168.250.32
webtomcat1tomcat192.168.250.41
webtomcat2tomcat192.168.250.42

web

tomcat3tomcat192.168.250.43
DNS轮询DNSnginx192.168.250.11

注意:开始搭建之前确保所有虚拟机防火墙和selinux都要关闭 

2、搭建tomcat

(1)搭建JDK环境

 wget https://download.oracle.com/java/21/latest/jdk21_linux-x64_bin.tar.gz

将JDK21的压缩包使用tar命令压缩到/usr/local目录下

tar -zxf jdk-21_linux-x64_bin.tar.gz -C /usr/local/

进入/etc/profile目录下加入以下内容:

export JAVA_HOME=/usr/local/jdk-21.0.6/
export PATH=$PATH:$JAVA_HOME/bin

使用source /etc/profile 加载文件

查看java环境是否搭建成功,使用java -version 查询java的版本:

[root@tomcat1 ~]# java -version
java version "21.0.6" 2025-01-21 LTS
Java(TM) SE Runtime Environment (build 21.0.6+8-LTS-188)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.6+8-LTS-188, mixed mode, sharing)

(2)搭建web页面

tomcat1

下载tomcat压缩包:

wget https://dlcdn.apache.org/tomcat/tomcat11/v11.0.5/bin/apache-tomcat-11.0.5.tar.gz

 将压缩包解压到/usr/local下

tar -zxf apache-tomcat-11.0.5.tar.gz -C /usr/local/

在/etc/profile目录下添加如下内容:

export TOMCAT_HOME=/usr/local/apache-tomcat-11.0.5
export PATH=$PATH:$TOMCAT_HOME/bin

这时环境变量就添加好了,使用source /etc/profile重新加载文件,然后使用startup.sh启动tomcat如下:

[root@tomcat1 ~]# startup.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-11.0.5
Using CATALINA_HOME:   /usr/local/apache-tomcat-11.0.5
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-11.0.5/temp
Using JRE_HOME:        /usr/local/jdk-21.0.6/
Using CLASSPATH:       /usr/local/apache-tomcat-11.0.5/bin/bootstrap.jar:/usr/local/apache-tomcat-11.0.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

重新定义web页面

cd /usr/local/apache-tomcat-11.0.5/webapps/ROOT/

删除此目录下的所有内容,再重新定义一个以.jsp结尾的文件:

[root@tomcat1 ROOT]# rm -rf *
[root@tomcat1 ROOT]# vim index.jsp

index.jsp中的内容可随便定义(这里我们方便区别另外两台tomcat定义成ip地址加主机名)

[root@tomcat1 ROOT]# cat index.jsp 
tomcat1 192.168.250.41

此时我们在浏览器输入http://192.168.250.41:8080验证tomcat是否成功

已经成功看到我们自定义的内容!!

还剩另外两台tomcat和第一台的搭建一摸一样唯一不同的就是自定义的web界面:

tomcat2

使用scp命令将tomcat1上的jdk文件和tomcat文件传到tomcat2上:

scp -r /usr/local/jdk-21.0.6/ root@192.168.250.42:/usr/local
scp -r /usr/local/apache-tomcat-11.0.5/ root@192.168.250.42:/usr/local

 再在tomcat2上查看文件是否传送成功:

[root@tomcat2 ~]# ls /usr/local/
apache-tomcat-11.0.5  bin  etc  games  include  jdk-21.0.6  lib  lib64  libexec  sbin  share  src

再将tomcat1上的/etc/profile文件传到tomcat2上:

[root@tomcat1 ~]# scp /etc/profile root@192.168.250.42:/etc

查看tomcat2上/etc/profile文件下的倒数四行,是否传送成功:

[root@tomcat2 ~]# tail -n -4 /etc/profile
export JAVA_HOME=/usr/local/jdk-21.0.6/
export PATH=$PATH:$JAVA_HOME/bin
export TOMCAT_HOME=/usr/local/apache-tomcat-11.0.5
export PATH=$PATH:$TOMCAT_HOME/bin

传送成功!!此时需要使用source /etc/profile 更新文件再使用java -version 和startup.sh 启动tomcat

[root@tomcat2 ~]# source /etc/profile
[root@tomcat2 ~]# java -version
java version "21.0.6" 2025-01-21 LTS
Java(TM) SE Runtime Environment (build 21.0.6+8-LTS-188)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.6+8-LTS-188, mixed mode, sharing)
[root@tomcat2 ~]# startup.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-11.0.5
Using CATALINA_HOME:   /usr/local/apache-tomcat-11.0.5
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-11.0.5/temp
Using JRE_HOME:        /usr/local/jdk-21.0.6/
Using CLASSPATH:       /usr/local/apache-tomcat-11.0.5/bin/bootstrap.jar:/usr/local/apache-tomcat-11.0.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

重新定义web界面:

cd /usr/local/apache-tomcat-11.0.5/webapps/ROOT/

删除此目录下的所有内容,再重新定义一个以.jsp结尾的文件:

[root@tomcat1 ROOT]# rm -rf *
[root@tomcat1 ROOT]# vim index.jsp

这里我们将tomcat2上的web界面定义为:

[root@tomcat2 ~]# cat /usr/local/apache-tomcat-11.0.5/webapps/ROOT/index.jsp 
tomcat2 192.168.250.42

再在浏览器中输入:http//192.168.250.42:8080查看

tomcat3

和tomcat2一样先从tomcat1上将jdk以及tomcat传到本机上再将/etc/profile也传到本机上再启动tomcat最后自定义web页面然后测试是否生效:

传送文件:

scp -r /usr/local/jdk-21.0.6/ root@192.168.250.42:/usr/local
scp -r /usr/local/apache-tomcat-11.0.5/ root@192.168.250.42:/usr/local
scp /etc/profile root@192.168.250.42:/etc

 启动tomcat:

[root@tomcat3 ~]# startup.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-11.0.5
Using CATALINA_HOME:   /usr/local/apache-tomcat-11.0.5
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-11.0.5/temp
Using JRE_HOME:        /usr/local/jdk-21.0.6/
Using CLASSPATH:       /usr/local/apache-tomcat-11.0.5/bin/bootstrap.jar:/usr/local/apache-tomcat-11.0.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

重新定义页面:

[root@tomcat3 ~]# cat /usr/local/apache-tomcat-11.0.5/webapps/ROOT/index.jsp 
tomcat3 192.168.250.43

在浏览器中输入http://192.168.250.43:8080

web服务全部搭建完成!!!

3、搭建keepalived高可用与主热备架构:

配置nginx

在servera上面下载nginx、keepalived软件:

dnf install nginx keepalived -y

servera

在/etc/nginx/conf.d下创建以.conf结尾的文件并写入以下内容:

[root@servera ~]# cat /etc/nginx/conf.d/servera.conf 
upstream tomcat1 {server 192.168.250.41:8080;server 192.168.250.42:8080;server 192.168.250.43:8080;
}
server {listen 80;server_name 192.168.250.30;access_log /var/log/nginx/master_access.log;error_log /var/log/nginx/master_error.log;location / {proxy_pass   http://tomcat1;}
}

启动nginx并使用curl测试是否轮询访问:

[root@servera ~]# systemctl start nginx
[root@servera ~]# curl 192.168.250.30
tomcat1 192.168.250.41
[root@servera ~]# curl 192.168.250.30
tomcat2 192.168.250.42
[root@servera ~]# curl 192.168.250.30
tomcat3 192.168.250.43

测试成功!!!!

serverb

同上述servera一样先下载软件再编写配置文件最后测试:

[root@serverb ~]# dnf install nginx keepalived -y
[root@serverb ~]# cat /etc/nginx/conf.d/serverb.conf 
upstream tomcat2 {server 192.168.250.41:8080;server 192.168.250.42:8080;server 192.168.250.43:8080;
}
server {listen 80;server_name 192.168.250.31;access_log /var/log/nginx/master_access.log;error_log /var/log/nginx/master_error.log;location / {proxy_pass   http://tomcat2;}
}systemctl start nginx
[root@serverb ~]# curl 192.168.250.31
tomcat1 192.168.250.41
[root@serverb ~]# curl 192.168.250.31
tomcat2 192.168.250.42
[root@serverb ~]# curl 192.168.250.31
tomcat3 192.168.250.43

serverc

同上:

[root@serverb ~]# dnf install nginx keepalived -y
[root@serverb ~]# cat /etc/nginx/conf.d/serverc.conf 
upstream tomcat3 {server 192.168.250.41:8080;server 192.168.250.42:8080;server 192.168.250.43:8080;
}
server {listen 80;server_name 192.168.250.32;access_log /var/log/nginx/master_access.log;error_log /var/log/nginx/master_error.log;location / {proxy_pass   http://tomcat3;}
}systemctl start nginx
[root@serverb ~]# curl 192.168.250.32
tomcat1 192.168.250.41
[root@serverb ~]# curl 192.168.250.32
tomcat2 192.168.250.42
[root@serverb ~]# curl 192.168.250.32
tomcat3 192.168.250.43

配置keepalived高可用

servera

编写脚本实现高可用:

脚本文件放在/etc/keepalived下

[root@servera ~]# cat /etc/keepalived/check_nginx.sh 
#!/bin/bash
counter=$(ps -C nginx --no-header| wc -l)
if [ $counter -eq 0 ]; thensystemctl start nginxif [ `ps -C nginx --no-header| wc -l` -eq 0 ]; thensystemctl stop keepalivedfi
fi

给脚本文件赋权:

chmod +x /etc/keepalived/check_nginx.sh

 查看是否赋权成功:

打开keepalived的配置文件进行如下修改:

global_defs {router_id MASTER
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_1 {state MASTERinterface ens160virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.100}track_script {chk_nginx}}global_defs {router_id BACKUP
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_2 {state BACKUPinterface ens160virtual_router_id 52priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.101}track_script {chk_nginx}}global_defs {router_id BACKUP
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_3 {state BACKUPinterface ens160virtual_router_id 53priority 60advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.102}track_script {chk_nginx}}

启动keepalived服务查看是否出现漂移IP

systemctl start keepalived
[root@servera ~]# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:ee:31:81 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.250.30/24 brd 192.168.250.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.250.100/32 scope global ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feee:3181/64 scope link noprefixroute valid_lft forever preferred_lft forever

 此时出现的inet 192.168.250.100/32 scope global ens160就是漂移ip

修改nginx配置文件,将server_nameIP改成漂移IP即192.168.250.100

[root@servera ~]# cat /etc/nginx/conf.d/servera.conf 
upstream tomcat1 {server 192.168.250.41:8080;server 192.168.250.42:8080;server 192.168.250.43:8080;
}
server {listen 80;server_name 192.168.250.100;access_log /var/log/nginx/master_access.log;error_log /var/log/nginx/master_error.log;location / {proxy_pass   http://tomcat1;}
}

重新启动nginx服务 

serverb

配置同上(特别需要注意的是要注意keepalived配置文件中三个漂移ip的优先级)

将servera的脚本文件拷贝到serverb中

scp /etc/keepalived/check_nginx.sh root@192.168.250.31:/keepalived/

修改keepalived的配置文件:

[root@serverb ~]# cat /etc/keepalived/keepalived.conf 
global_defs {router_id BACKUP
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 60advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.100}track_script {chk_nginx}}global_defs {router_id MASTER
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_2 {state MASTERinterface ens160virtual_router_id 52priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.101}track_script {chk_nginx}}global_defs {router_id BACKUP
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_3 {state BACKUPinterface ens160virtual_router_id 53priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.102}track_script {chk_nginx}}

启动keepalived服务查看漂移ip

[root@serverb ~]# systemctl start keepalived
[root@serverb ~]# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:c2:e1:65 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.250.31/24 brd 192.168.250.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.250.101/32 scope global ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fec2:e165/64 scope link noprefixroute valid_lft forever preferred_lft forever

 此时出现的inet 192.168.250.101/32 scope global ens160就是漂移ip

修改nginx配置文件将server_name 改成漂移ip即192.168.250.101

[root@serverb ~]# cat /etc/nginx/conf.d/serverb.conf 
upstream tomcat2 {server 192.168.250.41:8080;server 192.168.250.42:8080;server 192.168.250.43:8080;
}
server {listen 80;server_name 192.168.250.101;access_log /var/log/nginx/master_access.log;error_log /var/log/nginx/master_error.log;location / {proxy_pass   http://tomcat2;}
}

再重启nginx服务

serverc

同上配置:

将脚本文件拷贝到serverc上,再修改keepalived配置文件,再启动keepalived服务查看漂移ip最后修改nginx服务的配置文件中的server_name修改成漂移文件代码如下:

scp /etc/keepalived/check_nginx.sh root@192.168.250.32:/etc/keepalived/[root@serverc ~]# cat /etc/keepalived/keepalived.conf 
global_defs {router_id BACKUP
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.100}track_script {chk_nginx}}global_defs {router_id BACKUP
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_2 {state BACKUPinterface ens160virtual_router_id 52priority 60advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.101}track_script {chk_nginx}}global_defs {router_id MASTER
}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2
}vrrp_instance VI_3 {state MASTERinterface ens160virtual_router_id 53priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.250.102}track_script {chk_nginx}}
[root@serverc ~]# systemctl restart keepalived.service 
[root@serverc ~]# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:50:ff:3f brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.250.32/24 brd 192.168.250.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.250.102/32 scope global ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe50:ff3f/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@serverc ~]# cat /etc/nginx/conf.d/serverc.conf 
upstream tomcat3 {server 192.168.250.41:8080;server 192.168.250.42:8080;server 192.168.250.43:8080;
}
server {listen 80;server_name 192.168.250.102;access_log /var/log/nginx/master_access.log;error_log /var/log/nginx/master_error.log;location / {proxy_pass   http://tomcat3;}
}

4、配置DNS轮询

在dns主机上下载nginx

dnf install nginx -y

写入配置文件:

[root@dns ~]# cat /etc/nginx/conf.d/dns.conf 
upstream web {server 192.168.250.100;server 192.168.250.101;server 192.168.250.102;
}
server {listen 80;server_name 192.168.250.11;access_log /var/log/nginx/access_dns.log;error_log /var/log/nginx/error_dns.log;location / {proxy_pass http://web;}
}

 启动nginx服务

systemctl start nginx

5、测试:

(1)测试高可用

将servera、serverb、serverc上的nginx服务关闭再查看nginx的进程是否存在:

servera

[root@servera ~]# systemctl stop nginx
[root@servera ~]# ps -ef | grep nginx
root        5650       1  0 15:20 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx       5651    5650  0 15:20 ?        00:00:00 nginx: worker process
nginx       5652    5650  0 15:20 ?        00:00:00 nginx: worker process
nginx       5653    5650  0 15:20 ?        00:00:00 nginx: worker process
nginx       5654    5650  0 15:20 ?        00:00:00 nginx: worker process
root        5675    1509  0 15:20 pts/0    00:00:00 grep --color=auto nginx

serverb

[root@serverb ~]# systemctl stop nginx 
[root@serverb ~]# ps -ef | grep nginx
root        5592       1  0 15:21 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx       5593    5592  0 15:21 ?        00:00:00 nginx: worker process
nginx       5594    5592  0 15:21 ?        00:00:00 nginx: worker process
nginx       5595    5592  0 15:21 ?        00:00:00 nginx: worker process
nginx       5596    5592  0 15:21 ?        00:00:00 nginx: worker process
root        5605    1472  0 15:21 pts/0    00:00:00 grep --color=auto nginx

serverc

[root@serverc ~]# systemctl stop nginx
[root@serverc ~]# ps -ef | grep nginx
root        5530       1  0 15:22 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx       5531    5530  0 15:22 ?        00:00:00 nginx: worker process
nginx       5532    5530  0 15:22 ?        00:00:00 nginx: worker process
nginx       5533    5530  0 15:22 ?        00:00:00 nginx: worker process
nginx       5534    5530  0 15:22 ?        00:00:00 nginx: worker process
root        5544    1474  0 15:22 pts/0    00:00:00 grep --color=auto nginx

 测试高可用成功!!!

(2)测试DNS轮询

在client主机上使用curl命令分别测试192.168.250.100、192.168.250.101、192.168.250.102

[root@client ~]# curl 192.168.250.100
tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.100
tomcat3 192.168.250.43[root@client ~]# curl 192.168.250.100
tomcat1 192.168.250.41
[root@client ~]# curl 192.168.250.101
tomcat1 192.168.250.41
[root@client ~]# curl 192.168.250.101
tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.101
tomcat3 192.168.250.43[root@client ~]# curl 192.168.250.102
tomcat1 192.168.250.41
[root@client ~]# curl 192.168.250.102
tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.102
tomcat3 192.168.250.43

测试成功!!!

(3)测试三主热备架构

 将servera上的keepalived服务关闭,再去客户机上使用curl命令测试:

[root@servera ~]# systemctl stop keepalived.service

此时虚拟ip消失,出现在serverc主机上:

[root@servera ~]# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:ee:31:81 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.250.30/24 brd 192.168.250.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feee:3181/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@serverc ~]# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:50:ff:3f brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.250.32/24 brd 192.168.250.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.250.102/32 scope global ens160valid_lft forever preferred_lft foreverinet 192.168.250.100/32 scope global ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe50:ff3f/64 scope link noprefixroute valid_lft forever preferred_lft forever

使用curl测试:

[root@client ~]# curl 192.168.250.100
tomcat1 192.168.250.41
[root@client ~]# curl 192.168.250.100
tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.100
tomcat3 192.168.250.43

同理将serverb上的keepalived服务关闭再查看虚拟ip

[root@serverb ~]# systemctl stop keepalived.service 
[root@serverb ~]# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:c2:e1:65 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.250.31/24 brd 192.168.250.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fec2:e165/64 scope link noprefixroute valid_lft forever preferred_lft forever

 此时的虚拟ip全部在serverc上:

[root@serverc ~]# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:50:ff:3f brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.250.32/24 brd 192.168.250.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.250.102/32 scope global ens160valid_lft forever preferred_lft foreverinet 192.168.250.100/32 scope global ens160valid_lft forever preferred_lft foreverinet 192.168.250.101/32 scope global ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe50:ff3f/64 scope link noprefixroute valid_lft forever preferred_lft forever

再在客户端上测试DNS轮询查看是否成功:

[root@client ~]# curl 192.168.250.100
tomcat1 192.168.250.41
[root@client ~]# curl 192.168.250.100
tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.100
tomcat3 192.168.250.43[root@client ~]# curl 192.168.250.101
tomcat1 192.168.250.41
[root@client ~]# curl 192.168.250.101
tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.101
tomcat3 192.168.250.43[root@client ~]# curl 192.168.250.102
tomcat1 192.168.250.41
[root@client ~]# curl 192.168.250.102
tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.102
tomcat3 192.168.250.43

测试成功!!!!三主热备架构高可用搭建完成!!!

6、总结

在本次实验中,最需要注意的就是keepalived的配置文件,因为有三个虚拟ip所以优先级,一定要按顺序写,一共是三组,如果逻辑思维不强的同学可以现在记事本中分好组再写入配置文件,以免出现keepalived配置文件出错导致keepalived服务启动失败的错误。另外还要注意高可用的脚本,语法正确否则高可用会失败。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com