Nginx中正确配置SSE(Server-Sent Events)服务

news/2025/10/28 17:36:49/文章来源:https://www.cnblogs.com/hongkaiwu/p/19172372

让我们深入探讨如何在Nginx中正确配置SSE(Server-Sent Events)服务。SSE是一种基于HTTP的服务器推送技术,需要特殊的Nginx配置来维持长连接。

核心配置要点

  1. 代理缓冲与分块传输
    location /sse-endpoint {
    proxy_pass http://backend;
    proxy_buffering off; # 禁用缓冲确保实时性
    proxy_cache off; # 禁用缓存
    chunked_transfer_encoding on; # 启用分块传输
    }

关键作用:proxy_buffering off确保数据立即转发而非缓冲,这对SSE的实时性至关重要。分块传输允许服务器持续发送数据片段。

  1. 超时控制
    proxy_read_timeout 3600s; # 后端读取超时(建议1小时+)
    proxy_send_timeout 3600s; # 发送超时
    keepalive_timeout 3600s; # 保持连接时间

最佳实践:SSE连接通常需要长时间保持,建议设置1小时以上。注意这些值需要大于你的预期事件间隔时间。

  1. 连接头控制
    proxy_set_header Connection '';
    proxy_http_version 1.1; # 必须使用HTTP/1.1

版本差异:HTTP/1.1是SSE的必要条件,同时清空Connection头防止被转为close。

  1. 事件流头设置
    add_header Content-Type 'text/event-stream';
    add_header Cache-Control 'no-cache';

常见问题:缺少正确的Content-Type会导致浏览器不识别SSE流。

常见问题解决方案

连接中断问题排查:

  1. 检查Nginx日志中的upstream timed out错误
  2. 浏览器开发者工具查看SSE连接状态码
  3. 心跳机制:服务端应定期发送注释行(如: heartbeat\n\n)

代理层特殊配置:

针对云环境或LB的特殊配置

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
real_ip_header X-Forwarded-For;

完整配置示例

server {
location /events {
proxy_pass http://sse_backend;
proxy_http_version 1.1;
proxy_set_header Connection '';
proxy_set_header Host $host;

    proxy_buffering off;proxy_cache off;chunked_transfer_encoding on;proxy_read_timeout 24h;keepalive_timeout 24h;add_header Content-Type 'text/event-stream';add_header Cache-Control 'no-cache';add_header Access-Control-Allow-Origin *;
}

}

性能考量:虽然长连接会占用资源,但现代Nginx能高效处理大量空闲连接。建议配合连接数监控(如ngx_http_stub_status_module)来评估服务器负载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/949016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子烟上的关键芯片推荐(NFC、MCU、电源管理)

随着电子烟市场的快速发展,消费者对产品的智能化、安全性和用户体验提出了更高要求。本文将围绕NFC、MCU和电源管理三大核心器件探讨其在电子烟中的应用方案: 一、NFC技术在电子烟中的应用 NFC(近场通信)技术为电子…

应用程序无法正常启动(0xc0000142)怎么办?3个方法彻底解决【2025最新图文教程】

当你打开软件或游戏时,突然弹出“应用程序无法正常启动(0xc0000142)”的错误提示,是不是一脸懵? 本文将详细介绍该问题的常见原因,并提供三种行之有效的解决方法:使用一键修复工具自动处理系统错误手动更新 Visua…

基于二维熵阈值分割与遗传算法结合的图像分割

