在寻找最简单的方法来实现这一点时遇到了问题,或者是否有可能实现这一点。
刚刚购买了第二台机器(网络服务器),现在我想将两台机器都公开(通过 iis 运行网站)。
我的 DNS(类型 a)无法接受端口,所以我基本上只能将所有流量都发送到路由器的端口 80。
据我所知,我的路由器只能通过端口分割流量,所以我必须将所有流量发送到一台机器。或者至少这是我足够聪明所能想到的全部。
那么该机器是否应该以某种方式将流量转发到另一台机器?
我听说过反向代理,但不确定如何设置它。
我是否需要设置 VPN 并将其公开?
我需要将 www.abc.com 的流量传输到路由器后面的一台机器。并将 www.xyz.com 的流量传输到同一路由器后面的第二台机器。
有人能给我一些简单的方法来实现这一点吗?或者这是否可行?
谢谢!!
答案1
您基本上要求的功能称为“反向代理”。为您提供一些解决方案:
使用 webserver 1 作为反向代理
- IIS 示例https://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis
- Apache 示例:https://serverfault.com/questions/510758/how-to-pass-a-request-from-one-apache-server-to-another
- 这个解决方案非常糟糕,因为你又增加了一个单点故障:如果 Web 服务器 1 因更新而重新启动,Web 服务器 2 也会离线
安装反向代理并将您的路由器配置为从 WAN 端口 NAT 端口 80 到代理服务器。
与上述一样,你添加了一个单点故障
以 nginx 为例:https://stackoverflow.com/questions/13240840/nginx-reverse-proxy-multiple-backends
- 使用 mikrotik OS 的示例:https://wiki.mikrotik.com/wiki/Multiple_Web_Servers(我与 mikrotik 没有任何关系)-由于路由设备也是代理,因此单点故障的可能性会降低
- 在路由器上安装支持反向代理的固件
当然,你可以使用更多的代理服务器,但我首先推荐 nginx,你会发现很多教程,而且它是开源的
向您的 ISP 询问第二个静态 IP 地址。
- 在我的办公室,我们有 4 个静态 IP,我们的 ISP(电缆)提供了一个专有的 Cisco 设备,该设备有 4 GBit 以太网,每个以太网提供一个 IP。它比我的私人合同每月多 10 美元左右。这样,您就少了一个单点故障:您的路由器,呵呵
在同一台服务器上同时提供两个 Web 应用程序或构建一个集群
- 为什么不呢?这样,你就可以通过构建 2 个硬件服务器的集群来提高代理和 Web 服务器的可用性,例如使用 proxmoxhttps://pve.proxmox.com/wiki/Proxmox_VE_4.x_Cluster#Requirements(我与 proxmox 没有任何关系,无论如何它是开源的)
因为我们都喜欢绘画,这里有一些绘画 :-)