Nginx之数据流代理stream模块简介和使⽤
⼀、stream模块简介
stream模块⼀般⽤于TCP/UDP数据流的代理和负载均衡,通过stream模块我们可以代理转发tcp报⽂。ngx_stream_core_module 模块从1.9.0版开始提供。默认情况下,此模块不是构建的,应该使⽤–with stream配置参数启⽤它,即我们需要使⽤./configure --with-stream的⽅式在编译的时候将stream模块添加进去。stream模块⽤法和http模块差不多,语法也基本相同。
⼆、使⽤场景说明
stream主要有两个可⽤场景。⼀是实现流量的代理转发,这⾥所说的代理转发是只某些端⼝服务是有源IP地址限制的,例如mysql账户⼀般是限制了源地址为应⽤服务器,nginx可能同时是WEB应⽤服务器,开发⼈员需要验证⼀些数据库数据问题,但是账户源地址有限制,此时通过nginx进⾏数据流转发就可以实现开发终端到mysql的访问。⼆是实现流量的负载均衡,我们有多个tcp或者udp端⼝服务(⽐如DNS),通过stream模块我们可以实现数据流的负载均衡,⽀持负载均衡算法包括轮询、最⼩连接数、ip_hash等。
三、配置⽰例
0、stream块配置
stream块配置与http块并列,在f中配置,可以⽤include⽅式将我们配置实例单独配置,⽅便管理。
stream {
log_format proxy '$remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time "$upstream_addr" ' '"$upstream_bytes_ sent" "$upstream_bytes_received" "$upstream_connect_time"';
access_log /var/log/nginx/tcp-access.log proxy ;
open_log_file_cache off;
include /etc/nginx/conf.d/*.stream;
}
1、tcp端⼝数据流代理
#cat tcp_3306.stream
>>>>>>>>>>>>>>>#
### 这是⼀个tcp 3306端⼝代理的配置⽰例
>>>>>>>>>>>>>>>#
server {
listen 3306; #需要监听的端⼝
proxy_connect_timeout 5s;
proxy_timeout 30s;
proxy_pass 192.168.10.151:3306; #需要代理的端⼝
nginx和网关怎么配合使用}
2、负载均衡配置
#cat load_udp_53.stream
>>>>>>>>>>>>>>>#
### 这是⼀个udp 53端⼝负载均衡的配置⽰例
>>>>>>>>>>>>>>>#
upstream mydns {
hash $remote_addr consistent; #配置ip_hash⽅式,默认轮询
server 192.168.10.10:53; #这⾥配置成要访问的地址和端⼝
server 192.168.10.20:53;
server 192.168.10.30:53;
}
server {
listen 53 udp reuseport; #需要监听的端⼝,因为udp⾮可靠传输协议,使⽤reuseport保证请求分配到统⼀会话中
proxy_connect_timeout 5s;
proxy_timeout 20s;
proxy_pass mydns;
}
四、QA
1、配置检查时报错unknown directive “stream”
报错信息
nginx: [emerg] unknown directive “stream” in /etc/f:77 nginx: configuration file /etc/f test failed
报错原因:未到stream模块
解决⽅案:
在f配置⽂件⾸⾏添加如下内容:
load_module /usr/lib64/nginx/modules/ngx_stream_module.so;
2、添加ngx_stream_module.so模块时报错
报错信息:
ls: cannot access /usr/lib/nginx/modules: No such file or directory
报错原因:
ngx_stream_module.so模块路径错误
解决⽅案:
使⽤nginx -V命令查看nginx的模块安装路径,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
nginx基于TCP的反向代理
« 上一篇
详解零信任架构中的安全网关
下一篇 »
推荐文章
热门文章
-
随机森林特征选择原理
2024-10-02 -
自动驾驶系统中的随机森林算法解析
2024-10-02 -
随机森林算法及其在生物信息学中的应用
2024-10-02 -
监督学习中的随机森林算法解析(六)
2024-10-02 -
随机森林算法在数据分析中的应用
2024-10-02 -
机器学习——随机森林,RandomForestClassifier参数含义详解
2024-10-02 -
随机森林 的算法
2024-10-02 -
随机森林算法作用
2024-10-02 -
监督学习中的随机森林算法解析(十)
2024-10-02 -
随机森林算法案例
2024-10-02 -
随机森林案例
2024-10-02 -
二分类问题常用的模型
2024-10-02 -
绘制ssd框架训练流程
2024-10-02 -
一种基于信息熵和DTW的多维时间序列相似性度量算法
2024-10-02 -
SVM训练过程范文
2024-10-02 -
如何使用支持向量机进行股票预测与交易分析
2024-10-02 -
二分类交叉熵损失函数binary
2024-10-02 -
tinybert_训练中文文本分类模型_概述说明
2024-10-02 -
基于门控可形变卷积和分层Transformer的图像修复模型及其应用
2024-10-02 -
人工智能开发技术的测试和评估方法
2024-10-02
最新文章
-
基于随机森林的数据分类算法改进
2024-10-02 -
人工智能中的智能识别与分类技术
2024-10-02 -
基于人工智能技术的随机森林算法在医疗数据挖掘中的应用
2024-10-02 -
随机森林回归模型的建模步骤
2024-10-02 -
r语言随机森林预测模型校准曲线
2024-10-02 -
《2024年随机森林算法优化研究》范文
2024-10-02
发表评论