websocket多级nginx代理

在使用多层Nginx代理时,WebSocket的连接可能会遇到一些问题,因为WebSocket连接是持久化的,它需要Upgrade头部来确认升级到WebSocket协议。在多层代理的情况下,每层代理可能会修改或丢失这个Upgrade头部信息。

为了确保WebSocket能够在多层代理下正确工作,你需要确保每层代理都正确地处理WebSocket的Upgrade请求

以下是一个Nginx配置的例子,展示了如何在多层代理中正确配置WebSocket:

第一层Nginx配置

server {

listen 80;

server_name example.com;

location / {

proxy_pass http://backend;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

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;

}

}

第二层Nginx或应用服务器配置

upstream backend {

server backend1.example.com;

server backend2.example.com;

}

server {

listen 80;

server_name backend*.example.com;

location / {

proxy_pass http://websocket_backend;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

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后端配置

upstream websocket_backend {

server websocket_backend1;

}

server {

listen 80;

server_name websocket_backend*;

location / {

proxy_pass http://websocket_app_server;

proxy_http_version 1.1;

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;

}

}

来自百度搜索,AI自动生成,经过验证可用

相关推荐
qq_372006868 分钟前
浏览器http缓存问题
网络协议·http·缓存
科技小E1 小时前
国标GB28181设备管理软件EasyGBS:P2P远程访问故障排查指南(设备端)
网络协议·智能路由器·音视频·p2p
hgdlip3 小时前
手机IP地址:定义、查看与切换方法
网络协议·tcp/ip·智能手机
dengjiayue7 小时前
tcp 的重传,流量控制,拥塞控制
网络协议·tcp/ip
Aileen_0v012 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
花鱼白羊14 小时前
TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
服务器·网络协议·tcp/ip
苹果醋316 小时前
Golang的文件加密工具
运维·vue.js·spring boot·nginx·课程设计
总是学不会.20 小时前
第五篇:前后端如何“扯皮”——HTTP 在开发中的应用
java·网络·网络协议·http·开发
龙哥·三年风水21 小时前
workman服务端开发模式-应用开发-vue-element-admin封装websocket
分布式·websocket·vue
m0_748238271 天前
WebClient HTTP 请求问题处理模板(泛型响应、忽略 SSL 证书等)
网络协议·http·ssl