一、分配方式
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等参数
二、设备状态
down: 表示该设备处于停用状态
backup: 表示该设备是备用设备,只有在除他之外所有设备宕机或者很忙的时候才会被分配到请求。
weight: 表示权重,数值越大,则被请求的几率越大。
max_fails和fail_timeout一般为关联使用,max_fails设置允许请求失败的次数,默认为1。fail_timeout设置请求失败n次后多长时间不再请求该服务,默认为10s。