加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Nginx负载均衡--TCP/UDP流

发布时间:2019-06-06 20:40:29 所属栏目:业界 来源:Jyokiyi
导读:负载平衡是指在多个后端处事器之间有用地分派收集流量。 从NGINX Plus R5[1] 版本开始可以署理和负载平衡传输节制协议(Transmission Control Protocol,TCP)通讯。TCP是很多风行应用措施和处事的协议,如LDAP、MySQL和RTMP。 从NGINX Plus R9[2]版本开始可

行使ngx_stream_upstream_module模块(默认是编译进来的)的upstream指令。指令语法:

  1. Syntax:    upstream name { ... } 
  2. Default:    — 
  3. Context:    stream 

界说一组处事器。 处事器可以侦听差异的端口。 另外,可以殽杂侦听TCP和UNIX域套接字的处事器。

在顶级stream{}上下文中界说一个或多个upstream{}设置块,并配置upstream组的名称,譬喻TCP处事器的stream_backend和UDP处事器的dns_servers:

  1. stream { 
  2.     upstream stream_backend { 
  3.         server backend1.example.com:12345; 
  4.         server backend2.example.com:12345; 
  5.         server backend3.example.com:12346; 
  6.     } 
  7.  
  8.     upstream dns_servers { 
  9.         server 192.168.136.130:53; 
  10.         server 192.168.136.131:53; 
  11.     } 

设置upstream组行使的负载平衡要领。 可以指定以下要领之一:

1.Round Robin:默认环境下,NGINX行使轮回算法对流举办负载均衡,将其次序指向设置的upstream组中的处事器。由于它是默认要领,以是没有round-robin指令;只需在顶级stream{}上下文中建设upstream{}设置块,

2.起码毗连(Least Connections)–nginx选择当前勾当毗连数较少的处事器。

  1. Syntax:    least_conn; 
  2. Default:    — 
  3. Context:    upstream 

3.起码时刻-NGINX Plus选择均匀耽误最低且勾当毗连数起码的处事器。 用于计较最低均匀耽误的要领取决于least_time指令中包括以下哪个参数:

  1. Syntax:    least_time connect | first_byte | last_byte [inflight]; 
  2. Default:    — 
  3. Context:    upstream 

A. connect - 毗连upstream处事器的时刻

B. first_byte - 吸取数据的第一个字节的时刻

C. last_byte - 从处事器吸取完备相应的时刻,假如指定了inflight参数(1.11.6+),则还会思量不完备的毗连。

4.哈希 - NGINX按照用户界说的key,选择处事器。

  1. Syntax:    hash key [consistent]; 
  2. Default:    — 
  3. Context:    upstream 

Hash负载均衡要领还用于设置会话耐久性。 因为散列函数基于客户端IP地点,因此来自给定客户端的毗连始终转达到统一处事器,除非处事器已封锁或不行用。 指定可选的consistent参数以应用ketama同等性散列要领:

  1. hash $remote_addr consistent; 

5.random - 每个毗连将转达给随机选择的处事器。 假如指定了two参数,起首,NGINX会思量处事器权重随机选择两台处事器,然后行使指定的要领选择个中一台处事器:

Syntax: random [two [method]];Default: —Context: upstreamThis directive appeared in version 1.15.1.

A. least_conn - 勾当毗连数起码

B. least_time=connect - 毗连上游处事器的时刻($upstream_connect_time)少了美元标记

C. least_time=first_byte - 从处事器吸取第一个数据字节的均匀时刻最短($upstream_first_byte_time)

D. least_time=last_byte - 从处事器吸取最后一个数据字节的均匀时刻最短($upstream_session_time)

随机负载均衡要领应该用于多个负载平衡器将哀求转达到统一组后端的漫衍式情形.

示例:

  1. stream { 
  2.     upstream stream_backend { 
  3.         hash   $remote_addr consistent; 
  4.         server backend1.example.com:12345 weight=5; 
  5.         server backend2.example.com:12345; 
  6.         server backend3.example.com:12346 max_conns=3; 
  7.     } 
  8.     upstream dns_servers { 
  9.         least_conn; 
  10.         server 192.168.136.130:53; 
  11.         server 192.168.136.131:53; 
  12.     } 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读