nginx HTTP Upstream模块配置
./configure --with-http_upstream_modulemo
一、分配方式
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。