微服务下 WebSocket服务 连接time out 处理方式

概述

最新上线了一个WebSocket 服务,在本地连接和测试都可以,都是通过的,就这样开始上线了,部署线上之后,怎么连接都链接不成功,这个是docker 部署的,在域名进行转发,这个操作都是平台替我们做的,我们只有业务代码和逻辑,我第一反应是gatway 里面需要配置什么,我本地测试和转换都是会没有出现类似的问题。

问题解决

在容器中,调试也可以连接就是在,通过子域名连接就会出现失败问题。
那就出现在nginx 转发的过程了。
Nginx配置WebSocket
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

Nginx 作为高性能的 HTTP 和反向代理服务器,在处理 WebSocket 协议时,需要进行特定的配置来支持 WebSocket 的连接和通信。本文将详细介绍如何在 Nginx 中配置 WebSocket。

配置nginx

server {
    listen 80;
    server_name your_domain.com;
 
    location /ws/ {
        proxy_pass http://backend_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }

解释配置项
proxy_pass http://backend_server;:指定后端 WebSocket 服务的地址。
proxy_http_version 1.1;:设置代理使用的 HTTP 版本为 1.1,这是 WebSocket 所必需的。
proxy_set_header Upgrade $http_upgrade;:传递 Upgrade 头信息给后端服务器,这告诉服务器客户端希望升级到 WebSocket 协议。
proxy_set_header Connection “upgrade”;:传递 Connection 头信息,用于控制或指定当前连接或消息体的性质。
proxy_set_header Host $host;:传递原始请求中的主机头信息给后端服务器。

成功

连接成功。https 和 wss 都是可以的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐观开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值