解决SSE流被Nginx缓存的问题

 更新时间:2023年10月16日 09:51:10   作者:路比船长  
如果你的服务使用了nginx网关,可能会出现nginx缓冲sse流的问题,导致的现象是,客户端调用sse接口时,流数据并不是一条条出现的,而是一口气出现的,本文将给大家介绍如何解决SSE流被Nginx缓存的问题,需要的朋友可以参考下

问题

如果你的服务使用了nginx网关,可能会出现nginx缓冲sse流的问题,导致的现象是,客户端调用sse接口时,流数据并不是一条条出现的,而是一口气出现的,原因就是nginx网关对流数据进行了缓存。

单个Nginx的情况

如果你的客户端和服务器之间只存在一层nginx网关,可以通过在接口添加X-Accel-Buffering=no的响应header,来告诉nginx不要对响应数据进行缓存。

多个Nginx的情况

但很多时候我们所在的服务环境可能不止一个nginx网关。拿我们的服务为例子,因为某些历史遗留原因,客户端到服务端实际上存在两个nginx网关,一个是公司层面的网关,一个是用于k8s反向代理的网关,这个时候单纯设置X-Accel-Buffering=no就无效了。

原因是响应数据首先到达第一个nginx,此时这个nginx会消耗掉这个header,然后将数据透传到下一个nginx,此时第二个nginx由于默认会缓存数据,所以sse流就再一次被缓存了。

解决办法是在第一个nginx的配置里面,继续加上这个header,表示这个路径下的请求需要带上这个header,这样第二个nginx才能继续收到这个header并且不缓存数据。

  location /path {
      ...
      add_header X-Accel-Buffering "no";
      ...
  }

客户端与服务器之间有n个nginx,就要至少在n-1个nginx里面配置好这个header。

到此这篇关于解决SSE流被Nginx缓存的问题的文章就介绍到这了,更多相关SSE流被Nginx缓存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Nginx请求转发配置指南

    Nginx请求转发配置指南

    Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器,本文档将介绍如何使用 Nginx 配置请求转发,并解释一些常用的配置参数,需要的朋友可以参考下
    2024-10-10
  • 浅谈nginx读写锁的实现逻辑

    浅谈nginx读写锁的实现逻辑

    本文主要介绍了浅谈nginx读写锁的实现逻辑,是通过自旋锁来实现的,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • 服务器nginx权限被拒绝解决案例

    服务器nginx权限被拒绝解决案例

    这篇文章主要为大家介绍了服务器nginx权限被拒绝解决案例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Nginx代理Partainer的具体使用

    Nginx代理Partainer的具体使用

    本文主要介绍了Nginx代理Partainer的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Nginx使用Lua模块实现WAF的原理解析

    Nginx使用Lua模块实现WAF的原理解析

    waf是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,本文重点给大家介绍Nginx使用Lua模块实现WAF的原理,需要的朋友参考下吧
    2021-09-09
  • Rhit高效可视化Nginx日志查看工具

    Rhit高效可视化Nginx日志查看工具

    一个格式化 Nginx 日志,可快速阅读、查看 Nginx 日志的工具。 可以每秒处理百万行日志数据,感兴趣的可以了解一下
    2021-10-10
  • Nginx常用技巧使用实例汇总

    Nginx常用技巧使用实例汇总

    这篇文章主要介绍了Nginx常用技巧使用实例汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Forever+nginx部署Node站点的方法示例

    Forever+nginx部署Node站点的方法示例

    这篇文章主要介绍了Forever+nginx部署Node站点的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • nginx内部访问特性如何实现静态资源授权访问

    nginx内部访问特性如何实现静态资源授权访问

    这篇文章主要介绍了nginx内部访问特性如何实现静态资源授权访问方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Nginx Lua Waf 插件一键部署的操作示例

    Nginx Lua Waf 插件一键部署的操作示例

    这篇文章主要介绍了Nginx Lua Waf 插件一键部署的操作示例,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-07-07

最新评论