详解 stream 模块与 http 模块在全局作用域下的配置差异

浅婷小哥_1631

浅婷小哥_1631

2026-05-07

358人浏览

原创

stream模块与http模块是nginx中完全平行、互不嵌套的两个顶级模块,必须同级配置于nginx.conf全局作用域下;前者工作在l4,仅支持tcp/udp透传与连接级负载均衡,后者工作在l7,支持http语义解析与高级功能。

详解 stream 模块与 http 模块在全局作用域下的配置差异

stream 模块和 http 模块在 Nginx 配置中是完全平行、互不嵌套的两个顶级模块,不能混放,也不能互相包含。它们各自独立解析流量,适用场景和配置逻辑有本质区别。

配置位置必须平级

在 nginx.conf 主配置文件中,http 块与 stream 块必须同级,都位于全局作用域下(即与 events、worker_processes 等同级):

  • ✅ 正确写法:
    events { ... }
    http { ... }
    stream { ... }
  • ❌ 错误写法:
    http { stream { ... } }(嵌套非法)
    stream { http { ... } }(嵌套非法)
    location { stream { ... } }(语法不支持)

协议层与功能边界不同

两者处理的网络层级不同,导致可配置项和行为逻辑不可互换:

Upload audio to AIOZ Stream
Upload audio to AIOZ Stream

快速上传音频至 AIOZ Stream API。支持默认或自定义编码配置创建音频对象,上传文件并完成处理后返回音频链接。

下载
  • http 模块 工作在应用层(L7),能识别并操作 HTTP 方法、URI、Header、Cookie、状态码等;支持 location 路由、缓存、重写、SSL 终止、Header 改写等高级功能
  • stream 模块 工作在传输层(L4),只看到原始 TCP/UDP 连接和字节流;不解析内容,无法做 URI 匹配或 Header 处理;仅支持基于 IP、端口、连接数的负载均衡与透传
  • 例如:用 stream 代理 HTTP 流量,后端收不到合法 HTTP 请求头,会直接报错或拒绝连接

核心指令与上下文差异

每个模块支持的指令范围严格受限于其设计目标:

  • upstream 在两者中都存在,但含义不同:
    • http upstream 可配合 proxy_pass 实现带协议语义的转发
    • stream upstream 只做纯连接转发,依赖 proxy_pass(属于 stream 指令)指向该 upstream
  • 常见 http 专用指令如 location、rewrite、add_header、proxy_set_header 在 stream 块中完全不可用
  • stream 特有指令如 proxy_timeout、proxy_responses、ssl_preread 在 http 块中无效

启用前提与编译依赖不同

模块是否可用取决于 Nginx 编译时的选项:

  • http 模块默认内置,无需额外开启
  • stream 模块需显式启用:
    编译时加 --with-stream 参数;
    若未启用,配置 stream { } 会导致 nginx -t 报错:unknown directive "stream"
  • 若还需 TLS 相关能力(如 ssl_preread),还需额外添加 --with-stream_ssl_preread_module

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

383

5

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3307

6

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

2023.08.04

5985

6

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

561

5

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.07.09

1476

5

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

2024.08.07

3938

3

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

122

12

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

457

23

Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建
Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建

本指南详解Nginx在Windows、macOS及Linux系统的安装全流程。涵盖官方包解压、Homebrew一键部署、APT/YUM源配置及Docker容器化方案。无论新手或开发者,均可快速搭建运行环境,掌握跨平台核心指令,为后续配置与调优奠定坚实基础。

2026.03.16

159

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CentOS 官方文档
CentOS 官方文档

共0课时 | 0人学习

极客学院Java8新特性视频教程
极客学院Java8新特性视频教程

共17课时 | 4.3万人学习

JavaScript高级框架设计视频教程
JavaScript高级框架设计视频教程

共22课时 | 4.4万人学习