Nginx配置负载均衡

1、基础概览

Nginx支持多种负载均衡算法,你可以在配置文件中选择适合你需求的算法。下面是一些常见的负载均衡算法以及如何在Nginx中进行配置:

1、轮询(Round Robin):

  • 这是默认的负载均衡算法,Nginx按照每个后端服务器的顺序逐个分配请求。
  • 配置示例:
upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

轮询实例

当访问该nginx代理的前端服务时,会轮询分配到 backend 中的后端服务

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    # 定义一个 upstream 块,用于负载均衡
    upstream backend {
        server localhost:8080;       # 原有的服务器
        server 10.11.80.33:8081;     # 新增的服务器
    }

    
    server {
        listen       9528;
        server_name  localhost;

        location / {
            root   /home/web/dist;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
            error_page 405 =200 $request_uri;
        }

        location /prod/{
                client_max_body_size 2G;
                proxy_read_timeout 600;
                proxy_send_timeout 600;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header REMOTE-HOST $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://backend/;    # 使用负载均衡的 upstream
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2、IP哈希(IP Hash):

修改为其他均衡方法,只需要backend 里面增加说明即可

  • 根据客户端的IP地址,将同一客户端的请求发送到同一台后端服务器。
  • 配置示例:
upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

3、最小连接数(Least Connections):

  • 将请求发送到当前连接数最少的后端服务器。
  • 配置示例:
upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

4、权重轮询(Weighted Round Robin):

  • 分配权重给不同的后端服务器,根据权重比例分配请求。
  • 配置示例:
upstream backend {
    server backend1.example.com weight=3;
    server backend2.example.com weight=2;
    server backend3.example.com weight=1;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

5、最快响应时间(Least Time):

  • 将请求发送到具有最快响应时间的后端服务器。
  • 配置示例:
upstream backend {
    least_time header;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

修改完配置,记得重启

2、Nginx重启

Nginx停止

ps -ef|grep nginx
kill -quit XXXX

Nginx启动

nginx -c /etc/nginx/nginx.conf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值