欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > spring cloud gateway 转发 ws 流量

spring cloud gateway 转发 ws 流量

2025/4/19 10:06:26 来源:https://blog.csdn.net/qq_39314099/article/details/147160027  浏览:    关键词:spring cloud gateway 转发 ws 流量

由于项目中,存在ws服务,所以统一经过网关转发流量。
实际的链路:
在这里插入图片描述

  1. nginx的配置:
    http 块的配置
	map $http_upgrade $connection_upgrade {default upgrade;''      close;}

这里使用map的原因:可以根据请求头的 $http_upgrade 值动态设置 Connection 头

  • 如果 $http_upgrade 存在(非空),说明是 WebSocket 请求 → 设置 Connection: upgrade
  • 如果为空(普通请求)→ 设置 Connection: close
    这样就能安全地区分 WebSocket 和普通请求,避免不必要的问题。

server 块的配置

	location / {proxy_pass http://apibackend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;# 保留 WebSocket 所需头部proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;# 防止 WebSocket 被缓存或打断proxy_read_timeout 3600s;proxy_send_timeout 3600s;}
  1. spring cloud gateway 的转发设置
    gateway:routes:- id: wsuri: ws://localhost:4443predicates:- Path=/**# 只匹配ws头- Header=Upgrade, websocketfilters:# 确保原始请求头中的 Host 不被网关自动替换成目标服务地址- PreserveHostHeader=true

根据特定的ws请求头来转发,避免根路径匹配,影响其他正常http请求

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词