TCP 应用
OpenResty Edge 支持作为 TCP 代理服务,可以在四层 TCP 上做流量的转发,以及相关的配置。
默认 Edge 并没有开放 TCP 代理的端口,需要在全局配置中,开启需要的 TCP 代理端口。
我们进入 网关集群 => 网关分区 页面,可以看到所有的分区,以及其开放的不同类型的端口。

我们点击「新增端口」,输入我们希望增加的端口,端口类型选择 tcp。

点击保存,我们就可以在当前列表看到这个端口。 此时该分区对应的网关节点,将会在 TCP 层监听这个端口。
我们现在进入 应用 => Stream,这可以看已经创建好的 Stream 类型的应用。

点击新建应用,类型选择 TCP,输入刚才新增的端口(也可以加更多的端口),点击保存,一个 TCP 代理应用就创建好了。
创建好应用之后,最主要的工作是配置代理转发规则。 我们需要先创建好上游,在上游页面,我们可以看到新增上游的按钮。
![]()
点击它新增上游,输入上游名称,以及上游节点的地址和端口信息。

点击保存,上游就创建好了。

接下来,进入预处理阶段,点击新建规则,我们需要创建一条转发规则。

我们开启代理,选择代理到新建的上游。

点击保存,新的转发规则就创建好了。 接下来,我们需要发布刚才的这些配置变更。 进入发布页面,我们可以看到还未发布的配置变更。

点击发布按钮,可以选择输入一些备注信息,然后再点击发布,很快这些配置就同步到对应分区的网关节点了,一个 TCP 代理服务就已经在运行了。

上游 PROXY 协议
上游 PROXY 协议 v2 和版本选择功能在 OpenResty Edge 26.12.1-1 中首次引入。
网关可以向后端发送 PROXY 协议头,以保留客户端连接信息。后端必须支持所选的协议版本。 此设置与网关监听端口接收 PROXY 协议的开关相互独立。
TCP、UDP、TLS 透传及 SSL/TLS 卸载应用均可通过应用配置 API 选择上游协议版本。
它们在 API 中对应的应用类型分别为 tcp、udp、tls 和 ssl。
UDP 上游应使用 v2,且后端必须能够解析包含 UDP 传输标识的 PROXY 协议 v2 报文。
PUT /admin-api/applications/{type}/{id}/config
Content-Type: application/json
{"enable_proxy_protocol": true, "proxy_protocol_version": 2}
enable_proxy_protocol控制是否向上游发送协议头。proxy_protocol_version接受数字1或2,默认为1。 关闭 PROXY 协议会保留所选版本,供下次启用时使用。- 将
proxy_protocol_version设置为 JSONnull会清除已保存的值。 后续GET /admin-api/applications/{type}/{id}/config响应会省略该字段, 发布时缺失的版本按1处理。
修改配置后需要发布应用。现有应用以及未指定版本的已发布配置继续使用 v1。 控制台目前提供启用或关闭开关,版本选择通过 API 完成。 自定义 EdgeLang 规则请参阅 enable-proxy-protocol。
版本要求
使用此功能需要 OpenResty Edge 26.12.1-1 或更新版本。
发布 v2 应用配置前,请确保所有承载该应用的网关均已升级到支持该功能的版本。
旧版本网关可能忽略版本设置并继续发送 v1,且不会报错。
访问日志转义
TCP 应用使用 全局配置 > 通用 > 日志 中的 Stream 访问日志格式。
Escape 支持 none、default 和 json,默认值为 none。日志值嵌入 JSON 时
使用 json;使用 default 可采用 Stream 日志模块的标准转义。