nginx负载均衡的方式
轮询
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服 务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。
upstream dalaoyang-server {server localhost:10001;server localhost:10002;}
权重
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的 分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍。
upstream dalaoyang-server {server localhost:10001 weight=1;server localhost:10002 weight=2;}
iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置 (ip_hash可以和weight配合使用)。
upstream dalaoyang-server {ip_hash;server localhost:10001 weight=1;server localhost:10002 weight=2;}
最少连接
将请求分配到连接数最少的服务上。
upstream dalaoyang-server {least_conn;server localhost:10001 weight=1;server localhost:10002 weight=2;}
fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 需要插件来帮我们实现
upstream dalaoyang-server {server localhost:10001 weight=1;server localhost:10002 weight=2;fair;}
以轮询为例,如下是nginx.conf完整代码。
worker_processes 1;events {worker_connections 1024;}http {upstream dalaoyang-server {server localhost:10001;server localhost:10002;}server {listen 10000;server_name localhost;location / {proxy_pass http://dalaoyang-server;proxy_redirectdefault;}}}
