Nginx配置负载均衡

在nginx 1.9.0引入的ngx_stream_upstream_module可以将请求根据规则代理到多个服务器上去,因此这个特性可以被用来做一个简单的负载均衡服务。

一个配置示例:

upstream backend {
    hash $remote_addr consistent;

    server backend1.example.com:12345  weight=5;
    server backend2.example.com:12345  max_conns=10;
    server unix:/tmp/backend3 max_fails=3;

    server backup1.example.com:12345   backup;
    server backup2.example.com:12345   backup;

    server backup3.example.com:12345  down;
}

server {
    listen 12346;
    proxy_pass backend;
}

upstream指令说明

用来指定一组后端server,在前端serve中通过proxy_pass upstream_name调用。

upstream中的server指令说明

upstream中的server指令用来指定一个后端server。server可以指定成ip、域名、或者unix:指定的sockets,并且这几种可以在一个upstream组中同时出现

以下是可以在server指令后添加的参数:

weight

权重,nginx用一个权重轮询的方法将连接分配到不同的server上,在以上的例子中,每7个连接会先分配5个给第一个server,然后第二个和第三个server各分配一个连接,这里你可能会问,第四、五个server呢?它们被指定城backup,暂时不会分配连接给他们,请看下面的介绍。

max_conns

指定server的并发连接数,默认为0,表示没有限制。在 1.11.5之前的版本,该参数需要商业版nginx才有。

max_fails=number,fail_timeout=time

在fail_timeout指定的时间(单位:秒)里,如果有max_fails次数的失败连接,nginx将会将该server在接下来的fail_timeout的时间里,设置成不可用状态。max_fails默认为1,如果设置成0,将不统计次数(即不用这两个参数指定的功能)。

backup

该参数将server设置为备份server,当所有的server不可用时,才会访问该server

down

该参数将server设置成不可用,所有的连接都不会分配给它。

发表评论

电子邮件地址不会被公开。 必填项已用*标注