1 nginx的负载均衡是由upstream模块提供的
http {
# ... 省略其它配置
upstream tomcats {
server 192.168.0.100:8080;
server 192.168.0.101:8080;
server example.com:8080;
}
server {
listen 80;
location / {
proxy_pass http://tomcats;
}
}
# ... 省略其它配置
}
proxy_pass http://tomcats:表示将所有请求转发到tomcats服务器组中配置的某一台服务器上。
2 nginx请求分配的五种方式
2.1 轮询
每个请求按照时间顺序逐一分配给后端服务器。
up_stream backend {
server 192.168.1.10;
server 192.168.1.11;
}
2.2 指定权重
up_stream backend {
server 192.168.1.10 weight=1;
server 192.168.1.11 weight=2;
}
权重越大,分配的请求就越频繁。
2.3 ip_hash
按照ip hash的结果分配,每个请求固定一个后端服务器。解决session不能跨服务器的问题。
up_stream backend {
ip_hash;
server 192.168.1.10;
server 192.168.1.11;
}
2.4 fair
按照请求的响应时间来分配。
up_stream backend {
fair;
server 192.168.1.10;
server 192.168.1.11;
}
2.5 url_hash
按照url的hash来指定后端服务器,同一个url对应一个后端服务器,如果后端是缓存服务器,将很有效。
upstream tomcats {
server 192.168.0.100:8080;
server 192.168.0.101:8080;
server 192.168.0.102:8080;
hash $request_uri;
}