nginx负载均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx负载均衡相关的知识,希望对你有一定的参考价值。

参考技术A nginx的负载均衡策略有4种,轮询、权重、IP地址哈希、最少连接策略。

示例用nginx默认的负载均衡策略,即轮询策略,本机服务器地址是127.0.0.1,域名localhost指向该地址,访问 http://localhost/api/info 三次,轮询转发请求到 http://127.0.0.1:8080/api/info 、 http://127.0.0.1:8081/api/info 、 http://127.0.0.1:8082/api/info ,接口返回此次调用的服务器端口信息8080、8081、8082。
如图所示:

如图所示,访问三次 http://localhost/api/info ,依次返回8080、8081、8082:

一般而言,linux上安装nginx,配置文件默认路径是在etc/nginx/nginx.conf,当然也可以通过ps -ef|grep nginx来查看启动的nginx是用哪个路径下的配置文件。
编辑好配置文件之后,需要用nginx -t查看此次配置文件有没有出错,没错的话再重新加载配置文件即可,用nginx -s reload命令。

nginx+keepalive实现负载均衡高可用

参考技术A       在实际生产环境中负载均衡是一个至关重要的位置,负载均衡关乎着整个网站访问的命脉,所以运维人员对于它的处理机制和高可用的重视非常高,负载均衡存在单点故障无疑是对整个网站埋下了定时炸弹,nginx +keeplive实现负载高可用,保障业务持续提供服务避免负载均衡的单点故障。

角色                IP地址                主机名

负载01            10.0.0.2               LB01

负载02            10.0.0.3               LB02

虚拟服务         10.0.0.4                       

      两台nginx负载均衡+keepalive实现负载高可用两台LB的IP地址分别为:10.0.0.2、10.0.0.3 keepalive的vip为:10.0.0.4,当10.0.0.2正常在vip工作在10.0.0.2,10.0.0.3服务出现宕机则vip自动跳转到10.0.0.3的LB

    我们可以看见两台LB中的负载配置相同,server name为vip,当请求到达vip所在的LB服务器则会代理到对应的node池进行负载均衡,通过keepalive的vip漂移为我们的服务提供高可用,保障网站7*24提供服务

         通过演示视频我们模拟LB01宕机,发现vip漂移至第二台LB并且这个切换对于用户是无感知的,今天nginx+keepalive的测试就到这里谢谢!

主备服务器因为硬件或者软件问题(网线松动或者nginx进程)造成keepalived服务无法检测到心跳信息,nginx服务down掉keepalive还在正常运行没有进行主备切换等等都会造成高可用没有达到理想的效果我们可以通过主备机脚本来规避这些因素造成keepalive无法正常主备切换

    主机能不通,VIP在备机则认为非正常主备切换可能主机状态正常vip在主备机都存在

判断主机nginx服务是否正常,如果nginx服务down掉尝试启动,如果nginx尝试启动未成功则停掉主机keepalive服务切换至备机保证业务正常运行  

通过以上两个脚本检测,我们能够做到规避主备之间心跳检测不正常,但是主备机服务正常会存在主备之间都会有VIP导致负载脑裂的问题以及负载服务down掉,keepalive服务正常导致业务中断问题。

以上是关于nginx负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx---负载均衡和缓存

nginx负载均衡

使用Nginx配置TCP负载均衡

Nginx实现负载均衡

Nginx——nginx作为负载均衡服务(负载均衡与nginx)

nginx+keepalive实现负载均衡高可用