lvs+keepalived+nginx 学习笔记

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 主机

  1. 将压缩包放在 /usr/myinstall 下解压
    tar -zxvf keepalived-2.0.20.tar.gz

  2. 编译安装
    进入解压后目录 /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对应关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值