Nginx-进阶学习

目录:
  • Nginx集群和负载均衡
一、Nginx集群和负载均衡

1、集群

#Nginx通过upstream配置上游服务器来实现集群,zyh要对应起来
upstream zyh {
  server 192.168.1.172:80;
  server 192.168.1.173:80;      
}
server {
        listen       80;
        server_name  www.zyh.com;

        location / {
            proxy_pass http://zyh;
        }
}

2、负载均衡-权重
(1)负载均衡-轮训:Nginx默认的负载均衡的策略,和RabbitMQ的消费者策略一样,每台服务器的权重一样,平均分配任务。
(2)负载均衡-加权轮训:

#默认weight都为1,根据服务器配置设置权重,理论上如果有6条数据,这样设置的话,173会有1条数据,175会有5条
upstream zyh {
  server 192.168.1.173:80 weight=1; 
  server 192.168.1.175:80 weight=5;     
}

3、upstream的常用指令
(1)max_conns:设置最大连接数

#设置每台服务器的最大连接数,173的最大连接数为2,只有这两个连接释放掉,才能处理新的链接
upstream zyh {
  server 192.168.1.173:80 max_conns=2; 
  server 192.168.1.175:80 max_conns=5;     
}

(2)down:服务器下线,就这台服务器访问不了,如果服务器暂时不使用,最好不好删除掉,可以使用这个命令。

#如果采用了ip_hash,那么服务器不使用的话,一定要用down,否则ip_hash会变动,session会失效
upstream zyh {
  server 192.168.1.173:80; 
  server 192.168.1.175:80 down;     
}

(3)backup:备用机,只有正常使用的设备宕机了,这台服务器才会被启动

#173的服务宕机了,175服务器才会被请求到
upstream zyh {
  server 192.168.1.173:80; 
  server 192.168.1.175:80 backup;     
}

(4)max_fails:服务器最大失败次数,达到这个次数就算服务器宕机

#175失败次数到达5次,175这台服务器服务就请求不到了
upstream zyh {
  server 192.168.1.173:80; 
  server 192.168.1.175:80 max_fails=5;     
}

(5)ip_hash:根据请求的ip地址hash值,决定访问哪台服务器的服务,这样可以保持session一致性,hash(ip) % node_counts = index

#主要问题是根据服务器数量得出的index,服务器数量一旦变化,index值都会变化,所以不使用的服务器不能删除,要用down
upstream zyh {
  ip_hash;

  server 192.168.1.173:80; 
  server 192.168.1.175:80;     
}

(6)hash key:一致性hash,client和server分布的环形的圆上,client顺时针就近选择server,这样当服务器宕机和扩容的时候,影响的client和server会比较少。

你可能感兴趣的:(Nginx-进阶学习)