lvs+keepalived+tomcat负载均衡
tomcat1:10.0.1.139
tomcat2:10.0.1.140
lvs1:10.0.1.137
lvs2:10.0.1.138
tips:nginx这里我们就不装了,主要nginx和tomcat都是web应用的一种,这里我们主要展示lvs+keepalived+tomcat负载均衡
1.安装tomcat1 、2
cd /data
tar zxvf jdk-8u161-linux-x64.tar.gz
mv jdk1.8.0_161/ jdk1.8
添加环境变量
vi /etc/profile
在末尾加入如下代码
JAVA_HOME=/data/jdk1.8
JRE_HOME=/data/jdk1.8
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
生效环境变量-检查是否安装成功
source /etc/profile
java -version
上传tamcat源码-解压源码
cd /data
rz
tar zxvf apache-tomcat-8.5.43.tar.gz
mv apache-tomcat-8.5.43 tomcat
启动tomcat
cd /data/tomcat/bin
./startup.sh
2.安装lvs1.2
yum -y install keepalived
yum -y install ipvsadm keepalived
3.配置lvs1 和 2 负载均衡
cd /etc/keepalived/
vim keepalived.conf
!! Configuration File for keepalived
global_defs {
notification_email {
746593797@qq.com
}
notification_email_from 746593797@qq.com
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id Apache_lb01
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.1.100
}
}
virtual_server 10.0.1.100 8080 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.255
persistence_timeout 0
protocol TCP
real_server 10.0.1.139 8080 {
weight 1
TCP_CHECK {
nb_get_retry 3
delay_before_retry 3
connect_timeout 5
connect_port 8080
}
}
real_server 10.0.1.140 8080 {
weight 1
TCP_CHECK {
nb_get_retry 3
delay_before_retry 3
connect_timeout 5
connect_port 8080
}
}
}
第二个lvs2
! Configuration File for keepalived
global_defs {
notification_email {
746593797@qq.com
}
notification_email_from 746593797@qq.com
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id Apache_lb01
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.1.100
}
}
virtual_server 10.0.1.100 8080 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 10.0.1.139 8080 {
weight 1
TCP_CHECK {
nb_get_retry 3
delay_before_retry 3
connect_timeout 5
connect_port 8080
}
}
real_server 10.0.1.140 8080 {
weight 1
TCP_CHECK {
nb_get_retry 3
delay_before_retry 3
connect_timeout 5
connect_port 8080
}
}
}
验证是否配置成功?
[root@lvs1 keepalived]
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.1.100:8080 rr
-> 10.0.1.139:8080 Route 1 0 0
-> 10.0.1.140:8080 Route 1 0 0
4.tomcat1和2-创建real服务器运行脚本
vim /sbin/realdr.sh
VIP=10.0.1.100
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/default/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/default/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
chmod 755 /sbin/realdr.sh
/sbin/realdr.sh start
5.测试
10.0.1.100:8080
此时访问虚拟机ip,应该是不断变化里面的内容的,如是,那就负载均衡成功
鼠标点不过来的话,按F5快速刷新
可能遇到的问题?
lvs负载均衡 虚拟ip:10.0.1.100 只显示10.0.1.139的内容,不显示10.0.1.140的内容 ?
排查:
1. 防火墙已关闭
2.端口已确认都是8080
3.也能ping通
4.二台后端服务器正常运行
5.浏览器缓存已清理
6.刷新了几十遍,就是不显示另外一台服务器的内容
7.已重启keepalived
解决:MASTER BACKUP 变量要设置大写,而且一个为主一个从
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!