Nginx与tomcat的结合,主要用的是Nginx中的upstream来配置负载均衡,后端可包括有多台tomcat来处Nginx 的请求,upstream目前支持4种方式的配置
1、方式一轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器 ,如果后端服务器down掉,能自动剔除。
1
2
3
4
|
upstream tomcatserver {
server
192.168
.
1.1
:
8080
;
server
192.168
.
1.2
:
8080
;
}
|
2、方式二weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如:
1
2
3
4
|
upstream tomcatserver {
server
192.168
.
1.1
:
8080
weight=
1
;
server
192.168
.
1.2
:
8080
weight=
1
;
}
|
三、方式三ip_hash根据客户ip访问固定服务器
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。 例如:
1
2
3
4
5
|
upstream tomcatserver{
ip_hash;
server
192.168
.
1.1
:
8080
;
server
192.168
.
1.2
:
8080
;
}
|
四、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
1
2
3
4
5
|
upstream tomcatserver {
server server1;
server server2;
fair;
}
|
五、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
1
2
3
4
5
6
|
upstream weight=
1
{
server squid1:
3128
;
server squid2:
3128
;
hash $request_uri;
hash_method crc32;
}
|