Nginx四层负载均衡

620 阅读2分钟

「这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战

Nginx四层负载均衡

Nginx负载均衡基本概述之四层负载均衡

nginx负载均衡分为四层负载均衡和七层负载均衡 上一篇我们讲到七层负载均衡,对七层负载均衡做了一个基本的概述。这篇我们讲讲四层负载均衡,对四层负载均衡做一个基本的概述。

什么是四层负载均衡

所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

Nginx在1.9之后,增加了一个stream模块,用来实现四层协议的转发、代理、负载均衡等。stream模块的用法跟http的用法类似,允许我们配置一组TCP或者UDP等协议的监听,然后通过proxy_pass来转发我们的请求,通过upstream添加多个后端服务,实现负载均衡。

四层协议负载均衡的实现,一般都会用到LVS、HAProxy、F5等,要么很贵要么配置很麻烦,而Nginx的配置相对来说更简单,更能快速完成工作。

添加stream模块的支持

Nginx默认是没有编译这个模块的,需要编译安装的时候手动添加上这个stream模块,那么需要在编译的时候加上--with-stream。

完成添加--with-stream的实现步骤:

》将原有/usr/local/nginx/sbin/nginx进行备份 
》拷贝nginx之前的配置信息 
》在nginx的安装源码进行配置指定对应模块 ./configure -- with-stream 
》通过make模板进行编译 
》将objs下面的nginx移动到/usr/local/nginx/sbin下 
》在源码目录下执行 make upgrade进行升级,这个可以实现不停机添加新模块的功能

Nginx四层负载均衡的指令

stream指令

该指令提供在其中指定流服务器指令的配置文件上下文。和http指令同级。

语法stream { ... }
位置main

upstream指令

该指令和http的upstream指令是类似的。