Gateway API - Apache APISIX 安全WebSocket(WSS)配置问题咨询
Apache APISIX WSS 协议配置实操指南
Apache APISIX 完全支持安全 WebSocket(WSS)协议连接,WSS 连通失败多为 SSL 证书、上游配置、路由匹配三个环节的疏漏,以下是可直接落地的完整配置流程:
一、前置校验
- 首先为 APISIX 接入域名绑定有效 SSL 证书,可在控制台「SSL」菜单上传对应域名的公钥、私钥,证书域名必须和客户端发起 WSS 请求的域名完全匹配,域名不匹配会直接触发握手失败。
- 单独校验上游音频识别引擎的 WSS 服务可用性,跳过 APISIX 直接用工具测试上游:
wscat -c wss://你的上游服务地址/路径,可正常连接即说明上游服务无异常。
二、核心路由配置调整
你截图中的 WebSocket 开关为基础必开项,还需同步调整以下配置:
- 匹配规则配置
- 若使用域名匹配路由,确保路由绑定的域名和 SSL 证书绑定域名完全一致
- 路径匹配规则和上游 WSS 服务的路径完全对应,如上游路径为
/ws/asr,路由匹配路径可设为完全匹配/ws/asr或前缀匹配/ws/* - 路由「高级设置」中的协议选项必须勾选 HTTPS,WSS 握手依赖 HTTPS 协议完成,仅开启 HTTP 无法建立连接
- WebSocket 支持开启:勾选你截图中的 WebSocket 开关即可,无需调整额外参数
- 上游服务配置
- 上游 Scheme 必须选择
https:普通 WS 协议对应上游http,WSS 协议对应上游https,此处为最常见的配置错误点 - 上游端口填写上游 WSS 服务的实际端口,默认端口为 443,自定义端口需同步填写对应值
- 上游 Scheme 必须选择
三、异常兜底配置
完成上述配置仍无法连通的话,可调整以下配置:
- 若上游 WSS 服务使用自签名证书,需在路由配置中开启「跳过上游证书验证」选项,避免 APISIX 校验上游证书失败中断连接
- 按需调整 APISIX 配置文件
config-default.yaml中的 WebSocket 超时参数,避免大体积音频传输过程中连接被主动断开:
websocket: timeout: 60000 # 单位为毫秒,可根据音频最长传输时长调整
四、适配场景的替代方案
如果不想做复杂配置,也可选择以下完全开源免费的方案:
- 若服务部署在 K8s 集群,可使用 APISIX Ingress Controller,Ingress 层面原生支持 WSS 代理,配置逻辑更简化
- 基于 OpenResty 自研轻量代理,仅需添加
proxy_set_header Upgrade $http_upgrade;、proxy_set_header Connection "upgrade";两行核心配置即可实现 WSS 代理,再按需集成 JWT 认证、限流模块即可满足需求,灵活度更高。
内容的提问来源于stack exchange,提问作者BDrofsky
相关产品推荐
相关产品推荐

