nginx提供反向代理,如果一个服务由多台服务器提供(集群环境),需要把请求分发到不同的服务器上处理,这个时候需要做负载均衡。例如:
upstream tomcat2 {
server 192.168.25.148:8081;
server 192.168.25.148:8082;
}
nginx默认采用的是 轮询方式 ,即请求到来的时候一次到192.168.25.148:8081,下一次就到192.168.25.148:8082。
该例中,两台服务器其实只是端口不同,服务器其实一样的,如果是以下配置:
upstream tomcat2 {
server 192.168.25.148:8081;
server 192.168.25.149:8082;
}
192.168.25.148和192.168.25.149 两台机器,假设149这台机器性能较好,我们想让更多的请求转发到这台服务器,
这样的话,我们可以调整服务器权重,权重越高分配的请求越多,权重越低分配的请求越少,默认都是1,可以通过
weight来改变权重。
upstream tomcat2 {
server 192.168.25.148:8081;
server 192.168.25.149:8082 weight=2;
}
该配置,大概就是每3次请求,会有2次转发到192.168.25.149:8082,一次转发到192.168.25.148:8081。