Nginx-反向代理与负载均衡-后端状态(配置)

 使用负载均衡的好处

  • 当我们的web服务直接面向用户,往往要承接大量的并发请求,单台服务难以负荷。
  • 我们要使用多台web服务器组成集群,前端使用负载均衡,将请求分发到后端服务中
  • 提升整体性能,以及系统的容灾能力

配置文件【编写】

[root@nginx nginx]# vim /etc/nginx/conf.d/proxy_web.conf 
upstream node {
  server 192.168.200.121:80;
  server 192.168.200.122:80;
}

server {
  listen 80;
  server_name www.test.org;

  location / {
    proxy_pass http://node;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

调度算法

轮询

按时间顺序逐一分配到不同的后端(默认)

weight

加权轮询,weight值越大,分配的访问机率越高

ip_haship_hash

IP固定访问

least_connleast_conn

将请求传递到活动连接数量少的后端

轮询配置 -wrr【默认】

upstream web {
    server 192.168.200.121:80;
    server 192.168.200.122:80;
}
server {
    listen 80;
    server_name www.test.org;
    location / {
        proxy_pass http://web;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

weight-权重轮询

upstream web{
    server 192.168.200.121:80 weight=5;
    server 192.168.200.122:80 weight=6;
}
server {
    listen 80;
    server_name www.test.org;
    location / {
        proxy_pass http://web;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

ip_hash配置【固定IP访问后端服务器】

  • 缺点大
    • 当大量用户上网的方式是通过同一台路由器【同一家公司】,那么他们的IP都会是相同的
    • 访问服务站点时,通过IP_hash调度到相同的后端
    • 导致后端某一个节点压力瞬间增大
upstream node {
  ip_hash;
  server 192.168.200.121:80;
  server 192.168.200.122:80;
}

server {
  listen 80;
  server_name www.test.org;

  location / {
    proxy_pass http://node;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

负载均衡-后端状态

down

当前server不参与调度

backup

后端全部宕机后,启用预留的备份服务器

max_fails

允许请求失败的次数

fail_timeout

经过max_fails失败后,服务暂停时间

max_conns

限制最大的接收连接数

down【不参与调度】

upstream web {
    server 192.168.200.121:80 down;
    server 192.168.200.122:80;
}
server {
    listen 80;
    server_name www.test.org;
    location / {
        proxy_pass http://web;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

backup【备份服务】

  • 当后端服务器宕机,就会调度到backup备份服务
  • 当服务恢复后,backup停止服务,等待下一次宕机
upstream node {
  server 192.168.200.121:80 backup;
  server 192.168.200.122:80;
}

server {
  listen 80;
  server_name www.test.org;

  location / {
    proxy_pass http://node;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

max_fails和fail_timeout【允许多少秒内连接失败的次数】

upstream node {
  server 192.168.200.121:80 max_fails=3 fail_timeout=10s;
  server 192.168.200.122:80 max_fails=3 fail_timeout=10s;
}

server {
  listen 80;
  server_name www.test.org;

  location / {
    proxy_pass http://node;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

max_conns【限制server最大的连接数】

upstream node {
  server 192.168.200.121:80 max_fails=3 fail_timeout=10s max_conns=1000;
  server 192.168.200.122:80 max_fails=3 fail_timeout=10s max_conns=1000;
}

server {
  listen 80;
  server_name www.test.org;

  location / {
    proxy_pass http://node;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦有一把琐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值