如何用Nginx+Keepalived实现高可用的反向代理+负载均衡

本文介绍了如何使用Nginx和Keepalived配置高可用的反向代理和负载均衡。通过添加虚拟IP,设置负载均衡的Tomcat服务器,并详细讲述了在节点间切换VIP的步骤,确保服务的不间断。同时,还演示了在主从Nginx+Keepalived服务中进行故障测试,验证了系统在主节点宕机时能够自动切换到备份节点。
摘要由CSDN通过智能技术生成

keealived服务工作在3层(IP)、4层(TCP)、5(应用层)
nginx通过Virtual IP对外提供www服务,能通过算法实现后端web服务的负载均衡
下列操作徐预先安装tengine,或者nginx。

【第一部分】配置一个虚拟IP地址,只向外界暴露这个VIP

以node1(192.168.100.151)为例说明操作步骤。

【第一步】
添加http子模块upstream,设置多个负载tomcat server(ip尾号152、153、154)
[root@node1 conf]# grep -v “#” nginx.conf
worker_processes 2;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 1;

upstream howareyou {   # 3台tomcat服务器
  server 192.168.100.152:8080;
  server 192.168.100.153:8080;
  server 192.168.100.154:8080;
}

server {
    listen       8000;
    location /howareyou {
      proxy_pass http://howareyou/;
    }
    location / {
        root   html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

}

【第二步】在现有网卡上添加一个虚拟IP地址
[root@node1 ~]# ifconfig eth0:1 192.168.100.200 netmask 255.255.255.0 up
[root@node1 ~]# ifconfig -a | grep --color -A 3 “eth0:1”
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:35:A8:FD
inet addr:192.168.100.200 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

分别指定3台tomcat服务器限定返回给web客户端的内容——
[root@node2 ROOT]# pwd
/opt/apache-tomcat-8.0.53/webapps/ROOT
[root@node2 ROOT]# grep -vE “#|^\n” index.jsp
from node2Session=<%=session.getId()%>

[root@node3 ~]# cd /opt/apache-tomcat-8.0.53/webapps/ROOT
[root@node3 ROOT]# cat index.jsp
from node3Session=<%=session.getId()%>

[root@node4 ~]# cd /opt/apache-tomcat-8.0.53/webapps/ROOT/
[root@node4 ROOT]# cat index.jsp
from node4Session=<%=session.getId()%>

【第三步】
访问虚拟IP的URL:http://192.168.100.200:8000/howareyou
结果:
首次:
from node4
Session=0248C9E8C73DA87237EFA89974430ECB
刷新:
from node2
Session=AEA89EF695781E1829517EEAFAC93A10
再刷新:
from node3
Session=42F8D3CD8C20B246E382D6F5A2B04B72
在这里插入图片描述可以看出:三台tomcat web服务器的权重相同时,每次http请求由nginx均衡地调度到3台后端tomcat web服务器,http客户端无需关注实际是哪一台tomcat提供web服务,只需访问VIP+port+URI 即可。

【第四步】把node1上的VIP换到node4上去
[root@node1 ~]# ifconfig eth0:1 down
[root@node1 ~]# ifconfig -a | grep --color -A 3 “eth0”
eth0 Link encap:Ethernet HWaddr 00:0C:29:35:A8:FD
inet addr:192.168.100.151 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe35:a8fd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

[root@node4 ROOT]# ifconfig eth1:192.168.100.200 netmask 255.255.255.0 up

【第五步】关闭node1的nginx服务,同时在node4启动nginx服务
node4的nginx.conf与node1的一致

【第六步】访问URL http://192.168.100.200:8000/howareyou
效果和上面的第三步一样

【第二部分】配置高可用 Nginx+keepalived服务

【第1步】角色规划
node1:state=MASTER、priority=100
node4:state=BACKUP、priority=50

【第2步】ndoe1、node4分别安装keepalived
[root@node4 keepalived]# cat /etc/yum.repos.d/CentOS-Base.repo | grep -v “#”

[base]
name=CentOS- r e l e a

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值