
简介
这种方案,使用两个VIP地址,前端使用2台机器,互为主备,同时有两台机器工作,当其中一台机器出现故障,两台机器的请求转移到一台机器负担,非常适合于生产架构环境。
一、网络拓扑
四台虚拟机如下所示:
为什么使用keepalived呢?
使用keepalived就用来做高可用的,提供虚拟VIP
将两台机器上的/etc/keepalived/keepalivedconf配置文件修改成如下:
Nginx-A:
Nginx-B:
然后修改两台机器上的nginx首页
chk_nginxsh脚本也不用改,然后重启keepalived
31 查看服务器上的IP地址
查看Nginx-A的地址:
查看Nginx-B的地址:
会多出两个虚拟IP
首先通过两个VIP地址访问如下:
32、关闭Nginx-A上的nginx,keepalived将在2s内将它重新启动
33、关闭Nginx-A上的keepalived,VIP会切换到Nginx-B上
不管访问的是:>
1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址requestgetRemoteAddr()
2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过requestgetRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址,
3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器。
//获得客户端真实IP地址的方法一:public String getRemortIP(>
关于LVS负载均衡
一、什么是负载均衡:
负载均衡集群提供了一种廉价、有效、透明的方法,来扩展网络设备和
服务器的负载、带宽、增加吞吐量、加强网络数据处理能力,提高网络的灵活性
和可用性。
二、搭建负载均衡服务的需求:
1)把单台计算机无法承受的大规模的并发访问或者数据流量分担到多台节点设备上
分别处理,减少用户等待响应的时间,提升用户体验。
2)单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备结束后,
将结果汇总,返回给用户,系统处理能力得到大幅度提升。
3)724的服务保证,任意一个或多个有限节点设备宕机,要求不能影响业务。
三、LVS的介绍:
LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器
集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能。
该项目是在1998年5月由章文嵩博士组织成立的,是中国国内最早出现的自由
软件项目之一。
四、关于LVS的配置使用:
LVS负载均衡调度技术是在Linux内核中实现的,因此,被称为Linux
虚拟服务器。我们使用该软件配置LVS时候,不能直接配置内核中的ipvs,
而需要使用ipvs的管理工具ipvsadm进行管理,ipvs的管理工具ipvsadm管理ipvs。
五、LVS技术点小结:
1)真正实现负载均衡的工具是ipvs,工作在linux内核层面。
2)LVS自带的ipvs管理工具是ipvsadm。
3)keepalived实现管理ipvs及对负载均衡器的高可用。
4)Red hat工具Piranha WEB管理实现调度的工具ipvs。
六、LVS体系结构与工作原理:
1)LVS集群负载均衡接收服务的所有入站客户端计算机请求,并根据调度算法决定哪个集群节点应该处理回复请求。
负载均衡(LB)有时也被称为LVS Director(简称 Director)
2)LVS虚拟服务器的体系结构如下图,一组服务器通过高速的局域网或者地理分布
的广域网相互连接,在他们的前端有一个负载调度器(Load Balancer)。负载调度器能
无缝地将网络请求调度到真正的服务器上,从而使得服务器集群的结构对客户是透明的,
客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序
不受服务器集群的影响不需做任何修改。系统的伸缩性通过在服务集群中透明地加入和删除
一个节点来达到,通过检测节点或服务进程故障和正确的重置系统达到高可用性。由于我们的负载调度技术在
linux内核中实现的,我们称之为linux虚拟服务器(Linux Virtual Server)。
七、LVS社区提供了一个命名的约定:
名称: 缩写
虚拟IP地址(Virtual IP Address) VIP
说明:VIP为Director用于向客户端计算机提供服务的ip地址,
比如:>
对于很多后端服务业务,我们都希望得到客户端资源 IP。云上的负载均衡器,比如,腾讯云 CLB 支持将客户端源IP传递到后端服务。但在使用 istio 的时候,由于 istio ingressgateway 以及 sidecar 的存在,后端服务如果需要获取客户端源 IP,特别是四层协议,情况会变得比较复杂。
很多业务场景,我们都希望得到客户端资源 IP。云上负载均衡器,比如,腾讯云 CLB支持将客户端 IP 传递到后端服务。TKE/TCM 也对该能力做了很好的集成。
但在使用 istio 的时候,由于中间链路上,istio ingressgateway 以及 sidecar 的存在,后端服务如果需要获取客户端 IP,特别是四层协议,情况会变得比较复杂。
对于应用服务商来说,它只能看到 Envoy 过来的连接。
先看看一些常见 Loadbalancer/Proxy 的源 IP 保持方法。我们的应用协议一般都是四层、或者七层协议。
七层的客户端源 IP 保持方式比较简单,最具代表性的是 >
以上就是关于Nginx+keepalived双主配置(双机双主热备)全部的内容,包括:Nginx+keepalived双主配置(双机双主热备)、Keepalived实现高可用、java如何获取用户真实的ip等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)