「这是我参与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指令是类似的。