lvs原理参照:https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665
https://blog.csdn.net/lupengfei1009/article/details/86514445
DR模式下搭建demo
demo软件版本(不知道怎么传安装包的)
CentOS 7 x64
java version “1.8.0_171”
apache-tomcat-8.0.52.tar.gz
keepalived-2.0.20.tar.gz
nginx-1.8.0.tar.gz
服务器介绍
vip(虚拟ip,请求地址):192.168.6.135
keepalived 主机 :192.168.6.137
keepalived 备份 :192.168.6.138
RS服务1 :192.168.6.138
RS服务2 :192.168.6.137
搭建keepalived 主机
-
将压缩包放在 /usr/myinstall 下解压
tar -zxvf keepalived-2.0.20.tar.gz -
编译安装
进入解压后目录 /usr/myinstall/keepalived-2.0.20,执行检查和编译安装
cd /usr/myinstall/keepalived-2.0.20
./configure
make && make install
3.文件拷贝到相应的根目录下的对应文件夹
原因:keepalived 会自行在默认的文件夹中寻找所需文件
keepalived.conf文件拷贝
不存在/etc/keepalived就新建(mkdir /etc/keepalived)
cp/usr/myinstall/keepalived-2.0.20/keepalived/etc/keepalivedkeepalived.conf /etc/keepalived
sysconfig/keepalived 拷贝
cp /usr/myinstall/keepalived-2.0.20/keepalived/etc/sysconfig/keepalived /etc/sysconfig
keepalived加入系统命令
cp /usr/local/sbin/keepalived /usr/sbin/
4.根据实际情况修改 /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs { #### 邮件通知可以不配置
notification_email {
#邮箱
}
notification_email_from sns-lvs@gmail.com
smtp_server 192.168.80.1
smtp_connection_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER # MASTER 表明为主机;BACKUP为备份 都必须大写
interface ens33 #网卡id 根据实际情况填写(例如:eth0、ens33)
virtual_router_id 51 #虚拟路由编号,主备要一致
priority 100 #优先级 主>备
advert_int 1
authentication { #主备一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #vip 请求ip 可多个,每行一个
192.168.6.135
#192.168.6.134
}
}
virtual_server 192.168.6.135 80{ #请求地址 vip:port
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
real_server 192.168.6.138 80{ #RS地址
weight 1 #轮询权重
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
virtual_server 192.168.6.135 80{
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
real_server 192.168.6.137 80{
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
5.启动keepalived服务
systemctl start keepalived.service
然后查看启动状态,如图表示启动成功
systemctl status keepalived.service
启动后,想要看配置是否生效,可用 ip a 就可看到我们配置的虚拟ip信息 vip
RS_1服务器配置、搭建
将虚拟ip写入并授权
vi lvs_rs.sh
#!/bin/bash
vip=192.168.6.135 #vip 根据实际情况
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
echo “1” >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo “2” >/proc/sys/net/ipv4/conf/lo/arp_announce
echo “1” >/proc/sys/net/ipv4/conf/all/arp_ignore
echo “2” >/proc/sys/net/ipv4/conf/all/arp_announce
chmod 777 lvs_rs.sh 并执行
安装 nginx 和 tomcat (demo中用到了tomcat)略
简单配置nginx 映射 和 tomcat 页面修改,便于测试
server {
listen 80; #监听80端口 (与 keepalived.cnf 中 real_server 端口一致)
server_name localhost;
charset utf8;
client_max_body_size 100M;
client_body_buffer_size 10M;
client_header_buffer_size 1M;
large_client_header_buffers 4 32K;
#禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
server_tokens off;
location / {
proxy_pass http://192.168.6.138:8080; #转到tomcat
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
tomcat 页面修改一下便于观察即可
启动nginx和Tomcat
keepalived备用机搭建
与主机一致,拷贝master /etc/keepalived/keepalived.cnf 并注意修改
state MASTER --》 state BACKUP
priority 100 --》priority 50
RS_2服务器配置、搭建
与RS_1一致,注意nginx 转发地址和tomcat 页面内容修改
测试
1、 依次启动keepalived 主节点、备用节点 (主节点先于备用节点)
systemctl start keepalived.service
然后查看启动状态
systemctl status keepalived.service
2、启动RS_1和RS_2服务上的 nginx 和 tomcat
3、调用服务
通过暴露的vip:port 访问(keepalived.conf中配置 192.168.6.135 80)
4、不断请求刷新,会看到访问的内容在RS_1和RS_2上轮询
5、关闭keepalived主节点,测试备用节点是否生效
在keepalived主节点上执行命令
systemctl stop keepalived.service
关闭主节点,继续请求,结果没影响,说明备用节点生效
6、关闭RS_1服务器上的nginx,请求发现服务全落在 RS_2服务上
注意事项
1、 CentOS 7 虚拟机上不要使用yum安装keepalived,版本过低,会导致一下错误
Keepalived_healthcheckers[1504]: TCP socket bind failed.
2、 安装过程中可能需要一些软件环境,根据提示安装即可
3、 牢记keepalived.conf中一下配置说明
vrrp_instance VI_1 {
state MASTER # MASTER 表明为主机;BACKUP为备份 都必须大写
interface ens33 #网卡id 根据实际情况填写(例如:eth0、ens33)
virtual_router_id 51 #虚拟路由编号,主备要一致
priority 100 #优先级 主>备
advert_int 1
authentication { #主备一致
auth_type PASS
auth_pass 1111
}
4、注意各个配置中ip对应关系