我有一个通过 NoIP 公开的家庭服务器,带有通配符域。
我有一些服务在某些 TCP 端口上运行(主要是游戏服务器),我正在尝试为每个服务“分配”一个子域。为此,我有一个具有多个 IP 的虚拟网络接口,我可以在其中发布同一类型服务的多个实例(例如,同一游戏的两个游戏服务器),并在所有实例上使用相同的端口。
我设置了一个代理管理器,用于根据子域名将 HTTP 请求代理到不同的站点(因此http://dashboard.example.com进入我的控制面板,http://amp.example.com进入我的应用程序管理器等)
由于所有子域名都指向同一个 IP 地址,而我无法更改这一点(因为这是我自己的公共 IP,而且我只有一个 IP),所以我需要将服务器局域网主机的连接代理到相应的虚拟地址。
我的代理管理器(Nginx 代理管理器)处理 TCP 代理,但它不检查子域,因此如果我在端口 6789 上运行两个服务(每个服务都在自己的虚拟主机上),我只能将连接代理到其中一个,或者使用外部的不同端口。该服务也将在所有子域上可用,这是我不想要的。
我怎样才能实现这个目标?
TL;DR:我想根据 TCP 连接所经过的子域,将 TCP 连接代理到不同的主机,就像 HTTP 代理一样