nginx实现负载均衡,当然是对于多个tomcat而言,尤其是实现了tomcat集群的项目,比如你有2个tomcat服务器,为了节约成本,一个服务器性能好,一个性能差,当请求从浏览器传到nginx,你肯定希望nginx把大多数请求分发给性能好的服务器,而把少量的请求分发给性能差的服务器,nginx的负载均衡就能解决这种类似场景。
常见的集中负载均衡的方式:
1.轮询(默认) 每个请求按时间逐一分配到不同的服务器,如果down掉,自动剔除。
2.weight 权重 指定轮询的占比,主要用于服务器性能不同的情况。
3.ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。
4.down 表示单前的server暂时不参与负载
5.backup 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
6.fair (第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。
配置:
在nginx.conf 文件的http配置下配置upstream。
权重举例:
upstream nodes {
server 192.168.1.1:3355 weight=1;
server 192.168.1.2:3355 weight=2;
}
ip_hash举例:
upstream nodes {
ip_hash;
server 192.168.1.1:3355 weight=1;
server 192.168.1.2:3355 weight=2;
}