美文网首页
Nginx负载均衡配置

Nginx负载均衡配置

作者: 瓢鳍小虾虎 | 来源:发表于2021-01-18 20:52 被阅读0次

基于轮询(Round Robin)的负载均衡配置

  1. Nginx的负载均衡策略默认就是轮询。

  2. Nginx负载均衡策略支持http和https,只需要修好proxy_pass后的协议即可。

  3. Nginx支持FastCGI、uwsgi、SCGI、memcached的负载均衡,只需要把proxy_pass改为fastcgi_pass、uwsgi_pass、scgi_pass、memchached_pass即可。

  4. 适合场景:服务性能差不多,无状态、短平快的应用。

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
  use epoll;
  worker_connections 65535;
}

http{
  upstream netease.com {
    server 127.0.0.1:8881;
    server 127.0.0.1:8882;
    server 127.0.0.1 8883;
  }

  server {
    listen 80;
    server_name netease.com;
    
    location / {
      proxy_pass http://netease.com;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}

基于哈希(ip_hash)的负载均衡配置

  1. 使用 ip_hash 指令开启哈希负载均衡策略。

  2. nginx使用客户端访问的ip地址进行哈希计算,来确保同一服务端访问客户的请求。

  3. 此策略适合有状态的服务(session)。

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
  use epoll;
  worker_connections 65535;
}

http{
  upstream netease.com {
    ip_hash;
    server 127.0.0.1:8881;
    server 127.0.0.1:8882;
    server 127.0.0.1 8883;
  }

  server {
    listen 80;
    server_name netease.com;
    
    location / {
      proxy_pass http://netease.com;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}

基于最少连接(least_conn)的负载均衡配置

此配置适合客户请求长短不一的情况(有的服务处理的慢,相对长时间占用请求线程导致负载变高)

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
  use epoll;
  worker_connections 65535;
}

http{
  upstream netease.com {
    least_conn;
    server 127.0.0.1:8881;
    server 127.0.0.1:8882;
    server 127.0.0.1 8883;
  }

  server {
    listen 80;
    server_name netease.com;
    
    location / {
      proxy_pass http://netease.com;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}

基于权重的负载均衡配置

此策略适合服务器配置差别较大的情况。

权重越高分配的请求越多。

此策略可以与最少连接负载和ip哈希策略结合使用。

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
  use epoll;
  worker_connections 65535;
}

http{
  upstream netease.com {
    least_conn;
    server 127.0.0.1:8881; weight=3;
    server 127.0.0.1:8882; weight=2;
    server 127.0.0.1 8883; weight=1;
  }

  server {
    listen 80;
    server_name netease.com;
    
    location / {
      proxy_pass http://netease.com;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}

相关文章

网友评论

      本文标题:Nginx负载均衡配置

      本文链接:https://www.haomeiwen.com/subject/uczxzktx.html