【Nginx】Nginx代理WebSocket

1.websocket

WebSocket 是一种网络通信协议,它提供了在单个 TCP 连接上进行全双工(双向)通信的能力

假设需求:

把 ws://192.168.0.1:8088/ws-api/websocket/pushData代理到ws://192.168.0.156:8888/websocket/pushData;同时,在转发时去除ws-api前缀.

2.使用Nginx代理WebSocket

bash 复制代码
    # WebSocket 代理配置
    location ^~ /ws-api/ {
        proxy_pass http://192.168.1.156:8888/; # 写真实的服务器地址
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 86400;
        proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  • WebSocket 关键配置
  1. proxy_http_version 1.1:强制使用 HTTP 1.1 协议与后端通信。WebSocket 协议依赖 HTTP 1.1Upgrade 机制完成握手。Nginx 默认使用 HTTP 1.0 与后端通信,无法支持协议升级。
  2. proxy_set_header Upgrade $http_upgrade:将客户端的 Upgrade 请求头透传给后端服务器。$http_upgrade 变量捕获客户端请求中的 Upgrade 头(通常为 websocket)。后端服务器需通过 Upgrade: websocket 头识别 WebSocket 握手请求。
  3. proxy_set_header Connection "upgrade":修改 Connection 请求头为 upgrade,指示后端启用协议升级。与 Upgrade 头配合,告知后端需要将连接从 HTTP 升级为 WebSocket
  • 其他配置:
  1. proxy_read_timeout 86400设置长时间连接不超时;
  2. X-Real-IPX-Forwarded-For头用于传递客户端真实 IP,方便后端服务获取客户端信息。

!!!注意:ws://192.168.0.1:8088/ws-api/websocket/pushData 前面的 ws://192.168.0.1:8088 不用去掉,并且这个ip地址必须是当前nginx 服务器所在的ip地址才行。

相关推荐
Alex艾力的IT数字空间2 小时前
在 Kylin(麒麟)操作系统上搭建 Docker 环境
大数据·运维·缓存·docker·容器·负载均衡·kylin
陳10302 小时前
Linux:进程间切换与调度
linux·运维·服务器
邂逅星河浪漫4 小时前
【银行内网开发-管理端】Vue管理端+Auth后台开发+Nginx配置+Linux部署(详细解析)
linux·javascript·css·vue.js·nginx·html·前后端联调
SilentSamsara4 小时前
TCP 三次握手:连接建立失败的那些坑
运维·服务器·网络·网络协议·tcp/ip
code tsunami5 小时前
如何在车辆数据自动化中解决Cloudflare Turnstile
运维·microsoft·自动化
翼龙云_cloud6 小时前
亚马逊云代理商:CloudWatch Agent 全解析 5 步实现服务器监控
运维·服务器·云计算·aws·云服务器
Cyber4K7 小时前
【Nginx专项】基础入门篇:状态页、微更新、内容替换、读取、压缩及防盗链
linux·运维·服务器·nginx·github
awei09167 小时前
MinIO配置自定义crossdomain.xml跨域策略(Nginx反向代理实现)
xml·java·nginx
Bruce_Liuxiaowei8 小时前
顺藤摸瓜:一次从防火墙告警到设备实物的溯源实战
运维·网络·网络协议·安全
IpdataCloud9 小时前
效果广告中点击IP与转化IP不一致?用IP查询怎么做归因分析?
运维·服务器·网络