利用nginx实现负载均衡

    技术2023-11-10  72

    1.nginx配置

    #在upstream中常用的配置项 #down:表示当前的server不參与负载均衡。 #weight:默觉得1,weight越大,负载的权重就越大。 #max_fails :请求失败的次数默觉得1。 #fail_timeout : max_fails次失败后,暂停请求此台服务器的时间。 #backup: 其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻 # 负载均衡模块 upstream test.com { # test.com 需要与下面域名一致 server 127.0.0.1:8022 weight=1 max_fails=2 fail_timeout=30s; #本地服务器的域名和端口 server 127.25.7*.1*:8022 weight=2 max_fails=2 fail_timeout=30s; #其他服务器的域名和端口 } #监听80端口的访问 server{ listen 80; server_name test.com; # test.com 需要与下面域名一致 location / { proxy_pass http://test.com; # test.com 域名一致 } }

     

    2、测试

    刷新页面发现页面会发生变化,证明负载配置成功。因为我配的权重第二个是第一个的两倍,所以第二个出现的概率会是第一个的两倍。

     

    3、负载均衡策略

    轮询

    这种是默认的策略,把每个请求按顺序逐一分配到不同的server,如果server挂掉,能自动剔除。

    upstream test.com { server 127.0.0.1:8022; server 127.25.7*.1*:8022; } 最少连接

    把请求分配到连接数最少的server

    upstream test.com { least_conn; server 127.0.0.1:8022; server 127.25.7*.1*:8022; } 权重

    使用weight来指定server访问比率,weight默认是1。以下配置会是server2访问的比例是server1的两倍。

    upstream test.com { server 127.0.0.1:8022 weight=1; server 127.25.7*.1*:8022 weight=2; } ip_hash

    每个请求会按照访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一server进行处理,可以解决session的问题。如果server挂掉,能自动剔除。(注:ip_hash可以和weight结合使用)

    upstream test.com { ip_hash; server 127.0.0.1:8022; server 127.25.7*.1*:8022; }

     

    Processed: 0.010, SQL: 9