我有一个域名 www.example.com,它指向我家里的 VPS #1 (192.168.1.2:80) 上的网站 #1...
我想获取另一个域名并将其指向我的同一个公共 IP 地址,但访问我的家庭网络中的另一个 VPS(192.168.1.3:80)...
如果不可能,那么托管公司如何做到?我怀疑他们有没有数千个公共 IP 地址?!
答案1
如果不可能,那么托管公司如何做到?我怀疑他们有没有数千个公共 IP 地址?!
当然,他们有数千个公共 IP 地址,单个 /16 就有超过 65,000 个 IP 地址。
但您可以使用反向代理并将两个站点都指向该站点,并让它代理到您的内部服务器(如果您不想购买第二个公共 IP)。
答案2
基本方法是在家里安装一台服务器来处理重定向,正如@MDMarra 所解释的那样。
为此,您可以使用 Apache2:在您的公共可访问地址(私有网络中的 192.168.1.2)上配置一个 Apache2 服务器,该服务器具有两个 ServerName。第一个将照常重定向到您当前的计算机,第二个将“代理”请求到私有服务器 192.168.0.3 上的另一个 Apache2。
如果还不够的话,我可以向您展示一些入门配置,但仅凭这些您无法理解。您需要先阅读:VirtualHost、ServerName、Proxying 和常规 Apache2 配置。
至于托管公司的做法,他们确实就是这样做的:他们有 100 台私人服务器,每台服务器有数百个文件夹,每个文件夹包含一个网站。然后他们有一个 Apache2 服务器,其中的 VirtualHost 数量与文件夹数量相同。每个 VirtualHost 都有一个前缀 ServerName,例如 client1.host.com、client2.host.com 等。每个 VirtualHost 都配置为服务正确的文件夹。DNS 子域记录 (ALIAS) 都指向同一个 Apache2 服务器,该服务器将负责处理真正的重定向。当然,现实情况要复杂得多,有冗余等,但您自己也可以是一家托管公司,其子域指向一个配置了大量 VirtualHost 的 Apache2。