解决nginx代理SSE接口的响应没有流式返回
目录
- 现象
- 原来的nginx配置
- 解决
现象
前后端分离的项目,前端访问被nginx反向代理的后端SSE接口,预期是流式返回,但经常是很久不响应,一响应全部结果一下子都返回了。查看后端项目的日志,响应其实是流式产生的。推测是nginx配置问题
原来的nginx配置
server {listen 5909;listen [::]:5909;server_name localhost;location /multi-aiDemo2/ {proxy_pass http://。。。。;proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址client_max_body_size 20m;}location / {alias /home/wlsj/aiFront/aiDemo2/;index index.html;}}
解决
亲测使用proxy_http_version 1.1 或者 proxy_buffering off 都可以。我最后使用的是proxy_buffering off ,因为感觉它更贴合我的目的:

相关文档解释:
https://stackoverflow.com/a/13673298
https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive:
it is necessary to enable keepalive connections to upstream servers. The proxy_http_version directive should be set to “1.1” and the “Connection” header field should be cleared
文心一言对proxy_buffering off的解释:
启用与禁用代理缓冲
启用(默认行为):当 proxy_buffering 设置为 on(或者没有明确设置,因为 on 是默认值)时,Nginx 会将来自上游服务器的响应内容缓存在本地内存中,直到整个响应体被接收完毕或者达到了 proxy_buffers 和 proxy_buffer_size 指令所指定的缓冲区大小限制。这样做的好处是可以减少与上游服务器的交互次数,提高响应速度,并允许 Nginx 对响应内容进行一些处理(如 gzip 压缩)后再发送给客户端。
禁用(proxy_buffering off;):当设置为 off 时,Nginx 会将来自上游服务器的响应内容直接发送给客户端,而不会进行本地缓存。这意味着客户端会更快地开始接收数据,特别是对于那些需要快速开始接收响应首部的场景(如流媒体或实时数据服务)很有用。但是,这也可能导致客户端的响应时间更加依赖于上游服务器的响应速度和稳定性,因为 Nginx 不再对响应进行本地缓冲和预处理。
相关文章:
解决nginx代理SSE接口的响应没有流式返回
目录 现象原来的nginx配置解决 现象 前后端分离的项目,前端访问被nginx反向代理的后端SSE接口,预期是流式返回,但经常是很久不响应,一响应全部结果一下子都返回了。查看后端项目的日志,响应其实是流式产生的。推测是n…...
11 - TCPClient实验
在上一个章节的UDP通信测试中,尽管通信的实现过程相对简洁,但出现了通信数据丢包的问题。因此,本章节将基于之前建立的WIFI网络连接,构建一个基础的TCPClient连接机制。我们利用网络调试助手工具来发送数据,测试网络通…...
React框架搭建,看这一篇就够了,看完你会感谢我
传统搭建框架的方式 在2024年以前,我们构建框架基本上采用官方脚手架,但是官方脚手架其实大概率都不符合我们的项目要求,搭建完了以后往往需要再继续集成一些第三方的包。这时候又会碰到一些版本冲突,配置教程等,往往…...
【rust】rust条件编译
在c语言中,条件编译是一个非常好用的功能,那么rust中如何实现条件编译呢? rust的条件编译需要两个部分,一个是fratures,另一个是cfg。Cargo feature是一个非常强大的功能,可以提供条件编译和可选依赖项的高级特性&…...
一键文本提示实现图像对象高质量剪切与透明背景生成
按照提示词裁剪 按照边框裁剪 要实现您描述的功能,即通过一个文本提示就能自动从图片中切割出指定的对象并生成一个带有透明背景的新图像,这需要一个结合了先进的计算机视觉技术和自然语言处理能力的系统。这样的系统可以理解输入的文本指令,并将其转化为对图像内容的精确分…...
游戏客服精华回复快捷语大全
以黑神话悟空为代表的国内的游戏行业,最近发展非常迅猛,大量游戏玩家需要足够的游戏客服支持,这里整理了游戏客服精华回复快捷语,涵盖了接待客户,游戏级数,游戏外挂,游戏要求,游戏特…...
国内版Microsoft Teams 基础版部署方案
目录 前言Microsoft Teams简介部署前的准备 环境需求账户和许可网络要求部署步骤 初步配置和设置安装Microsoft Teams客户端Teams管理中心配置用户管理 用户添加与分配角色与权限管理通讯与协作 团队和频道管理即时消息和会议功能文件共享与协作安全性与合规性 数据保护措施合规…...
计算机网络 ---- OSI参考模型TCP/IP模型
目录 一、OSI参考模型 1.1 学习路线 1.2 OSI参考模型和TCP/IP模型 1.3 具体设备与具体层次对应关系 1.3.1 物理层 1.3.2 数据链路层 1.3.3 网络层 1.3.4 传输层 1.3.5 会话层、表示层、应用层 1.4 各层次数据传输单位 二、TCP/IP模型 2.1 学习路线 2.2 TCP/I…...
在Windows环境下部署Java的Web项目集成工具的整体流程和详细步骤
好的,以下是一份关于“Windows环境下部署Java的Web项目集成工具”的手把手操作流程,由浅入深,先整体后分部: 一、引言 在现代软件开发中,Java作为一种广泛应用的编程语言,其Web项目开发尤为常见。为了提高…...
9.18作业
提示并输入一个字符串,统计该字符串中字母、数字、空格、其他字符的个数并输出 代码展示 #include <iostream>using namespace std;int main() {string str;int countc 0; // 字母计数int countn 0; // 数字计数int count 0; // 空格计数int counto 0;…...
【算法】滑动窗口—最小覆盖子串
题目 ”最小覆盖子串“问题,难度为Hard,题目如下: 给你两个字符串 S 和 T,请你在 S 中找到包含 T 中全部字母的最短子串。如果 S 中没有这样一个子串,则算法返回空串,如果存在这样一个子串,则可…...
“Fast-forward“ in git-pull result
当你执行 git pull 并且结果显示 Fast-forward 时,这意味着你的本地分支可以直接快进到远程分支的最新提交,没有任何冲突或者需要合并的内容。具体来说,Fast-forward 是一种合并方式,它的特点是将当前分支的指针直接移动到远程分支…...
Oracle(133)如何创建表空间(Tablespace)?
在Oracle数据库中,表空间(Tablespace)是存储数据的逻辑单位,它由一个或多个数据文件组成。表空间是数据库数据管理的基本结构,了解如何创建表空间对于数据库管理员至关重要。 创建表空间的基本语法 创建表空间的基本…...
Linux中权限和指令
💥1、Linux基本指令 1.1 mv 指令 mv指令是move的缩写,用来移动或重命名文件、目录,经常用来备份文件或目录。 mv old_name new_name: 重命名文件或目录mv file /path/to/directory: 移动文件到指定目录 roothcss-ecs…...
本地镜像发布到阿里云
本地镜像发布到阿里云 登录阿里云容器镜像服务配置 Docker 登录阿里云容器镜像服务标记你的 Docker 镜像推送镜像到阿里云验证使用阿里云镜像注意事项 将 Docker 本地镜像发布到阿里云(Alibaba Cloud)容器镜像服务(Container Registry&#x…...
【Linux】【Vim】Vim 基础
Vim/Gvim 基础 文本编辑基础编辑操作符命令和位移改变文本重复改动Visual 模式移动文本(复制、粘贴)文本对象替换模式 光标移动以 word 为单位移动行首和行尾行内指定单字符移动到匹配的括号光标移动到指定行滚屏简单查找 /string标记 分屏vimdiff 文本编辑 基础编辑 Normal 模…...
计算机人工智能前沿进展-大语言模型方向-2024-09-18
计算机人工智能前沿进展-大语言模型方向-2024-09-18 1. The Application of Large Language Models in Primary Healthcare Services and the Challenges W YAN, J HU, H ZENG, M LIU, W LIANG - Chinese General Practice, 2024 人工智能大语言模型在基层医疗卫生服务中的应…...
ubuntu24安装vivado24(安装并解决若干错误)
目录 安装方法:问题1:解决办法: 问题2:解决方法: 安装完成: 安装方法: 注意:内存最好预留80G空闲的。 安装好大小: 安装依赖库: sudo apt-get update sud…...
CSS实现文本溢出省略号或完整显示
目录 前言1. 省略号2. 完整展示3. Demo 前言 文本内容超出容器宽度的问题,为了保持页面布局的整洁,通常会使用省略号来隐藏多余的内容 一共有两种方式: 设定省略号完整展示 1. 省略号 文本溢出时显示省略号 .item-value {flex-basis: 7…...
three.js PropertyBinding和PropertyMixer
PropertyBinding 对场景图中某一真实属性的引用,内部使用。 构造器 PropertyBinding( rootNode : Object3D, path, parsedPath ) -- rootNode: -- path -- parsedPath (可选) 属性 # .path : Number # .parsedPath : Number # .node : Number # .rootNode …...
TL494电源芯片避坑指南:常见设计误区与调试技巧
TL494电源芯片避坑指南:常见设计误区与调试技巧 在电源设计领域,TL494作为一款经典PWM控制芯片,凭借其稳定性和灵活性赢得了工程师的青睐。但就像任何工具一样,只有真正理解它的特性才能发挥最大价值。本文将带您深入TL494的设计细…...
基于Moondream2的工业质检系统:缺陷检测与分类
基于Moondream2的工业质检系统:缺陷检测与分类 1. 为什么传统质检方式正在被重新思考 产线上的质检员每天要盯着成百上千件产品,眼睛酸涩、注意力下降,漏检率悄悄爬升。一台设备表面划痕只有0.1毫米宽,人眼在连续工作两小时后&a…...
EasyAnimateV5-7b-zh-InP效果对比:不同Sampling Method(Flow/Euler)画质差异
EasyAnimateV5-7b-zh-InP效果对比:不同Sampling Method(Flow/Euler)画质差异 你是不是也遇到过这样的困惑:用同一个图生视频模型,同样的图片和提示词,只是换了个采样方法,出来的视频效果就天差…...
PyTorch 2.8镜像法律科技:庭审音视频→AI摘要+关键帧提取+证据链可视化
PyTorch 2.8镜像法律科技:庭审音视频→AI摘要关键帧提取证据链可视化 1. 镜像概述与法律科技应用场景 在司法数字化进程中,庭审音视频处理正面临三大挑战:海量数据难以快速消化、关键信息提取效率低下、证据呈现方式单一。PyTorch 2.8深度学…...
Starry Night Art Gallery效果展示:黄金渐变按钮交互+实时生成反馈
Starry Night Art Gallery效果展示:黄金渐变按钮交互实时生成反馈 1. 沉浸式艺术体验:当AI遇见文艺复兴 想象一下,你走进的不是一个冰冷的AI工具界面,而是一座数字艺术殿堂。四周是深邃的墨蓝色背景,如同梵高笔下的夜…...
中国信通院启动公文写作智能体评估,推动技术落地与规范发展
【导语:中国信通院在前期《智能体技术要求与评估方法》研制基础上,开展公文写作智能体技术规范编制,并联合多家单位共同参与。现正式启动首批评估工作,成果计划于2026年6月发布,将推动该技术落地与规范发展。】联合编制…...
忍者像素绘卷部署案例:高校数字媒体实验室低成本构建像素艺术教学平台
忍者像素绘卷部署案例:高校数字媒体实验室低成本构建像素艺术教学平台 1. 项目背景与需求分析 数字媒体艺术教育正面临新的挑战与机遇。某高校数字媒体实验室在2023年教学评估中发现: 传统像素艺术教学依赖商业软件,授权费用高昂学生创作受…...
基于Redis的4种延时队列实现方式及实战
什么是延时队列? 延时队列顾名思义,是指元素进入队列后,可以延时一定时间再被消费者取出执行。这与普通队列的区别在于,普通队列中的元素一旦入队就可以被立即消费,而延时队列中的元素需要等到指定时间后才能被消费。 为什么要使用Redis实现延时队列? 使用Redis实现延…...
Voyager复杂导航模式实现:底部导航、标签页和嵌套导航实战
Voyager复杂导航模式实现:底部导航、标签页和嵌套导航实战 【免费下载链接】voyager 🛸 A pragmatic navigation library for Jetpack Compose 项目地址: https://gitcode.com/gh_mirrors/voyag/voyager Voyager是一个专为Jetpack Compose设计的实…...
影刀+即刻:碎片化信息自动归类的联动玩法
影刀与即刻联动实现信息自动归类影刀RPA作为自动化工具,与即刻APP的推送功能结合,可高效管理碎片化信息。以下为具体实现方法:创建即刻机器人 在即刻APP中创建自定义机器人,设置关键词触发规则。例如设置"#工作""#…...
