nginx HTTP Upstream模块配置

./configure --with-http_upstream_module

一、分配方式

1.轮询方式(默认)

upstream realserver {

    server 192.168.1.1;

    server 192.168.1.2;

}

  每一个请求会按照时间顺序分配到后端不同的服务器上,假如有一台服务器宕机,则会自动剔除该服务器。


2.weight权重

upstream realserver {

        server 192.168.1.1 weight=5;

        server 192.168.1.2 weight=8;

}

  根据后端服务器的性能来设置被访问的几率,数值越大,几率越高。用于后端服务器性能不均的情况。


3.ip_hash

upstream realserver {

        ip_hash;

        server 192.168.1.1;

        server 192.168.1.2;

}

 这样能够使某个ip固定访问一台后端的服务器,可以有效解决用户session问题。


4.fair(第三方)

upstream realserver {

        server 192.168.1.1;

        server 192.168.1.2;

        fair;

}

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


5.url_hash(第三方)

upstream realserver {

        server 192.168.1.1;

        server 192.168.1.2;

        hash $request_uri;

        hash_method crc32;

}

 按照url的hash结果来分配请求,使每一个url地址请求到同一台后端服务器,后端服务器为缓存服务器时比较有效。此时不可使用weight等参数。



upstream realserver {

server 127.0.0.1:9090 down;

server 127.0.0.1:8080 max_fails=3 fail_timeout=20s;

server 127.0.0.1:6060;

server 127.0.0.1:7070 backup;

}

二、设备状态

 down: 表示该设备处于停用状态

 backup: 表示该设备是备用设备,只有在除他之外所有设备宕机或者很忙的时候才会被分配到请求。

 weight: 表示权重,数值越大,则被请求的几率越大。

 max_fails和fail_timeout一般为关联使用,

 max_fails设置允许请求失败的次数,默认为1。

 fail_timeout设置请求失败n次后多长时间不再请求该服务,默认为10s。