我在家里运行服务器,目前我有 2 台服务器分别在 2 条互联网电缆上运行。现在我想关闭一条互联网线路,所以我想让 2 台服务器只运行一条互联网线路;这意味着 2 台 PC 在一个静态 IP 地址上作为服务器运行。这可行吗?我该如何设置?
注意:两个服务器都使用 wampserver 和静态 IP。
答案1
2 台 PC 在一个静态 IP 地址上运行作为服务器。这可行吗?如何设置?
您可以根据需要让任意数量的服务器在单个 IP 地址(包括静态公共 IP 地址)上监听,只要满足以下条件:
- 每个服务器都在监听不同的端口(或者通过 NAT 连接到路由器上的唯一端口),或者
- 有某种前端服务可以将请求路由到 LAN 上的正确物理服务器
对于“WAMP”或 Apache 来说,可以执行此操作的“前端”服务将是反向代理或虚拟主机。
因此你的选择是:
继续在 LAN 上运行两个物理 Web 服务器,为每个服务器分配一个静态私有 LAN IP。将路由器设置为将端口 80 或 443 上的传入流量转发到其中一个服务器,并将另一个服务器的端口转发到另一个服务器,例如 8080 或 44344。要访问此服务器,人们必须在浏览器中输入类似
http://your-public-ip:8080
或 的内容https://your-public-ip:44344
。没有办法让 DNS 为您指定端口。继续在 LAN 上运行两个物理 Web 服务器,为每个服务器分配一个静态私有 LAN IP。将路由器设置为将端口 80 或 443 上的传入流量转发到您的其中一台服务器。配置 Apache 以将特定目录反向代理到其 LAN IP 上的另一台服务器。由于第二台服务器的所有流量都必须通过第一台服务器,因此这会增加第一台服务器的负载。
如果您有两个可用的 DNS 记录,则可以将这两个 DNS 记录都设置为指向您剩余的单个静态 IP。只运行一个服务器,并将位于另一台服务器上的站点整合到这台剩余的服务器上。使用 Apache 的 vhosts 功能根据请求中的 Host 标头将正确的站点传递给传入请求,该标头应根据用于访问的域名而有所不同。
答案2
正如 techie007 指出的那样,处理此问题“正确”的方法是从您的 ISP 获取另一个公共 IP。
另一个解决方案是利用端口转发发挥创意。
只需告诉你的路由器将端口 8080(例如)上的 TCP 请求转发到端口 80。