点赞
评论
收藏
分享
举报
Nginx进行tcp负载均衡(stream模块)
发表于2020-06-29 15:16

浏览 6.6k

文章标签

nginx默认不自带stream模块
操作系统版本:CentOS Linux release 7.3.1611 (Core) 
nginx版本:1.13.3

nginx从1.9.0版本开始,新增了ngx_stream_core_module模块,使nginx支持四层负载均衡。默认编译的时候该模块并未编译进去,需要编译的时候添加--with-stream,使其支持stream代理。

一、查看nginx是否有stream模块

nginx -V

configure arguments: --prefix=/opt/elap/embedded --conf-path=/opt/elap/conf/nginx/nginx.conf --http-log-path=/var/log/elap/nginx/access.log --error-log-path=/var/log/elap/nginx/error.log --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --with-debug --with-ld-opt=-L/opt/elap/embedded/lib --with-cc-opt='-L/opt/elap/embedded/lib -I/opt/elap/embedded/include'

二、编译nginx添加模块

下载nginx的源码包到/usr/local/目录下,解压并进入目录

执行configure命令(其他命令参数不变,保证环境不被影响,最后添加stream模块)

./configure --prefix=/opt/elap/embedded --conf-path=/opt/elap/conf/nginx/nginx.conf --http-log-path=/var/log/elap/nginx/access.log --error-log-path=/var/log/elap/nginx/error.log --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --with-debug --with-ld-opt=-L/opt/elap/embedded/lib --with-cc-opt='-L/opt/elap/embedded/lib -I/opt/elap/embedded/include' --with-stream

make(生成二进制文件在../objs/nginx下)

三、替换nginx二进制文件

停掉nginx,备份原本的nginx二进制文件后,把 ../objs/nginx二进制文件拷贝到/opt/elap/embedded/sbin/目录下,启动nginx,使用nginx -V查看模块是否编辑进去,查看服务是否正常

四、增加负载均衡配置

首先stream段中使用include包含的多个upstream模块配置文件,在conf文件夹中创建一个conf.d文件,将多个子配置文件写入,针对不同的协议有不同的配置,保证转发数据源IP不变,具体配置如下所示:

tcp配置如下:

upstream access_log_1532 {

    server    1.1.1.1:1532 weight=2;

    server    1.1.1.2:1532 weight=2; 

    server    1.1.1.2:1532 weight=2; 

}

server {

    listen    1532;

    proxy_pass    access_log_1532 ;

    proxy_responses 0;

}

udp配置如下:

upstream access_log_1532 {

    server    1.1.1.1:1532 weight=2;

    server    1.1.1.2:1532 weight=2; 

    server    1.1.1.2:1532 weight=2; 

}

server {

    listen    1532 udp;

    proxy_pass    access_log_1532 ;

    proxy_bind    $remote_addr transparent;

    proxy_responses 0;

}

已修改于2023-03-09 02:04
本作品系原创
创作不易,留下一份鼓励
像雾像雨又像风

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
像雾像雨又像风
这家伙很懒还未留下介绍~
3
文章
5
问答
0
粉丝
相关文章
原文作者:LiamCrillyofF5原文链接:借助TCP负载均衡和Galera集群扩展MySQL -NGINX转载来源:NGINX官方网站  [编者按——本文最初发表于2016年,现已进行更新,改为使用更新之后修改过的NGINX功能。有关详细信息,请参阅下文“借助NGINXJavaScript模块进行高级日志记录”和“NGINXPlus仪表盘”两节。]本文探讨了TCP负载均衡的关键要求以及NGINX如何满足这些要求。为了探讨NGINX 的功能,我们将使用一个简单的测试环境,来代表具有可扩展数据库后端的应用的关键组件。有关构建该测试环境的完整说明,请参阅附录。负载均衡MySQL节点的测试环境在该环境中,NGINX充当数据库服务器的反向代理,监听MySQL默认端口3306。这为客户端提供了一个简单的接口,同时后端MySQL节点可以向外扩展(甚至脱机),且不会对客户端产生任何影响。我们将 MySQL命令行工具用作客户端,代表测试环境中的前端应用。本文描述的许多功能都适用于N
点赞 1
浏览 5.4k
作为 TCP 负载均衡器,NGINX Plus 通过终止 TLS 连接和对 MQTT 应用客户端进行身份验证来提高物联网安全性。访问 NGINX 中文官方开源社区(nginx.org.cn)了解详情。
点赞 0
浏览 4.7k
API 采用的每个阶段都有一系列问题、流程和实践,需要大多数企业在升级其现有基础设施时认真对待。‌访问 NGINX 中文官方开源社区(nginx.org.cn)了解详情。
点赞 0
浏览 2.2k