欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Nginx那些事】nginx配置实例(二)负载均衡

程序员文章站 2022-03-02 22:23:08
...

【Nginx那些事】nginx配置实例(二)负载均衡

实例

请求http://8023.com,负载均衡,平均分配到8081和8083端口中

http {
    ......
    upstream myserver {
        ip_hash;
        server 192.168.227.3:8081 weight=1;
        server 192.168.227.3:8083 weight=1;
    }
    ......
    server {
        location / {
            ......
            proxy_pass http://myserver;
            proxy_connect_timeout 10;
        }
        ......
    }
}

随着互联网信息的爆炸性增长,负载均衡( load balance)已经不再是一个很陌生的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品,很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎,nginx就是其中的一个,在linux下有 Nginx、LVS、 Haproxy等等服务可以提供负载均衡服务,而且 Nginx提供了几种分配方式(策略)

1、轮询(默认)

每个请求按时间顷序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight

weight代表权重,默认为1,权重越高被分配的客户端越多

指定轮询几率, weight和访问比率成正比,用于后端服务器性能不均的情况。例如:

upstream myserver {
    server 192.168.227.3:8081;
    server 192.168.227.3:8083;
}

3、ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决 session的问题。例如:

upstream myserver {
    ip_hash;
    server 192.168.227.3:8081;
    server 192.168.227.3:8083;
}

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配

upstream myserver {
    server 192.168.227.3:8081;
    server 192.168.227.3:8083;
    fair;
}