记录一下Nginx负载均衡+keepalived实现高可用的实现方式
一下我以两步来讲解:
第一步,当然是Nginx的负载均衡:
图就不画了,相信大家都懂,网上随便找一张,下图主要说的就是nginx的作用,实现负载均衡。
第二步,就是Keepalived实现高可用:
同样,图我就随便找了一张,画的丑了些但原理是对的哈,下图主要说的就是服务高可用。
目的讲解:
我们有一个web项目,Test
那我们平时要部署这个项目,无非就是通过 Tomcat 部署起来,部署到192.168.1.101 上,然后访问。
现在我们要通过代理的方式那就用到Nginx,比如说,浏览器访问192.168.1.100,其实前端 转发到了 192.168.1.101:8080/test 。
再然后我们一台服务器192.168.1.101上的服务需求过大,请求量高,那我们就再加一台,192.168.1.102 这样子,我们就可以实现负载均衡。
那么问题又来了,如果服务器192.168.1.100 挂了怎么办,再加一台。
所以我们在99上面再加一个Nginx,它也具有负载均衡的效果,可还是解决不了100挂了无法访问的问题,因为用户访问的是100呀,他不知道99也可以访问。
那么我们就加上keepalived 实现高可用,对外提供一个vip(虚拟ip)192.168.1.88,这样子就完美解决了,其中一个服务挂了访问使用的情况。
搞起来
我们就以简单的,没有那么多的机器,我们就以两台机器作为案例,环境要求:
ip | 环境 |
---|---|
192.168.1.101 | nginx、keepalive、web项目 |
192.168.1.102 | nginx、keepalive、web项目 |
打开101 Nginx配置文件
vim /usr/local/nginx/cong/nginx.conf
# 反向代理配置
http{
...省略
upstream server{
server 192.168.1.101:8080;
server 192.168.1.102:8080;
}
...省略
location / {
...省略
proxy_pass http://server/test; #注意这里server需要和上面 upstream server对应
...省略
}
}
102 Nginx配置如上
至此Nginx负载均衡配置完毕,我主要讲原理,具体配置可以详细资料就可以了。
101 安装Keepalive
命令:
yum install keepalived –y
vim /etc/keepalived/keepalived.conf
...省略
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #每隔一秒发送一次心跳,确保从服务器是否还活着
authentication { # 心跳检测需要的密码
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.88 # VRRP H 虚拟地址
}
}
102 安装同上
最后访问192.168.1.88 即可大功告成!
注意:特别提示,如果访问不了vip,记得查看 Keepalive配置 ,删除 vrrp_strict