当前位置: 首页 > article >正文

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

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

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


http://www.kler.cn/a/415515.html

相关文章:

  • 亚马逊开发视频人工智能模型,The Information 报道
  • springboot/ssm大学校园生活信息平台Java校园活动论坛交流问卷系统web源码
  • gitee:删除仓库
  • ClamAV 在 CentOS 的开发版本 `clamav-devel`
  • HarmonyOS(60)性能优化之状态管理最佳实践
  • 【数据结构和算法】--N叉树中,批量的目标节点到根节点的路径
  • [CA] 尝试深入理解core.cpp -1
  • C++11-lambda表达式
  • mac maven编译出现问题
  • 回文链表(java)
  • Swift——类与结构体
  • 力扣刷题TOP101:6.BM7 链表中环的入口结点
  • ClickHouse 中利用Map类型存储多key数组并进行高效查询
  • 喜欢发光的自己
  • 【Electron学习笔记(四)】进程通信(IPC)
  • k8s集成skywalking
  • Python 3 教程第40篇(requests 模块)
  • rabbitmq 启动异常问题排查
  • TransVG 代码配置及一些小细节
  • 《 C++ 点滴漫谈: 二 》编程语言之争:从 C 到 C++,两代语言的技术传承与演化,谁更适合你的项目?
  • 青训营-豆包MarsCode技术训练营试题解析九
  • 软件设计模式复习
  • 火语言RPA流程组件介绍--键盘按键
  • Scala学习记录,统计成绩
  • ADAM优化算法与学习率调度器:深度学习中的关键工具
  • 深入学习MapReduce:原理解析与基础实战