国内最专业的IT技术学习网

UI设计

Nginx基于TCP/UDP端口的四层负载均衡(Stream模块)

发布时间:2019/09/12标签:   负载均衡    点击量:

原标题:Nginx基于TCP/UDP端口的四层负载均衡(Stream模块)
HTTP负载平衡,也就是咱们平日全部"七层负载平衡",任务在第七层"利用层"。而TCP负载平衡,就是咱们平日所说的"四层负载平衡",任务在"收集层"和"传输层"。比方,LVS(Linux Virtual Server,Linux虚构效劳)和F5(一种硬件负载平衡装备),也是属于"四层负载平衡"nginx-1.9.0已公布,该版本增添了stream模块用于个别的TCP代办和负载平衡,ngx_stream_core_module这个模块在1.90版本后将被启用。然而并不会默许装置,须要在编译时经过指定--with-stream参数来激活这个模块。1)设置Nginx编译文件参数./configure--with-http_stub_status_module--with-stream------------------------------------------------------------------2)编译、装置,make&&makeinstall------------------------------------------------------------------3)设置nginx.conf文件stream{upstreamkevin{server192.168.10.10:8080;#这里设置成要拜访的地点server192.168.10.20:8081;server192.168.10.30:8081;#须要代办的端口,在这里我代办逐一个kevin模块的接口8081}server{listen8081;#须要监听的端口proxy_timeout20s;proxy_passkevin;}}创立最高等其余stream(与http统一级别),界说一个upstream组称号为kevin,由多个效劳构成到达负载平衡界说一个效劳用来监听TCP衔接(如:8081端口),而且把他们代办到一个upstream组的kevin中,设置负载平衡的方式和参数为每个server;设置些如:衔接数、权重等等。起首创立一个server组,用来作为TCP负载平衡组。界说一个upstream块在stream高低文中,在这个块外面增加由server下令界说的server,指定他的IP地点和主机名(可能被剖析成多地点的主机名)和端标语。上面的例子是树立一个被称之为kevin组,两个监听1395端口的server,一个监听8080端口的server。upstreamkevin{server192.168.10.10:8080;#这里设置成要拜访的地点server192.168.10.20:8081;server192.168.10.30:8081;#须要代办的端口,在这里我代办逐一个kevin模块的接口8081}须要特殊留神的是:你不能为每个server界说协定,由于这个stream下令树立TCP作为全部server的协定了。设置反向代办使Nginx可能把TCP恳求从一个客户端转发到负载平衡组中(如:kevin组)。在每个server设置块中经过每个虚构server的server的设置信息和在每个server中界说的监听端口(客户端需要的代办端标语,如我推流的的是kevin协定,则端标语为:8081)的设置信息和proxy_passs下令把TCP通讯发送到upstream的哪个server中去。上面咱们将TCP通讯发送到kevin组中去。server{listen8081;#须要监听的端口proxy_timeout20s;proxy_passkevin;}固然咱们也能够采纳繁多的代办方法:server{listen8081;#须要监听的端口proxy_timeout20s;proxy_pass192.168.10.30:8081;#须要代办的端口,在这里我代办逐一个kevin模块的接口8081}------------------------------------------------------------------4)转变负载平衡的方式:默许nginx是经过轮询算法来停止负载平衡的通讯的。领导这个恳求轮回的到设置在upstream组中server端口下来。由于他是默许的方式,这里没有轮询下令,只是简略的创立一个upstream设置组在这儿stream山下文中,并且在此中增加server。a)least-connected:关于每个恳求,nginxplus抉择以后衔接数起码的server来处置: upstreamkevin{least_conn;server192.168.10.10:8080;#这里设置成要拜访的地点server192.168.10.20:8081;server192.168.10.30:8081;#须要代办的端口,在这里我代办逐一个kevin模块的接口8081}b)leasttime:关于每个链接,nginxpluns经过几点来抉择server的:最底均匀延时:经过包括在least_time下令中指定的参数盘算进去的:connect:衔接到一个server所花的时光first_byte:接受到第一个字节的时光last_byte:全体接受完了的时光起码活泼的衔接数: upstreamkevin{least_timefirst_byte;server192.168.10.10:8080;#这里设置成要拜访的地点server192.168.10.20:8081;server192.168.10.30:8081;#须要代办的端口,在这里我代办逐一个kevin模块的接口8081}c)一般的hash算法:nginxplus抉择这个server是经过user_defined要害字,就是IP地点:$remote_addr;upstreamkevin{hash$remote_addrconsistent;server192.168.10.10:8080weight=5;#这里设置成要拜访的地点server192.168.10.20:8081max_fails=2fail_timeout=30s;server192.168.10.30:8081max_conns=3;#须要代办的端口,在这里我代办逐一个kevin模块的接口8081}

版权信息Copyright ? 银河官网 版权所有??? ICP备案编号:鲁ICP备09013610号