• 1.Round Robin: 对所有的请求进行轮询发送请求,默认的分配方式。
upstream ngcon {
   server www.baidu.com;
   server www.baidu2.com;
}
  • 2.Least Connections:以最少的活动连接数将请求发送到服务器,同样要考虑服务器权重。
 upstream ngcon {
       least_conn;
       server www.baidu.com;
       server www.baidu2.com; 
}
  • 3.IP Hash : 发送请求的服务器由客户机IP地址决定。在这种情况下,使用IPv4地址的前三个字节或整个IPv6地址来计算散列值。该方法保证来自相同地址的请求到达相同的服务器,除非该服务器不可用。
 upstream ngcon {
        ip_hash;
        server www.baidu.com;
        server www.baidu2.com;
 }

测试:

  • 找到nginx的配置文件nginx.conf,该配置在nginx/conf/nginx.conf目录下,新增如下配置:
upstream ngcon{
   server 127.0.0.1:8085;
   server 127.0.0.1:8086;
}
  • 然后在server添加/修改如下配置:
server {
        listen       80;
        server_name  127.0.0.1;


        location / {
            root   html;
            proxy_pass http://ngcon;
            proxy_connect_timeout 3s;
            proxy_read_timeout 5s;
            proxy_send_timeout 3s; 
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
  • 配置说明:
  • server: 虚拟主机的名称,一个http中可以配置多个server;
  • listen:Nginx默认的端口;
  • server_name:Nginx服务的地址,可以使用域名,多个用空格分隔。
  • proxy_pass:代理路径,一般配置upstream后面的名称用于实现负载均衡,可以直接配置ip进行跳转

启动Nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

热加载配置文件

/usr/local/nginx/sbin/nginx -s reload