首页 > 系统相关 >Nginx之数据流代理stream模块简介和使用 ---九五小庞

Nginx之数据流代理stream模块简介和使用 ---九五小庞

时间:2023-07-14 11:23:20浏览次数:42  
标签:stream 端口 tcp --- 小庞 proxy 模块 53

一、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块并列,在nginx.conf中配置,可以用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; #需要代理的端口
}

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;
}

 

标签:stream,端口,tcp,---,小庞,proxy,模块,53
From: https://www.cnblogs.com/pxyblog/p/17553205.html

相关文章

  • 从零玩转SpringBoot3-快速入门
    一、简介1.前置知识​ ●Java17​ ●Spring、SpringMVC、MyBatis​ ●Maven、IDEA2.环境要求环境&工具版本(orlater)SpringBoot3.1.xIDEA2023.xJava17+Maven3.5+Tomcat10.0+Servlet5.0+GraalVMCommunity22.3+NativeBuildTools0......
  • 记一下el-popover和el-tabs嵌套时tabs下划线显示不正确的bug
    在使用el-popover和el-tabs嵌套时出现了这样的bug,组件第一次生成时消息下面的蓝条会消失,需要手动点击之后才会重新出现,记录一下该问题,希望对同样遇到问题的同学有所帮助后来我通过这位博主(http://hk.aiuxian.com/article/p-eirtvdap-ne.html)了解到,这应该是elementui的bug,这位老......
  • Codeforces 1396E - Distance Matching
    先考虑一下合法的\(k\)的上界和下界是什么以及如何达到上界和下界,我们找出树的一个重心\(R\)并以\(R\)为根dfs一遍整棵树,那么:下界为\(\sum(siz_i\bmod2)\),构造方法是从下往上钦定,对于一个点考虑其所有没有匹配的儿子,如果是偶数个就将它们两两匹配,如果是奇数个就将它们......
  • 【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块4
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 2023年度最佳开发工具-Eolink Apikit
    6月30日,「2023掘金技术引力榜」颁奖典礼隆重举行,EolinkApikit荣获「年度最佳开发工具」!开发工具是每个开发者每天都会使用的产品,深度影响着开发者的工作效率和生产力。稀土掘金技术社区汇集了大批优秀的开发者,一起探索和发现产业中最具价值的新技术,找到行业里的引领人物、优秀......
  • 汇编入门-课程概要
    1.什么是机器语言?加:01000000减:01001000乘:1111011111100000除:1111011111110000 2.什么是汇编语言?     加: INCEAX                         01000000减:DEC EAX       ......
  • .NET 7发布到IIS HTTP 错误 500.19 - Internal Server Error
    之前一直都是用的独立发布,就没有配置过服务器环境,今天发布了一个依赖版,果不其然报错了一番查找之后原因也是很简单,服务器需要安装一个.NET运行时的环境https://dotnet.microsoft.com/zh-cn/download/dotnet/7.0打开之后下载这一个,你也可以选择下载左边的SDK,里面是包含了.NET运......
  • Codeforces 1740H - MEX Tree Manipulation
    首先发现一个性质,那就是每个点的点权是\(\logn\)级别的。因为假设要造出一个点权为\(i\)的点至少需要大小为\(mn_i\)的子树,那么显然有\(mn_i=\sum\limits_{j=0}^{i-1}mn_j+1\),即\(mn_i=2^i\)。由于点权不是很大,因此我们很容易地往变换复合的角度思考。将整棵树进行轻重......
  • 设计模式-桥接模式在Java中的使用示例
    场景桥接模式情境引入假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12=36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对象个数仅为3+12=15,远小于36,却能实现与36支蜡笔同样的功能。如果增加一种新型号的画......
  • ORA-03001: Unimplemented Feature
    一、创建主键添加online报错ORA-03001:unimplementedfeature二、官网解决办法ORA-03001:UnimplementedFeatureWhenAddingConstraintsWithOnlineClausefrom19.11(DocID2799005.1)1.19.16版本先添加唯一约束,在添加主键;2.在老版本可以使用online添......