nginx负载均衡

1 nginx的负载均衡是由upstream模块提供的

http {

    # ... 省略其它配置

    upstream tomcats {
        server 192.168.0.100:8080;
        server 192.168.0.101:8080;
        server example.com:8080;
    }

    server {
        listen 80;

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

    # ... 省略其它配置
}

proxy_pass http://tomcats:表示将所有请求转发到tomcats服务器组中配置的某一台服务器上。

2 nginx请求分配的五种方式

2.1 轮询

每个请求按照时间顺序逐一分配给后端服务器。

up_stream backend {

    server 192.168.1.10;

    server 192.168.1.11;

}

2.2 指定权重

up_stream backend {

    server 192.168.1.10 weight=1;

    server 192.168.1.11 weight=2;

}

权重越大,分配的请求就越频繁。

2.3 ip_hash

按照ip hash的结果分配,每个请求固定一个后端服务器。解决session不能跨服务器的问题。

up_stream backend {

    ip_hash;

    server 192.168.1.10;

    server 192.168.1.11;

}

2.4 fair

按照请求的响应时间来分配。

up_stream backend {

    fair;

    server 192.168.1.10;

    server 192.168.1.11;

}

2.5 url_hash

按照url的hash来指定后端服务器,同一个url对应一个后端服务器,如果后端是缓存服务器,将很有效。

upstream tomcats {
    server 192.168.0.100:8080;
    server 192.168.0.101:8080;
    server 192.168.0.102:8080;
    hash $request_uri;
}
原文地址:https://www.cnblogs.com/hustdc/p/8579433.html