Keepalived+LVS+Nginx负载均衡之高可用
来源:互联网 发布:java调用groovy脚本 编辑:程序博客网 时间:2024/05/16 10:14
一、Keepalived介绍
Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Server)使用,其功能类似于heartbeat,解决单机宕机的问题。
二、Keepalived技术原理
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。通过VRRP协议结合LVS,对组群服务器监控情况,若master出现宕机情况,则将VIP漂移到backup机上。实现了分布式系统高可用。可以理解为:keepalived是LVS的管理软件,根据监控情况,将宕机服务器从ipvsadm移除掉。
三、Keepalived+LVS+Nginx实现系统高可用
1、安装ipvsadm,CentOS7自带安装包,通过yum进行安装。实现系统支持LVS
yum install ipvsadm
2、安装Keepalived软件,并将keepalived设置开机启动
yum install Keepalived
systemctl enable keepalived
3、进行Keepalived.conf配置,如果是MASTER机,将state BACKUP改为state MASTER。
vim /etc/keepalived/keepalived.conf
#配置的内容
! Configuration File
for
keepalived
global_defs {
notification_email {
xxx@126.com #收到通知的邮件地址
}
notification_email_from XX@126.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script monitor_nginx{
script
"/usr/local/etc/keepalived/script/monitor_nginx.sh"
interval 1
weight -15
}
vrrp_instance VI_1 {
state BACKUP
interface
eno16777736
virtual_router_id 51
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.120
}
track_script {
monitor_nginx
}
}
virtual_server 192.168.1.120 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.1.103 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.104 80 {
weight 5
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
4、配置监控shell脚本
(1)创建:vim /usr/local/etc/keepalived/script/monitor_nginx.sh<br><br>(2)SHELL文件内容<br>#!/bin/bash
if
[
"$(ps -ef | grep "
nginx: master process
"| grep -v grep )"
==
""
]
then
systemclt start nginx.service
sleep 5
if
[
"$(ps -ef | grep "
nginx: master process
"| grep -v grep )"
==
""
]
then
killall keepalived
fi
fi
现在我们对nginx进行配置:
安装Nginx和配置
1、Nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的工程师Igor Sysoev研发,供俄国大型的入口网站Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
2、安装部署
在CentOS7通过命令行安装Nginx服务器。
(1)添加Nginx仓储,添加 epel repository
sudo yum install epel-release
(2)检查是否已安装过nginx
find -name nginx
(3)如果有安装则删除
yum remove nginx
(4)安装nginx
sudo yum install nginx
(5)启动nginx
sudo systemctl start nginxsudo systemctl enable nginx #可用
(6)将nginx 设置为启动系统自动启动nginx
echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
(7)查看本机IP,为了后续配置nginx.conf所用
ifconfig
(8)修改nginx.conf配置文件
cd /etc/nginx/ #定位到nginx安装目录vim nginx.conf #通过vim打开nginx.conf配置文件进行配置
(9)主要配置节点,192.168.119.1:8081 和 192.168.119.1:8082 分别部署在 IIS7的两个ASP.NET MVC 开发的站点(在另一台电脑),设计软件架构解决方案后续介绍。
upstream 192.168.119.128{ server 192.168.119.1:8081; server 192.168.119.1:8082;}server{ listen 80; server_name 192.168.119.128; location /{ proxy_pass http://192.168.119.128; } }
(10)重启nginx服务
service nginx restart
如下对功能进行验证测试。
四、实现测试展示
1、访问系统情况:通过VIP(192.168.1.120)访问系统页面。因为设置了轮询调度,所以刷新页面访问不同站点。
2、将 MASTER(192.168.1.104)关机前后,查看相关VLS情况:
(1)关机前:
(2)关机后:
我们看到将104服务器从 LVS移除掉。此时则将后续请求转发到103服务器。
3、关机后,BACKUP服务器 keepalived日志显示无法连接104,并移除掉
5、开机后,将自动检测到服务器正常,并加入LVS中。
- nginx+keepalived+lvs负载均衡之高可用
- Keepalived+LVS+Nginx负载均衡之高可用
- nginx+keepalived负载均衡之高可用
- LVS+Keepalived+Squid+Nginx高可用负载均衡缓存配置
- Net分布式系统之三:Keepalived+LVS+Nginx负载均衡之高可用
- 企业级WEB的负载均衡高可用之LVS+Keepalived
- 企业级WEB的负载均衡高可用之LVS+Keepalived
- LVS + Keepalived 实现高可用负载均衡
- LVS+Keepalived构建高可用负载均衡
- LVS+Keepalived实现高可用负载均衡
- LVS+Keepalived实现高可用负载均衡
- LVS+Keepalived实现高可用负载均衡
- lvs+keepalived高可用负载均衡
- keepalived + lvs(DR) 高可用负载均衡
- LVS+Keepalived实现高可用负载均衡
- Lvs+keepalived实现高可用负载均衡
- Web负载均衡高可用之Nginx+Keepalived
- Nginx负载均衡高可用之keepalived安装
- linux下利用inode(i节点号)删除指定文件
- 将数组元素顺序颠倒
- Python 窗体(tkinter)按钮 位置
- 小圆点的实现
- Java生成图片验证码
- Keepalived+LVS+Nginx负载均衡之高可用
- elk日志分析
- Ubuntu16.04 php5安装失败解决方案
- dedecms 自定义标签/自定义函数
- 方差(variance)、标准差(Standard Deviation)、均方差、均方根值(RMS)、均方误差(MSE)、均方根误差(RMSE)
- Walk
- 25个常用的Linux iptables规则
- 悲催。。。。
- JVM内存配置参数