使用同一 IP 地址为多台服务器提供服务

使用同一 IP 地址为多台服务器提供服务

我看到了其他与此类似但不完全相同的问题。

所以,我的问题是,我有一个家庭服务器,它托管我的网站并使用我的外部 IP。好吧,我的域名指向该 IP。我还有第二台计算机,我也想在上面运行网络服务器。我能想到的唯一方法是使用不同的端口并仍然访问我的域。这样做,www.mydomain.com 会将我带到我的主站点,但 www.mydomain.com:8080 会将我带到托管站点的第二台计算机。

这有意义吗?这是可能的,因为这些是不同的计算机,而我实际上只有 1 个 IP。

我想我可以创建一个像 sub.mydomain.com 这样的子域名,但不确定这是否有帮助。

谢谢。

答案1

是的,您可以在不同的端口上运行单独的网站。但就拥有子域而言,这并不重要,因为域只能指向 IP 地址,而不是 IP 地址 + 端口。默认情况下,网站使用端口 80:

http://域名.com是相同的http://domain.com:80

因此,如果你有一个子域名,并且在不同的端口上运行网站,那么你必须指定端口,即http://sub.domain.com:8080

答案2

您还可以在端口 80 服务器中指定虚拟主机,以便某个域 (sub.mydomain.com) 将重定向到 sub.mydomain.com:8080。

将其放在 httpd.conf 文件的末尾(假设 Apache 带有 mod_rewrite):

NameVirtualHost *:80

<VirtualHost *>
  ServerName mydomain.com
  DocumentRoot "C:/Web/Docs/"
</VirtualHost>

<VirtualHost *>
  ServerName sub.mydomain.com
  DocumentRoot "C:/Web/Docs/FileWithPHPRedirect/JustInCase"
  RewriteEngine On
  RewriteCond %{SERVER_PORT} !8080$
  RewriteRule ^(.*) https://sub.mydomain.com:8080$1 [R=301,L] 
</VirtualHost>

让防火墙将端口 8080 转发到第二台服务器。此处的路径是 Windows 路径,如果需要,只需更改它们即可。

答案3

这里有几个选项,具体取决于您要执行的操作。两台机器无法在同一个 IP 和同一个端口上应答,因此最简单的解决方案是在另一个端口上运行它。

我会使用主机作为 DNS 条目,然后从那里控制流量。因此,您可以设置 Web 服务器来代理或重定向其他域,甚至将子文件夹重定向到其他机器。

因此 www.domain.com 将转到 machine1。www.domain.com/otherfolder 仍将转到 machine1,但随后将被重定向或代理到 machine2。重定向很容易设置,但 URL 中仍将包含备用端口。代理是最透明的,因为所有内容仍直接与 machine1 通信。但它的响应速度可能会稍慢一些,因为所有通信在到达最终客户端之前都要经过两个 Web 服务器。

相关内容