根据子域将所有传入 HTTP 请求转发到两台服务器之一?

根据子域将所有传入 HTTP 请求转发到两台服务器之一?

我有两台 Debian Jessie 服务器。一台是我用于个人/爱好的家庭服务器,另一台是我用于工作的开发服务器。

为了论证,我们可以说......

个人:1.1.1.1
开发:1.1.1.2

我有一个域名。假设它是example.com.目前,Personal每隔几秒调用一次动态 DNS 服务,告诉 DDNS 服务(托管我的域)我的外部 IP 地址是什么。

从那里,我的路由器被设置为端口转发端口2122803000的所有请求Personal

我不想从 ISP 购买外部 IP,更不用说为每台服务器请求两个。另外,我希望这个设置是半便携式的。 IE无论连接到哪个路由器,只要端口打开,它就可以工作。

经过一点研究,我认为我的问题的答案是反向代理。我已经安装PoundPersonal.但是,我一直无法找到与我的情况足够接近的教程来进行逆向工程,并且发现缺少大量示例磅配置和一般文档。

这就是我希望发生的事情......

1) 路由器将端口 21、22、80 和 3000 上的端口转发到Personal这些相同的端口。
2)除非子域是“个人”,否则将Personal所有来自我的域的请求发送到。Development

实际上,这意味着......

Personal.example.com -> 个人 (1.1.1.1)
*.mydomain.com -> 开发 (1.1.1.2)

这可以用 Pound 来完成吗?如果是这样,我会在 Pound 的配置文件中放入什么?

答案1

域名调度仅适用于包含域名的协议,即 HTTP 和(大多数)HTTPS。其他协议(例如 FTP、SSH)不包含任何域名,而是客户端软件使用 DNS 将给定域名解析为 IP 地址,然后使用它进行连接。

所以,简短的回答是“不”。

相反,您可以将路由设置为提供其他不同的外部端口来路由最少使用的主机。例如,使用端口 20021、20022、20080 和 23000

或者,您可以采用隧道解决方案 (VPN) 以允许便携式主机访问本地网络。

编辑:我对你提供的端口列表感到困惑。如果您只对 HTTP 和 HTTPS(通常是端口 80 和 431)感兴趣,那么答案应该是“是”,并且我的胡言乱语应该被忽略。

相关内容