1、捏造环境准备:
脚色 | 主机名 | 软件 | IP地点 | 用户 | client | | 192.168.250.90 | keepalived | Vip | | 192.168.250.100
192.168.250.101
192.168.250.101
| master | servera | keepalived、nginx | 192.168.250.30 | backup | serverb | keepalived、nginx | 192.168.250.31 | backup | serverc | keepalived、nginx | 192.168.250.32 | web | tomcat1 | tomcat | 192.168.250.41 | web | tomcat2 | tomcat | 192.168.250.42 | web
| tomcat3 | tomcat | 192.168.250.43 | DNS轮询 | DNS | nginx | 192.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/localscp /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.31tomcat1 192.168.250.41[root@serverb ~]# curl 192.168.250.31tomcat2 192.168.250.42[root@serverb ~]# curl 192.168.250.31tomcat3 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.32tomcat1 192.168.250.41[root@serverb ~]# curl 192.168.250.32tomcat2 192.168.250.42[root@serverb ~]# curl 192.168.250.32tomcat3 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 ]; then
-
- systemctl start nginx
- if [ `ps -C nginx --no-header| wc -l` -eq 0 ]; then
- systemctl stop keepalived
- fi
- 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 MASTER
- interface ens160
- virtual_router_id 51
- priority 100
- advert_int 1
- authentication {
- auth_type PASS
- auth_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 BACKUP
- interface ens160
- virtual_router_id 52
- priority 80
- advert_int 1
- authentication {
- auth_type PASS
- auth_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 BACKUP
- interface ens160
- virtual_router_id 53
- priority 60
- advert_int 1
- authentication {
- auth_type PASS
- auth_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 1000
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::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 1000
- link/ether 00:0c:29:ee:31:81 brd ff:ff:ff:ff:ff:ff
- altname enp3s0
- inet 192.168.250.30/24 brd 192.168.250.255 scope global noprefixroute ens160
- valid_lft forever preferred_lft forever
- inet 192.168.250.100/32 scope global ens160
- valid_lft forever preferred_lft forever
- inet6 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 BACKUP
- interface ens160
- virtual_router_id 51
- priority 60
- advert_int 1
- authentication {
- auth_type PASS
- auth_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 MASTER
- interface ens160
- virtual_router_id 52
- priority 100
- advert_int 1
- authentication {
- auth_type PASS
- auth_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 BACKUP
- interface ens160
- virtual_router_id 53
- priority 80
- advert_int 1
- authentication {
- auth_type PASS
- auth_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 1000
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::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 1000
- link/ether 00:0c:29:c2:e1:65 brd ff:ff:ff:ff:ff:ff
- altname enp3s0
- inet 192.168.250.31/24 brd 192.168.250.255 scope global noprefixroute ens160
- valid_lft forever preferred_lft forever
- inet 192.168.250.101/32 scope global ens160
- valid_lft forever preferred_lft forever
- inet6 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修改成漂移文件代码如下:4、设置DNS轮询
在dns主机上下载nginx写入设置文件:- [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服务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 1000
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::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 1000
- link/ether 00:0c:29:ee:31:81 brd ff:ff:ff:ff:ff:ff
- altname enp3s0
- inet 192.168.250.30/24 brd 192.168.250.255 scope global noprefixroute ens160
- valid_lft forever preferred_lft forever
- inet6 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 1000
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::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 1000
- link/ether 00:0c:29:50:ff:3f brd ff:ff:ff:ff:ff:ff
- altname enp3s0
- inet 192.168.250.32/24 brd 192.168.250.255 scope global noprefixroute ens160
- valid_lft forever preferred_lft forever
- inet 192.168.250.102/32 scope global ens160
- valid_lft forever preferred_lft forever
- inet 192.168.250.100/32 scope global ens160
- valid_lft forever preferred_lft forever
- inet6 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 1000
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::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 1000
- link/ether 00:0c:29:c2:e1:65 brd ff:ff:ff:ff:ff:ff
- altname enp3s0
- inet 192.168.250.31/24 brd 192.168.250.255 scope global noprefixroute ens160
- valid_lft forever preferred_lft forever
- inet6 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 1000
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::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 1000
- link/ether 00:0c:29:50:ff:3f brd ff:ff:ff:ff:ff:ff
- altname enp3s0
- inet 192.168.250.32/24 brd 192.168.250.255 scope global noprefixroute ens160
- valid_lft forever preferred_lft forever
- inet 192.168.250.102/32 scope global ens160
- valid_lft forever preferred_lft forever
- inet 192.168.250.100/32 scope global ens160
- valid_lft forever preferred_lft forever
- inet 192.168.250.101/32 scope global ens160
- valid_lft forever preferred_lft forever
- inet6 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.101tomcat1 192.168.250.41[root@client ~]# curl 192.168.250.101tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.101tomcat3 192.168.250.43[root@client ~]# curl 192.168.250.102tomcat1 192.168.250.41[root@client ~]# curl 192.168.250.102tomcat2 192.168.250.42[root@client ~]# curl 192.168.250.102tomcat3 192.168.250.43
复制代码 测试乐成!!!!三主热备架构高可用搭建完成!!!
6、总结
在本次实验中,最须要留意的就是keepalived的设置文件,由于有三个捏造ip以是优先级,肯定要按序次写,一共是三组,如果逻辑头脑不强的同砚可以现在记事本中分好组再写入设置文件,以免出现keepalived设置文件堕落导致keepalived服务启动失败的错误。别的还要留意高可用的脚本,语法精确否则高可用会失败。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|