首页 » Linux » Nginx » Nginx Stream模块讲解

Nginx Stream模块讲解

 

Nginx Stream模块是Nginx从1.9.0版本开始引入的核心模块,它允许Nginx在传输层(TCP/UDP)进行流量代理和负载均衡,而不仅仅局限于应用层(HTTP)。

1、HTTP模块与Stream模块区别

特性HTTP模块Stream模块
OSI层级应用层(第7层)传输层(第4层)
协议支持HTTP/HTTPS等应用协议TCP/UDP协议
解析能力解析HTTP仅转发流量
典型应用场景Web应用代理通用TCP/UDP代理

2、检查Nginx是否支持Stream

期望输出:

--with-stream
--with-stream_ssl_module
--with-stream_realip_module

如果没有,需要重新编译Nginx,编译时指定stream参数,如--with-stream --with-stream_ssl_module

3、配置结构

Stream模块的配置与HTTP模块类似,但有自己的上下文,Stream与HTTP模块是平级关系。

4、关键指令详解

listen 12345; # 监听TCP 12345端口
listen 12345 udp; # 监听UDP 12345端口
proxy_pass backend; # 代理到服务器组
proxy_pass 127.0.0.1:3306; # 代理到指定的地址
proxy_timeout 30s; # 30秒无活动则关闭连接
proxy_connect_timeout 5s; # 5秒内未连接成功则超时

5、一些演示示例

①、MQTT消息代理,适用于IoT设备连接,需要处理大量并发TCP连接场景。

②、MQTT加密TLS配置示例。

③、最小化端口转发配置

④、增加白名单的最小化端口转发配置

 

原文链接:Nginx Stream模块讲解,转载请注明来源!

0