
我有一个通过 CNAME 指向我的 ISP 分配的 IP 的域(如果我的 ISP 决定更改 IP,cname 会转到我的 noip 地址),我想将不同的子域路由到内部网络中的各种 IP:PORT 组合,但我不完全确定如何实现这一点。
目前,我让 nginx 充当几个不同子域的反向代理,并路由到适当的 apache 服务器。但我还想将子域路由到特定的 IP:port,以进行非 http 通信,例如 RDP 或 VPN。
这个想法是能够使用不同的子域名来访问我的服务,而不是使用端口转发来定向到正确的 IP:端口。
我有 ClearOS(CentOS6)作为我的网络和互联网之间的网关,iptables 可以工作吗?
最终结果应该是这样的
- rdp.example.com-> 192.168.1.1:3389
- vpn.example.come->192.168.1.5:1194
- www1.example.com -> nginx -> 192.168.1.1:80 (已设置)
- www2.example.com -> nginx -> 192.168.1.4:80 (已设置)
有人可以帮忙吗?
答案1
回答:
一般来说,对于在 TCP 或 UDP 内部运行的任意协议(因为在 IP 之上运行的其他协议不一定具有任何端口概念),您无法执行想要执行的操作,因为无法保证流量“流”内有任何信息允许进行此类路由。某些协议为了解决这个问题,确实在其协议中嵌入了名称信息(例如 HTTP,带有 Host 标头),并且对于这些协议,通常存在代理,它们将接收请求、确定所呈现的名称,然后将请求路由到适当的位置。其中一些代理已在其他答案中提及,如果这些代理还不够,如果您告诉我们您尝试代理的第 7 层协议,您无疑会收到适当的答案。
来源: https://serverfault.com/questions/96469/is-there-a-way-to-forward-a-port-based-on-subdomain