在 nginx.conf 中进行配置

http {
	upstream myserver {
		server 106.15.192.117:8001;
		server 106.15.192.117:8002;
	}
	
	server {
		listen 80;
		server_name 106.15.192.117;
		
		location / {
			proxy_pass http://myserver;
			root html;
			index index.html index.htm index.jsp;
		}
	}
}

Nginx 提供了几种分配策略

1、轮询(默认)

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

upstream backserver {
    server 192.168.0.14;
    server 192.168.0.15;
}

2、weight

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

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

upstream myserver {
	server 106.15.192.117:8001 weight=10;
	server 106.15.192.117:8002 weight=5;
}

3、ip_hash

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

upstream myserver {
	ip_hash;
	server 106.15.192.117:8001;
	server 106.15.192.117:8002;
}

4、fair

第三方插件,按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream myserver {
	server 106.15.192.117:8001;
	server 106.15.192.117:8002;
	fair;
}

5、url_hash

url_hash 是根据请求的 URL 的 hash 值来分配服务器。相同 URL 的请求会分配给固定的服务器,当存在缓存的时候,效率一般较高。

6、最小连接数(Least Connections)

遍历服务器节点列表并选取其中连接数最小的一台服务器来响应当前请求。连接数可以理解为当前处理的请求数。

7、backup
其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

upstream bakend {
      server 10.0.0.11:6060; 
      server 10.0.0.11:7070 backup; 
}

hhhhh