前言:负载均衡早已不是什么新鲜玩意儿,但是还有很多萌新们对这个词还停留在听过的阶段,对其中的实现还是懵懵懂懂的阶段,通过这些个系列文章,希望大家可以对负载均衡有更多的了解。
什么是负载均衡
开始讲Nginx实现之前,先跟大家讲讲什么是负载均衡。顾名思义,负载均衡是指将用户请求对服务器的压力尽量平均的分配到多个服务器上,从而平摊每台服务器的运算压力,提升请求的平均响应效率。考虑到服务器性能上限以及服务器各种自身硬件或者网络攻击等安全问题,越来越多的系统会部署在多台服务器(亦或是服务器节点)上,然后通过一种算法来实现用户的请求分别去各个服务器上请求。现在实现负载均衡的手段有很多,不同的方式实现的原理也都有所区别,其中最常见到的实现手段有Nginx反向代理、zookeeper和nacos等服务注册中心、DNS轮询等等。下面开始给大家讲讲Nginx在负载均衡的实现。
Nginx实现负载均衡(http层面,请求还没到服务器就根据配置将请求发到某台服务器上)
在web应用端的Nginx配置文件(Linux系统中是nginx.conf文件,可以通过include配置引入其他文件,下面的配置也可以写到引入的其他配置文件里)中,使用upstream模块(配置反向代理服务器组,后面跟服务器组的名称)来配置均衡策略,共五种
1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.