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

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

被折叠的 条评论
为什么被折叠?



