Nginx负载均衡实战
Nginx负载均衡介绍
负载均衡的意识是在服务器集群中,需要有一台服务器作为调度者,客户端所有的请求都由调度者接收,调度这再根据每个服务器的负载情况,将请求分配给对应的服务器去处理。
在这个过程中,调度这如何合理分配任务,保证所有服务器将性能充分发挥,从而保证服务器集群的整体性能最优,这就是负载均衡要解决的问题了。
Nginx负载均衡的方式
轮询
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动删除,如下配置后轮询10001服务和10002服务
1 | upstream dalaoyang-server { |
权重
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务器的访问比率会是10001服务的二倍。
1 | upstream dalaoyang-server { |
iphash
每个请求都根据访问的ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)
1 | upstream dalaoyang-server { |
最少连接
将请求分配到连接数最少的服务上。
1 | upstream dalaoyang-server { |
fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
1 | upstream dalaoyang-server { |
负载均衡实现
和代理实战的模式一样,一个Nginx,三个Tomcat,以轮询为例,nginx.conf简易配置如下:
1 | worker_processes 1; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jing's Blog!