Nginx反向代理配置流式响应

2023-11-01

Nginx 是通过缓存响应内容来处理请求的。也就是说,当 Nginx 接收到完整的响应后,才会将其发送给客户端,所以默认不支持流式响应,这里讲讲 Nginx 反向代理中怎么配置流式响应?

Nginx 流式响应

一、使用背景

最近使用 Egg.js 搭建自动化部署服务,其中有个地方需要开启一个子进程执行 shell 脚本,因为脚本中有大量耗时任务,如:build 编译打包,zip 文件压缩,unzip 解压等等。
为了将脚本每一步的执行日志信息返回到前端进行展示,所以就选择使用流式接口返回结果。
在本地 localhost 环境可以正常进行流式响应,但是发布到 CentOS 服务器上使用 Nginx 反向代理后,每次都是等待脚本全部执行完,才会一次性返回所有结果信息,这显然不是 stream 流式响应。

stream 其他使用场景:像是 ChatGPT 这类 AI 产品,在聊天时的 打字机效果,就是 stream 流式响应的一种实现。

二、nginx配置流式响应

关闭响应缓存:proxy_buffering off

location /api {
    proxy_buffering off; # 关闭响应缓存,添加这一行
    proxy_pass http://127.0.0.1:7001;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

欢迎访问:天问博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx反向代理配置流式响应 的相关文章

  • ./manage.py 使用 https 运行服务器

    manage py 运行服务器 0 0 0 0 8000 我使用上面的行作为我从 github 借用的代码的一部分 https github com ribeiroit boh puppet https github com ribeiro
  • 通过 nginx 入口控制器进行基本身份验证

    我正在使用 nginx 入口控制器 https kubernetes github io ingress nginx deploy https kubernetes github io ingress nginx deploy 在 AWS
  • Kong - 验证上游 ssl(ssl_proxy 打开)

    我已经成功为 API 安装了 kong 网关 该 API 通过上游负载平衡到多个目标 应用程序服务器 现在 我有一个我的应用程序服务器的自签名证书 kong 和目标之间的 ssl 握手应该失败 我推断 kong 不验证上游证书 经过一些研究
  • 如何将亚马逊颁发的免费证书配置到nginx.config

    我已经安装了nginx服务器在Amazon Linux 2环境 在创建弹性负载均衡器期间 我创建了 Amazon 的免费证书 现在 我想通过以下方式访问我的服务器https port 443 我该如何配置这个SSL证书在nginx conf
  • Kubernetes nginx 入口控制器返回 502,但仅适用于 AJAX/XmlHttpRequest 请求

    我有一个在 nginx 入口控制器后面运行 Kubernetes 的 Web 应用程序 它对于请求浏览工作正常 但来自浏览器的任何 AJAX XMLHTTPRequest 都会从 nginx 收到 502 错误 我捕获了常规请求和 AJAX
  • nginx 将虚拟目录重写为文件

    这应该很容易做到 但我的头撞在墙上了 如果我收到对 www mysite com mypath 的请求 我想提供 www mysite com myotherpath thisfile html 的内容 我如何使用 nginx 配置来做到这
  • `uwsgi_modifier1 30` 指令没有按照记录从 PATH_INFO 中删除 SCRIPT_NAME

    这是我的 nginx 虚拟主机配置 debian cat etc nginx sites enabled mybox server listen 8080 root www index index html index htm server
  • nginx - 记录 SSL 握手失败

    我正在运行启用了 SSL 的 nginx 服务器 我的协议 密码设置相当安全 我已经在 ssllabs com 上检查过它们 但是 因为这是一个由我无法控制的 http 客户端调用的 Web 服务 所以我担心兼容性 重点是 有没有办法在我的
  • kubernetes nginx ingress 无法将 HTTP 重定向到 HTTPS

    我有一个托管在 Google Cloud 平台中的网络应用程序 该应用程序位于负载均衡器后面 而负载均衡器本身位于入口后面 入口设置了 SSL 证书 并按预期接受 HTTPS 连接 但有一个问题 我无法让它将非 HTTPS 连接重定向到 H
  • nginx docker 容器:502 错误网关响应

    我有一个服务监听 8080 端口 这不是一个容器 然后 我使用官方镜像创建了一个 nginx 容器 docker run name nginx d v root nginx conf etc nginx conf d p 443 443 p
  • 如何在 iOS 中使用 AVPlayer 缓冲音频?

    我想播放来自互联网的流音频 我编写了播放流的代码 但它没有任何缓冲区 因此如果信号较弱 应用程序将停止播放音频 这是我的代码 import UIKit import AVFoundation import MediaPlayer impor
  • WebSockets 监听 UNIX 域套接字?

    是否可以在 nginx 服务器后面设置一个 WebSockets 服务器来处理 UNIX 域套接字上的连接 我目前在同一台计算机上有多个 WebSocket 服务器实例 并且存在端口共享问题 所有实例都必须分配一个唯一的端口 我想避免这种情
  • 我可以在 Nginx Conf 中添加多少个服务器块

    知道我可以在 Nginx 配置中添加多少个服务器块吗 我需要将它用于具有多个子域的反向代理 每个客户端一个子域 它能成功支持 10 000 个服务器块吗 有没有相关的基准研究 这实际上并不是一个你有多少人的问题can但你有多少 能够妥善处理
  • 将代码从 htaccess 重写为 nginx 配置?

    我在将 htaccess 文件中的重写代码实现到 nginx 配置中时遇到问题 我已经尝试过生成器 http winnginx com htaccess http winginx com htaccess用于生成我的重写 代码 我的ngin
  • 常规请求期间 Django AJAX 请求未通过

    我有一个带有登录网页的 Django 站点 当提交页面上的登录表单时 它会执行登录视图 该视图会在其中运行一个需要很长时间处理 30秒左右 的函数 因此 为了在登录期间向客户端显示进度 一旦提交表单 登录页面上的 JS 函数就会开始向服务器
  • nginx位置正则表达式,匹配多次

    如何在 nginx 位置正则表达式中多次匹配 看来 x x 语法永远不起作用 例如 location abc w 1 3 从来不工作 您必须引用包含以下内容的位置 or 人物 location abc w 1 3 否则 nginx 将其解析
  • 使用 Nginx 在 Docker 容器内部署带有路由器的 Angular2

    我正在尝试部署一个使用框架的路由器功能的 Angular 2 但在 docker 容器内使用 nginx 为其提供服务时遇到一些问题 由 angular cli 构建的 Angular 应用程序具有如下文件结构 dist 08c42df75
  • Rails/Nginx 中的超时——最佳实践

    我正在开发一个应该在 Nginx 服务器上运行的 Rails 应用程序 根据输入 应用程序可能需要很长时间来处理请求 或者在出现错误时挂起 因此我想防止进程永远运行 除了确保客户端收到超时信号的 Nginx 配置之外 我想我可能仍然需要确保
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • Nginx docker容器代理传递到另一个端口

    我想在 docker 容器中运行 Nginx 它监听端口 80 并且当 url 以 word 开头时 我希望它 proxy pass 到端口 8080api 我有一些网络应用程序侦听端口 8080 这在没有 docker 的情况下对我来说一

随机推荐

  • java中方法名,对象名,变量名,标识符,关键字的规则

    java中方法名 对象名 变量名 标识符 关键字的规则 总绪 方法名 对象名 变量名 标识符 关键字 总绪 所有命名规则必须遵循以下规则 1 名称只能由字母 数字 下划线 符号组成 2 不能以数字开头 3 名称不能使用JAVA中的关键字 4
  • 机试之前最后的知识点总结。

    题目描述 C 头文件大全 解题思路一 include
  • 敏捷Agile: Epic vs UserStory vs Task

    Epic Story Task Epic Epic是User Story逻辑上的集合 一个Epic可以被break down成多个小的User Story 一个Epic可能需要多个Sprint才能完成 User Story vs Task
  • TensorFlow各版本下载地址

    TensorFlow各版本自主下载地址 cpu版本 pip install 链接 https pypi python org pypi tensorflow 2 0 0 下载地址链接 https pypi org project tenso
  • MATLAB实现基本的PSO粒子群算法优化目标函数(求函数最小值的解),写成函数的形式,并举例演示如何使用

    粒子群优化算法 Particle Swarm Optimization 是一种进化计算机技术 evolutionary computation 源于对鸟类捕食行为的研究 是一种基于迭代的优化工具 事实上 像PSO这种同属于元启发式优化算法有
  • java中静态代码块详解

    今天在项目中看到这行代码 静态代码块 很久没用静态代码块了 今天来复习一下 依旧按照为什么 是什么 怎么用 的思想 去学习 为什么 先说说代码中为什么要使用这种写法吧 还记得静态代码块的特点吗 随着类的加载而执行 而且只执行一次 对 没错
  • 求求你们了,MyBatis 批量插入别再乱用 foreach 了,5000 条数据花了 14 分钟。。...

    近日 项目中有一个耗时较长的Job存在CPU占用过高的问题 经排查发现 主要时间消耗在往MyBatis中批量插入数据 mapper configuration是用foreach循环做的 差不多是这样 由于项目保密 以下代码均为自己手写的de
  • Windows获取CPU、内存和磁盘使用率脚本

    获取CPU使用率脚本 vbs 另存为cpu vbs On Error Resume Next Set objProc GetObject winmgmts root cimv2 win32 processor cpu0 Wscript Ec
  • C语言:输出1000~3000年中所有的闰年,每5年换一行

    C语言 输出1000 3000年中所有的闰年 每5年换一行 题目 分析 代码 题目 编写程序 输出1000 3000年中所有的闰年 每5年换一行 分析 判断闰年的条件为 能被4整除但不能被100整除 或者能被400整除 代码 include
  • 《Vision Transformers: State of the Art and Research Challenges》论文翻译阅读

    作者 Bo Kai Ruan Hong Han Shuai Wen Huang Cheng 概要 Transforme在自然语言处理中取得了巨大的成功 由于Transformer的自注意机制具有强大的能力 研究人员开发vision tran
  • C++ 聚合类(Aggregate Class)

    C 聚合类 Aggregate Class 文章目录 C 聚合类 Aggregate Class 概述 聚合类定义 聚合类的特性 value initialized 聚合类的初始化方法 union 聚合 总结 概述 该篇文章是用于梳理在学习
  • 安装mysql中遇到的错误:

    1 安装报错 Install Remove of the Service Denied 解决方案如下 2 安装报错 The service already exists 解决方案如下 3 安装报错 Can t create test fil
  • 真机上,微信小程序弹出层中使用textarea组件无法显示文本的问题

    真机上 微信小程序弹出层中使用textarea组件无法显示文本的问题 解决思路 文章链接 最近开发微信小程序发现了一个BUG 最后莫名奇妙地解决了 隐隐约约地感觉和微信小程序地textarea组件的z index层级有关 没有去深究其中原理
  • 【前端知识之Vue】diff算法流程

    前言 本系列主要整理前端面试中需要掌握的知识点 本节介绍diff算法流程以及相关例子 如果想看源码推荐YK菌的 Vue源码 图解 diff算法 与 虚拟DOM snabbdom 最小量更新原理解析 手写源码 updateChildren哦
  • IntelliJ IDEA-配置文件位置

    关于配置文件的位置 一旦开始使用IDEA之后 就需要做很多的配置相关工作 使得IDEA越来越符合你的个人习惯 让你使用起来得心应手 而这些配置信息 都保存在C盘 比如我的就会默认保存在如图所示的位置 C Documents and Sett
  • flutter loading前一个界面关闭后一个界面的loading

    import package flutter cupertino dart import package flutter material dart import package flutter easyloading flutter ea
  • H5 架构和原生架构的区别

    1 App 的 3 种开发方式 表面上看 手机 App 都是同样的东西 就是手机上的应用程序 点击图标就能运行 但是它们的底层技术不一样 按照开发技术 App 可以分成三大类 原生应用 简称 nativeApp Web 应用 简称 WebA
  • 阿里云轻量应用服务器mysql远程连接教程

    阿里云轻量应用服务器mysql远程连接教程 打开轻量应用服务器控制台 打开防火墙 点击添加规则 打开服务器命令行 可以使用Xshell等软件 在阿里云控制台开放3306端口后后在linux系统中也要开放3306端口 在服务器中开放防火墙33
  • esp32搭建lvgl

    platformio 下载两个库 TFT eSPI lv arduino 3 0 1对应lvgl 7 2 7 5对应lvgl6 pio libdeps tft espi user Setup h 驱动芯片选择 颜色顺序 分辨率选择 不同芯片
  • Nginx反向代理配置流式响应

    Nginx 是通过缓存响应内容来处理请求的 也就是说 当 Nginx 接收到完整的响应后 才会将其发送给客户端 所以默认不支持流式响应 这里讲讲 Nginx 反向代理中怎么配置流式响应 一 使用背景 最近使用 Egg js 搭建自动化部署服