使用nginx来负载均衡 本文在window与linux下配置nginx实现负载

2019-10-15 20:14:12刘景俊

      …… 

 

      修改完后的内容如下:    

 server {
        listen       8086;
        server_name  10.0.2.136; 
        …… 

   

      这样,nginx就会在启动之后开始侦听本地IP(10.0.2.136)的8086端口请求,然后将其请求转向到mylocalsite 中所指定的两个iis站点,并将执行的结果转发给客户端。如果一切配置正确,这时可以运行 c:/nginx/nginx.exe (或在cmd下运行“start nginx”),就可以在任务管理器中看到一个nginx进程启动了。(注:如果配置文件有错误,可以到C:nginxlogserror.log 查看错误日志,进一步排错)。

      注: 关闭ngnix的命令: nginx -s stop

             配置文件ngnix.conf正确性判断的命令: nginx -t 

 

       当然Nginx 负载均衡的功能也是很强的,并且其一般作为七层负载均衡(应用协议层)。下面就其upstream所支持的四个常用设置进行说明: 

1)、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down掉,能自动剔除。
2)、weight :指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、 ip_hash :每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、 fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。 
4)、url_hash(第三方) 

    

     按上面的说明,可以将之前我们的upstream做如下修改:

upstream  mylocalsite {  
     server   10.0.2.137:8088 weight=2;
     server   10.0.2.137:8089 weight=1; 
}

 

     这个当来了三个http请求时,其中的两个会被分配到10.0.2.137:8088 上,一个分配到10.0.2.137:8089 。当然一开始可以其分摊的请求可以不是太严格按其设置,但当请求数多了之后,基本上就接近于我们分指派的权值了。当然就负载均衡的算法而言,使用 weight只是其中的一种,而经常使用的还有许多,比如lvs就在其内部实现了多种的负载均衡算法,可以根据用户的实际环境进行设置布署。。当然就目前而言,nginx的算法相比较还是少了许多,呵呵。