一、算法原理框架 1. 二维熵阈值分割基础\(p_{ij}\):灰度值i与邻域均值j的联合概率 \(w_0,w_b\):目标和背景的累积概率 目标:最大化总熵\(H=H_o+H_b\)2. 遗传算法优化流程 graph TD A[初始化种群] --> B[适应度计…

10进制转2进制

string decimalToBinary2(int n) { if (n == 0) return "0"; string binary = ""; while (n > 0) {binary = to_string(n % 2) + binary;n /= 2; } return binary;} 注意binary = to_string(n …

沙姆镜头的工作原理及使用技巧

沙姆镜头的工作原理基于沙姆定律,即当镜头平面、成像平面和被摄物体平面相交于一条直线时,可以扩展焦平面,使不在同一平面的物体也能清晰成像。 在实际应用中,沙姆镜头通过其倾斜功能,可以根据被摄物体的角度调整…

全域感知,主动预警:视频汇聚平台EasyCVR打造水库大坝智慧安防视频监控智能分析方案

一、项目背景 水库安全度汛是全国防汛抗洪工作的重点,水库监控系统对保障水库安全、及时排险意义重大。多数水库站点分散、位置偏,地形复杂,与监控中心相隔较远。 传统有线监控系统成本高、工期长,遇山河等阻碍时布…

list列表 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

全域互联,统一管控:EasyCVR构建多区域视频监控“一网统管”新范式

方案背景 在连锁店、企业分支机构、库房、工厂等多元化场景的视频监控项目中,设备品牌众多、型号繁杂,再加上现场网络环境的复杂性,使得跨区域视频联网面临诸多挑战。为有效解决视频监控接入兼容、上云联网等问题,…

魔改frida

魔改frida 魔改fridagit clone https://github.com/frida/frida-core.git安装子分支git submodule update --init --recursive安装ndk,设置环境变量 https://github.com/android/ndk/wiki 下载25版本 设置环境变量v…

云原生周刊:在 Kubernetes 上运行机器学习

云原生热点 KGateway v2.1:面向 AI 场景的高可用网关全新升级 KGateway 是一个面向云原生和 AI 场景的高性能网关,支持多租户、统一接入、智能路由与推理服务集成,兼容 Kubernetes Gateway API 标准。 在最新的 v2.…

ts相关

1、常用类型工具

从模型到智能体——OpenCSG 打造 AI 落地新范式

一、AI 焦虑的现实:技术太快、落地太慢 AI 的世界正在以指数级速度演进。 企业追逐最新模型,却发现落地难度越来越大——模型更新太快、算力成本太高、应用落地太慢。 OpenCSG 的观点是:企业不需要更多的模型,而需…

CF589H 题解

很好的题。但是 CF 主站上看不了。 首先需要观察到一个性质:对于一个包含 \(k\) 个关键点的连通块,一定可以凑出恰好 \(\lfloor\frac{k}{2}\rfloor\) 对路线。 首先这个东西显然是答案上界。然后考虑证明一定能够满足…

2025年上海电动阀门厂最新推荐榜,气动阀门/高压阀门/真空阀门/自控阀门/调节阀门/聚焦产品实力与特色服务竞争力深度剖析

随着工业自动化进程加速,以及石油化工、清洁能源等领域对特种阀门需求的增长,企业在选择阀门供应商时面临诸多考量 —— 如何辨别企业生产资质、如何匹配工况需求的阀门品类、如何规避设备运行中的潜在风险,成为当下…

【每日一面】async/await 的原理

基础问答 问:async/await 的原理是什么? 答:关键字本身就是 Promise 的语法糖,依托于生成器函数 (Generator) 函数能力实现的。async 关键字标志这个函数为异步函数,并且将返回结果封装为一个 Promise,await 则…

gmssl2.5常用命令

参考链接:https://zhuanlan.zhihu.com/p/618494579SM3计算摘要:echo -n hello | gmssl dgst -sm3 SM3计算HMAC:echo -n hello | gmssl dgst -sm3 -hmac 11223344556677881122334455667788SM4对输入字符加密:echo h…

上海电磁阀厂家最新竞争力评估推荐:高温电磁阀/高压电磁阀/防爆电磁阀/真空电磁阀/聚焦服务能力与产品特色

随着工业自动化程度不断提高以及高端流体控制需求增长,用户在选择电磁阀制造企业时面临诸多考量——如何评估企业技术实力、如何匹配不同工况的产品选型、如何保障设备长期稳定运行,成为工业采购决策中的核心关注点。…

如何在iPhone和Android设备上恢复已删除的电话号码

丢失手机上的联系人,感觉就像自己的一部分被抹去了。朋友、家人,甚至必要服务的联系人——所有信息都可能瞬间消失,而且似乎无法恢复。对一些人来说,失去商业联系人更是一场噩梦,会给他们带来巨大的经济压力。 无…

云栖实录:重构可观测 - 打造大模型驱动的云监控 2.0 与 AIOps 新范式

云监控 2.0 历经一年半的演进,已经完成了 ARMS、容器监控(Prometheus)、企业云监控的大部分系统整合、存储迁移等工作,剩余的 SLS CloudLens、基础云监控等也在下半年逐步迁移规划中。作者:司徒放(姬风) 纵观技…

2025 年房屋安全鉴定检测,山东房屋安全鉴定,房屋安全鉴定质量鉴定机构最新推荐,聚焦资质、案例、服务的五家机构深度解读

引言 房屋安全鉴定是保障建筑使用安全的核心环节,尤其在山东这样建筑类型丰富、部分区域面临灾后重建与抗震加固需求的地区,选择正规机构至关重要。当前市场存在资质参差不齐、数据造假等问题,为破解选择难题,本次…