Nginx负载均衡配置实例

面对高并发的问题,企业往往会从两个方面来解决。其一,从硬件上面,提升硬件的配置,增加服务器的性能;另外,就是从软件上,将数据库和WEB服务器分离,使数据库和WEB服务器都能够充分发挥各自的性能,并且二者不相互影响。然而,这样还不够,一台WEB服务器可能无法承受太高的并发请求。那么负载均衡技术就应运而生,下面我们就来谈谈如何用Nginx进行负载均衡。

查看原文更多惊喜

负载均衡的作用

1.转发

转发是负载均衡的核心功能,它能够根据一定的算法,将客户端请求转发到不同应用服务器,缓解每台服务器的压力,提高并发量。

2.移除故障

当其中一台服务器发生故障时,会被移出轮询队列,客户端请求将会发送到其他几台正常的服务器,不会影响客户端的访问。

3.恢复添加

当故障的服务器恢复时,会自动被加到轮询队列,继续处理客户端请求。

image

Nginx配置

轮询

如下是Nginx的基本配置,upstream配置要负载的节点。nodes可以自己取,要跟server中proxy_pass的nodes一致。
server_name可以是Nginx服务器的ip地址,也可以是域名,根据具体情况配置即可,listen为端口号。

upstream nodes {  
    server 192.168.1.11;  
    server 192.168.1.12;  
    }   
  
 server {  
        listen       80;  
        server_name  127.0.0.1;  
        #charset koi8-r;  
        #access_log  logs/host.access.log  main;  
        location / {  
            proxy_pass   http://nodes;  
            index  index.html index.htm;  
        }  
     }

使用以上配置,默认采用轮询的分发策略,即每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。

权重

如果需要为每个请求节点配置不同的权重,可以在地址后面增加权重,配置如下

upstream nodes {  
    server 192.168.1.11 weight=4;  
    server 192.168.1.12;  
    }  

通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。weight默认为1,weight越大,负载的权重就越大。

IP哈希算法

还有一种策略是IP哈希算法,请求按访问ip的hash结果分配,这样每个IP固定访问一个应用服务器,可以解决session共享的问题,配置如下

upstream nodes {  
    ip_hash; 
    server 192.168.1.11;  
    server 192.168.1.12;  
    }   

其他

upstream中还有其他几个常用的配置项:
down: 表示当前的server不參与负载均衡
max_fails: 允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout: max_fails次失败后,暂停请求此台服务器的时间
backup: 其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻

upstream nodes {  
    server 192.168.1.11 down;  
    server 192.168.1.12 backup;  
    server 192.168.1.13;
    }   

以上就是Nginx的一些基本配置,能够满足基本的使用,大家可以动手测试一下。
下载地址:https://nginx.org/en/download.html,下载后解压即可。配置文件为conf/nginx.conf,修改好配置文件后双击nginx.exe启动。

原文地址:https://www.cnblogs.com/codernice/p/11635205.html