![不同服务器上的多个域具有 1 个 nat 规则](https://linux22.com/image/735060/%E4%B8%8D%E5%90%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E5%A4%9A%E4%B8%AA%E5%9F%9F%E5%85%B7%E6%9C%89%201%20%E4%B8%AA%20nat%20%E8%A7%84%E5%88%99.png)
我对此还很陌生,无法弄清楚。我有 2 个域。1 个域应转到 1 个 Web 服务器,另一个应转到第二个。1 个在 IIS 上,另一个在 Apache 上。在我的路由器上,我只能为 http/https 制定 1 条 NAT 规则。
因此所有流量都流向 1 个 Web 服务器。在本例中为 Apache 服务器。是否可以将其他域的所有 HTTP/HTTPS 请求从 Apache 计算机转发到 IIS 计算机?当然不会丢失 URL。
domain1.com -> Apache domain2.com -> IIS 均位于 1 个路由器后面,且仅具有 1 条 NAT 规则
答案1
如果每台服务器上的网站位于不同的端口上,您可以为相应的端口设置 2 条 Nat 规则,否则您需要引入一个反向代理,该代理可以查看它们进入的 URL 并将其路由到正确的后端服务器。Nginx 非常适合这种情况,但技术性会更强一些,因为您需要将 nat 规则指向 NginX,然后告诉 NgninX 如何路由到这两个服务器。
答案2
是的,你可以这样做。你需要将 Apache 服务器配置为另一台服务器的代理。
这是您需要的基本配置,根据需要进行扩展并填写您的 IIS 服务器的正确内部地址。
<VirtualHost *>
ServerName domain2.com
ProxyPass "/" "http://iis-server/"
ProxyPreserveHost On
</VirtualHost>