nginx+keepalived集群化高可用
环境准备
centos7 四台,关闭防火墙,关闭selinux
- No-1 防止单点故障和nginx负载均衡
192.168.112.153
192.168.112.154 - No-2 httpd模拟web网页
192.168.112.160
192.168.112.161
- 原理效果图
描述:高可用的两台,要分为master和backup,并定义VIP,配置完nginx负载均衡后,keepalived配置RS端为本机和另一台keepalived的ip地址,都存活时,不管访问VIP还是master和backup,都能访问到,当发生单点故障时(master或者backup一端故障时)VIP飘逸,实现用不断流!
No-1 安装服务
yum -y install gcc gcc-c++ pcre-devel zlib-devel keepalived
-
上传nginx包
-
也可到官方下载最新nginx包
安装配置nginx,实现负载均衡
tar xf nginx-1.18.0.tar.gz 解压
cd nginx-1.18.0 进入目录
./configure 检测编译环境
make && make install 编译并安装
修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
- 34~37行定义负载的后端服务器【server外】
- 49行添加proxy【server内】
配置No-2
- 安装httpd
yum -y install httpd
- 写测试页面
vim /var/www/html/index.html
内容web1,另一台不一样即可,web2
- 启动httpd,验证端口
No-1启动nginx,验证负载
/usr/local/nginx/sbin/nginx
No-1配置keepalived
vim /etc/keepalived/keepalived.conf
- 删除多余保留一行
- 8行定义master
- 9行修改网卡为ens33
- 11行为权重【backup权重要小于master】
- 18行定义VIP,要求本网段未被占用的ip
master和backup就这个配置不一样,其他都一致!!!
- 22行填写VIP,修改端口为80
- 24行为算法
- 26行注释掉持久性超时时间 【符号为!】
- 29行RS端的ip和端口
- 31行修改为tcp的检查
- 32行删除多余的,下一行添加连接端口
启动服务,验证高可用
systemctl start keepalived
- 查看VIP
ip a show ens33
- 验证效果图,master主的VIP
- 都存活状态,master,bakcup和VIP都可访问实现负载
模拟单点故障
- 停掉master端,查看VIP飘逸
systemctl stop keepalived
- backup端查验
- 网页测试效果图
- master端虽已停用,但仍可实现负载,VIP发生飘逸