PHP

首页 -  PHP  -  nginx配置负载均衡

nginx配置负载均衡

nginx配置负载均衡

http {
    upstream swo_http_up {
      #配置的目标机器
      server  192.168.169.140:9001;
      #配置了重试机制大于2次就停止使用30秒
      server  192.168.169.140:9002 max_fails=2 fail_timeout=30s;
    }
    
     server {
        listen       80;
        server_name  localhost;
        location /swoole {
             proxy_next_upstream timeout;   # 192.168.169.140:9002 超时
             proxy_next_upstream_tries  2;  # 设置重试次数,默认0表示不限制,注意此重试次数指的是所有请求次数(包括第一次和之后的重试次数之和)。
             proxy_next_upstream_timeout 10; # 设置重试最大超时时间,默认0表示不限制
             proxy_read_timeout 1;          # 连接成功后,后端服务器响应时间(代理接收超时时间)
             proxy_connect_timeout 10;  # nginx连接后端的超时时间,一般不超过75s
                proxy_pass http://swo_http_up;
        }
     }
}

1.nginx支持以下负载均衡机制:

1、轮询

默认轮训方式 每一个来自网络中的请求,轮流分配给内部的服务器,从1N然后重新开始。此种负载均衡算法适合服务器组内部的服务器都具有相同的配置并且平均服务请求 相对均衡的情况。

2、加权轮询

通过 weight 参数控制权重 根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。例如:服务器A的权值被设计成1B的权值是3C的权值是 6,则服务器ABC将分别接受到10%30%、60%的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。

3、IP Hash

upstream 当中配置 ip_hash ; 这种方式通过生成请求源IP的哈希值,并通过这个哈希值来找到正确的真实服务器。这意味着对于同一主机来说他对应的服务器总是相同。使用这种方式,你不 需要保存任何源IP。 将客户端会话"沾住"或者"持久化",以便总是能选择特定服务器,那么可以使用 ip-hash 负载均衡机制。 使用 ip-hash 时,客户端IP地址作为 hash key 使用,用来决策选择服务器集群中的哪个服务器来处理这个客户端的请求。这个方法保证从同一个客户端发起的 请求总是定向到同一台服务器,除非服务器不可用。

4、最少连接数

upstream 当中配置 least_conn 实现最少连接数 客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能 会产生极大的不同,并没有达到真正的负载均衡。最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数 量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。

(0)
分享:

本文由:xiaoshu168.com 作者:xiaoshu发表,转载请注明来源!

标签:

相关阅读