端口转发和网站托管:两个域,相同的IP,不同的计算机

Port-forwarding and website hosting: Two domains, same ip, different computer

所以我有两个域: http://firstexample.com http://secondexample.com

在我的路由器上,我目前有端口转发功能,因此当有人访问 http://firstexample.com 时,他们会看到我的内部 IP 为 192.168.0.15 的计算机正在托管的网站

我如何设置它,以便如果有人去 http://secondexample.com,他们会看到我的另一台内部 IP 为 192.168.0.16 的计算机正在托管的网站?

我的两台电脑都有相同的 public IP。

这是我要更改的路由器设置吗?或者 godaddy 会允许我配置一些东西吗?

不,仅使用 Layer3/4 功能无法在同一 IP/port 配置上侦听两个域。大多数网络服务器都是根据请求中的 Host 字段来完成的。如果您可以在路由器上使用两个端口,那是可能的,例如。你可以做一些类似端口转发的事情

<router_ip>:80 -> 192.168.0.15:80 
<router_ip>:8080 -> 192.168.0.16:80

但问题是任何人都试图访问 http://secondexample.com should always access it as http://secondexample.com:8080,这非常不方便。

这是您可以做的另一种选择 -

运行 一个网络服务器,比如 192.168.0.15 之类的 nginx 之类的,并为每个 http://firstexample.com and http://secondexample.com 创建两个后端。请参阅 nginx 文档了解如何操作。您不需要三台机器,因为 firstexample.com 可以 运行 在 192.168.0.15 上(除了不是在标准端口 80 上,而是在端口 8080 上)并且 secondexample.com 会 运行 在另一台机器上。然后仅在您的路由器端口转发中添加以下条目

<router_ip>:80 -> 192.168.0.15:80 # assuming ngninx is listening on port 80.

我假设 firstexample.com 和 secondexample.com 都解析到您的路由器 IP 地址。