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自动生成,经过验证可用

相关推荐
灰阳阳4 小时前
Dockerfile实践-构建Nginx镜像
运维·nginx·docker·dockerfile
三三有猫8 小时前
代理IP:按流量还是按IP/时长计费更划算?
网络·网络协议·tcp/ip
未来转换9 小时前
计算机网络之HTTP协议详解
网络协议·计算机网络·http
初中就开始混世的大魔王13 小时前
3.1 DDS 层-Core
开发语言·c++·网络协议·tcp/ip·信息与通信
有代理ip15 小时前
聚焦性价比:便宜动态IP在网络优化中的应用技巧
网络·网络协议·tcp/ip
wanhengidc15 小时前
云手机 流畅稳定 操作简单
服务器·网络·网络协议·安全·智能手机
ywlovecjy15 小时前
macOs安装docker且在docker上部署nginx+php
nginx·macos·docker
zl_dfq15 小时前
计算机网络 之 【https协议】(数字摘要、密钥、数字证书)
网络协议·计算机网络·https
tumeng071116 小时前
Linux(CentOS)安装 Nginx
linux·nginx·centos
北京耐用通信16 小时前
工业协议转换新选择:耐达讯自动化CC-Link I转EtherCAT网关深度解析
人工智能·科技·物联网·网络协议·自动化·信息与通信