Nginx之配置后端服务器组

Nginx服务器支持设置一组服务器作为后端服务器,Nginx反向代理,负载均衡等重要功能会经常涉及后端服务器。

服务器组的设置包括以下的一些指令,他们是由标准的HTTP模块ngx_http_upstream_module进行解析和处理的。

 

一 upstream指令

该指令是设置后端服务器的主要指令,其他的指令都在该指令中进行配置,类似于之前的http块,server块,其语法结构如下:

upstream name {……}
name是后端服务器组的组名,花括号中列出后端服务器组中包含的服务器。

默认情况下,某个服务器组接收到请求以后,按照轮询(Round-Robin)策略顺序选择组内服务器处理请求。

如果一个服务器在处理请求的过车中出现错误,请求会被依照顺序交给组内的下一个服务器进行处理。以此类推,直到返回正常的响应,如果组内服务器都出错则返回最后一个服务器结果。

我们可以根据各个服务器的处理能力或者资源配置的不同情况,给各个服务器配置不同的权重,让能力强的多处理,能力弱的少处理。

 

二 server指令

该指令用于设置组内的服务器,语法结构为:

server address [参数];

address: 服务器地址

参数:为当前服务器配置更多属性,这些属性变量包括以下内容:

weight=number: 配置权重

max_fails = number: 设置一个请求失败的连接次数,如果超过这个次数,则认为该服务器无效

fail_timeout=time: 设置超时多长时间认为连接失败,默认10s

backup: 将某台组内服务器标记为备用服务器,只有当正当服务器无效的时候或者繁忙的时候,该服务器才被用来处理客户端请求

down: 将组内某台服务器永久标记为无效

upstream backend {

      serverbackend1.example.com weight 5;

      server192.168.1.50:8080 max_fails=3 fail_timeout=30s weight;

      serverunix:/tmp/backend3

}

 

三 ip_hash指令

该指令用于实现会话保持功能,某个客户端的请求多次重定向到组内同一台服务器上,保证客户端与服务器之间建立稳定的会话。只有当服务器处于down状态,客户端请求才会被下一个服务器处理,语法结构:

ip_hash;

有时候可以我们关心的服务器组内个服务器之间会话共享问题,但是在实际使用中也有些限制。

# ip_hash不能和server指令中的weight变量一起使用

# 由于ip_hash主要根据客户端IP地址分配服务器因此在整个系统中,Nginx服务器应该是处于最前端的服务器,这样才能获取到客户端的IP地址。

upstream backend {

      ip_hash;

      server a.example.com;

      serverb.example.com;

}

 

四 keepalive指令

该指令用于控制网络连接保持的功能。通过该指令,能够保证Nginx服务器的工作进程为服务器组打开一部分网络连接,并且将数量控制在一定范围内。

语法结构:

keepalive connections;

其中connections为Nginx服务器的每一个工作进程允许该服务器组保持的空闲网络连接数的上限值。如果超过该值,工作进程将采用最近最少使用的策略关闭网络连接。

 

五 least_conn指令

该指令用于配置Nginx服务器使用负载均衡策略为网络连接分配服务器组内的服务器。该指令在该功能上实现了最少连接负载均衡算法,在选择组内的服务器时,考虑个服务器权重的同时,每次选择都是当前网络连接最少的那台服务器,比较每个后端的conns/weight,选取该值最小的后端。如果这样的服务器有多台,就采用加权轮询原则选择。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值