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

相关推荐
LCG元9 小时前
STM32实战:基于STM32F103的4G模块(EC20)HTTP通信
stm32·嵌入式硬件·http
饺子不吃醋13 小时前
深入理解HTTP:请求/响应、缓存机制、登录态与跨域
http
Arya_aa14 小时前
检疫登记模块图片上传,nginx自动映射地址
spring boot·nginx
全栈工程师修炼指南16 小时前
Nginx | 磁盘IO层面性能优化秘诀:error 日志内存环形缓冲区及小文件 sendfile 零拷贝技术
运维·网络·nginx·性能优化
ywgcsxue16 小时前
在麒麟V10上源码编译安装Nginx
linux·运维·服务器·nginx
Cyber4K20 小时前
【Nginx专项】基础入门篇-访问限制及访问控制
linux·运维·服务器·nginx
2501_9216494920 小时前
2026 量化策略回测的历史数据 API:从数据获取到策略验证
websocket·金融·restful·量化·回测·api文档
KevinCyao21 小时前
彩信http接口如何接入?采用POST方式提交多媒体附件的彩信示例
网络·网络协议·http
Arya_aa21 小时前
通过nginx访问文件资源
nginx
常利兵21 小时前
从0到1:Spring Boot 中WebSocket实战揭秘,开启实时通信新时代
spring boot·后端·websocket