
cloudamqp/websocket-tcp-relayWebSocket TCP Relay是一个轻量级服务器,主要功能是将WebSocket流量中继到任意TCP服务器,同时支持从指定目录提供静态文件服务。它适用于需要通过WebSocket协议访问传统TCP服务的场景,提供灵活的配置选项和多种部署方式。
--webroot)提供静态HTML、CSS、JavaScript等文件通过Docker/Podman可快速部署,镜像已发布至Docker Hub。基本运行命令:
bashdocker run --rm -it -p ***:*** cloudamqp/websocket-tcp-relay --upstream tcp://container:5672
yamlversion: '3' services: websocket-relay: image: cloudamqp/websocket-tcp-relay ports: - "***:***" volumes: - ./webroot:/app/webroot # 挂载静态文件目录 - ./certs:/app/certs # 挂载TLS证书目录(如需启用TLS) command: --upstream tcp://backend-service:5672 --webroot /app/webroot restart: unless-stopped
Usage: websocket-tcp-relay [arguments] -u URI, --upstream=URI 上游TCP服务器地址(例如:tcp://localhost:5672 或 tls://127.0.0.1:5671,必填) -b HOST, --bind=HOST 绑定地址(默认值:localhost) -p PORT, --port=PORT 绑定端口(默认值:***) --tls-cert=PATH TLS证书+链路径(默认值:./certs/fullchain.pem) --tls-key=PATH TLS证书密钥路径(默认值:./certs/privkey.pem) -P, --proxy-protocol 上游是否期望PROXY协议(默认值:false) -w PATH, --webroot=PATH 静态文件服务目录(默认值:./webroot) -c PATH, --config=PATH 配置文件路径 -v, --version 显示版本号 -h, --help 显示帮助信息
支持INI格式配置文件,示例如下:
ini[main] # 上游TCP服务器地址(必填) upstream = tcp://127.0.0.1:5672 # 绑定地址 bind = 127.0.0.1 # 绑定端口 port = *** # 是否启用PROXY协议(true/false) proxy-protocol = false # 静态文件服务目录 webroot = /var/lib/wwwroot # TLS证书路径 tls-cert = /etc/ssl/certs/fullchain.pem # TLS证书密钥路径 tls-key = /etc/ssl/private/privkey.pem
使用配置文件启动:
bashdocker run --rm -it -p ***:*** -v ./config.ini:/app/config.ini cloudamqp/websocket-tcp-relay --config /app/config.ini
启用TLS加密(WSS协议)需指定证书路径,Docker环境中通过挂载证书目录实现:
bashdocker run --rm -it -p ***:*** \ -v ./certs:/app/certs \ cloudamqp/websocket-tcp-relay \ --upstream tcp://container:5672 \ --tls-cert /app/certs/fullchain.pem \ --tls-key /app/certs/privkey.pem
注:
./certs目录需包含fullchain.pem(证书链)和privkey.pem(私钥)文件。
http://<服务器地址>:<端口>/文件名访问--webroot目录下的静态文件ws://<服务器地址>:<端口>验证中继功能
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务