Nginx系列(5) —— 负载均衡的配置

2020-11-25 15:07:13 浏览数 (1)

Nginx 配置 —— 负载均衡

负载均衡的相关理念

以前的传统网站,其并没有太大的访问量,且其处理的相关业务逻辑也较为简单,因此一台服务器便可以胜任。但是随着访问量逐渐增大,一台服务显然难以支撑,因此我们需要多台服务器来避面某一服务器突然出现宕机的现象。

但是虽然有了多台服务器,我们也需要保证这些请求能被较为均衡的发送到各个服务器上。

在 Nginx 之前采用的是 DNS 进行相关负载均衡的转发。但是 DNS 是将解析的域名直接发送给客户机,使得用户的请求可以直接到达目的服务器。但是由于各级节点的缓存原因,在 DNS 对负载均衡策略做出调整后,不能使其在各个客户端生效。

负载均衡相关配置

Nginx 提供了四种负载均衡的策略

  • 轮询(默认情况):请求将会依次转发到各个服务器上
  • 权重配置:weight 代表权重,默认为1,权重越高被分配的客户越多。
  • ip_hash:每个请求的按访问ip 的hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决session 问题
  • fair:按照后端服务器响应时间来分配请求,响应时间短的优先分配

轮询情况下的负载均衡配置

其中 upstream中 是需要被负载均衡的服务器集群

代码语言:javascript复制
http {
    upstream myserver { 
        server 115.28.52.63:8080;
        server 115.28.52.63:8081;
    }
    
    server {
        listen 80:
        server_name 115.28.52.63;
    
    
        location / {
            proxy_pass http://myserver;
            # proxy 的属性和配置的upstream名称一样
            proxy_connect_timeout: 10;
        }
    }
}

设置权重的负载均衡的配置

代码语言:javascript复制
upstream myserver {
    server  192.168.0.3:8080 weight=1;
    server  192.168.0.3:8081 weight=2;
}

ip_hash 负载均衡的配置

代码语言:javascript复制
upstream myserver {
    ip_hash;
    server  192.168.0.3:8080;
    server  192.168.0.3:8081;
}

fair 负载均衡的策略配置

代码语言:javascript复制
upstream myserver {
    server  192.168.0.3:8080;
    server  192.168.0.3:8081;
    fair;
}

0 人点赞