Nginx篇之实现nginx转发兼容HTTP和Websocket两种协议

Nginx实现同时兼容http协议和websocket协议

html 复制代码
map $http_upgrade $eop_gateway {
    default "eop-gateway-http";
    websocket "eop-gateway-ws";
}

# 控制 Connection header
map $http_upgrade $connection_upgrade {
    default "keep-alive";    # HTTP 请求
    websocket "upgrade";     # WebSocket 请求
}

upstream eop-gateway-http {
    server XXXXX:8080;
}

upstream eop-gateway-ws {
    server XXXXX:23643;
}

server {
    listen 8888;

    location / {
        proxy_pass http://$eop_gateway;

        # 通用设置
        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_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

参数解释:

重要的是这两行,它表明是websocket连接进入的时候,进行一个连接升级将http连接变成websocket的连接。

启用支持websocket连接:

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

proxy read timeout 表明连接成功以后等待服务器响应的时候,如果不配置默认为60s;

proxy_http_version 1.1;表明使用http版本为1.1

相关推荐
AIFQuant1 小时前
2026 全球股市实时行情数据 API 对比指南
python·websocket·金融·数据分析·restful
南梦浅1 小时前
Flask+Gunicorn+Nginx 校园众筹项目部署全流程(生产环境)
nginx·flask·gunicorn
REDcker2 小时前
libwebsockets完整文档
c++·后端·websocket·后端开发·libwebsockets
Hello.Reader3 小时前
Spring 新声明式 HTTP 客户端:HTTP Interface + RestClient,把“调用外部 API”写成接口
java·spring·http
IP搭子来一个3 小时前
什么是http代理,http代理的作用是什么?
网络·网络协议·http
卿着飞翔3 小时前
win11安装配置nginx并部署ruoyi前端
运维·前端·nginx
xiaobangsky3 小时前
使用Nginx配置本地静态资源iscweb访问后端服务fs-isc
运维·nginx
wb043072013 小时前
TCP/IP(IP、TCP、UDP、ICMP)与 HTTP/HTTPS
tcp/ip·http·udp
L1624764 小时前
LVS+Keepalived+Nginx+Tomcat 高可用集群超详细配置手册
nginx·tomcat·lvs
极安代理16 小时前
HTTP代理是什么?作用与场景全面解析
网络·网络协议·http