Linux nginx 负载的几种方式
阅读原文时间:2023年07月08日阅读:2

2021-08-19
1. 轮询 (这是默认的方式)
就是在 nginx 映射的几个服务器按请求的时间顺序逐一分配,几率是随机的。如果后端服务器 down 掉,能自动忽略不用。这种情况一般是每台服务器配置差不多。
配置方式

# 映射 tomcat 服务地址
upstream nginxDemo
{
server 192.168.1.104:8080;
server 192.168.1.104:8081;
server 192.168.1.104:8082;
}

server {  
    listen       80;  
    server\_name  localhost;

    #charset koi8-r;

    #access\_log  logs/host.access.log  main;

    location / {  
        root   html;  
        index  index.html index.htm;  
        # 添加上这行  
        proxy\_pass http://nginxDemo;  
    }

2. 权重
给每个服务设置权重,总权重为10,nginx 按权重访问,weight 越大访问到的几率越大。用于后端服务器性能不均的情况。
配置方式

 upstream nginxDemo  
 {  
    server 192.168.1.104:8080 weight=6;  
    server 192.168.1.104:8081 weight=3;  
    server 192.168.1.104:8082 weight=1;  
 }

3. 主备
在备用服务后面加上 backup,只要其他服务能用,这个服务就不会开启
配置方式

 upstream nginxDemo  
 {  
    server 192.168.1.104:8080 weight=7;  
    server 192.168.1.104:8081 weight=3;  
    server 192.168.1.104:8082 backup;  
 }

down 表示单前的 server 暂时不参与负载
weight 默认为 1 ,weight 越大,负载的权重就越大
max_fails 允许请求失败的次数默认为 1 ,当超过最大次数时,返回 proxy_next_upstream 模块定义的错误
fail_timeout 在 max_fails 次失败后,暂停的时间
backup 其它所有的非 backup 机器 down 或者忙的时候,请求 backup 机器,所以这台机器压力会最轻