![将 HTTP 流量转发到虚拟机](https://linux22.com/image/609693/%E5%B0%86%20HTTP%20%E6%B5%81%E9%87%8F%E8%BD%AC%E5%8F%91%E5%88%B0%E8%99%9A%E6%8B%9F%E6%9C%BA.png)
我有以下设置:
一台具有外部静态 IP 地址的 Windows Server 2012(名称:P)。
在该物理服务器上,虚拟服务器通过 Hyper-V 运行(名称:V)。
V 托管一个安全网站(HTTPS)。P
安装了远程桌面网关服务,该服务也可通过 HTTPS 运行。
我现在的问题是我无法更改 RD 网关的端口,因为 Windows 7 客户端也需要能够连接。
我想过这样解决:
如果HTTPS流量的主机名是IP地址,则应该由P处理。
如果HTTPS流量的主机名是服务器的DNS名称,则应该转发给V。
我无法使用“路由和远程访问”的路由功能,因为它在 TCP 级别而不是 HTTP 级别工作,并且我只有一个外部 IP 地址。
那么,我该如何实现我的目标呢?
答案1
您可以在 P 上运行 HTTPS 感知代理,并使用正确的 Host 标头将传入请求代理到 VM 的内部 IP 地址。
我不知道 IIS 是否可以做到这一点,如果不行的话,您可以在端口 443 上运行专用代理,并将 IIS 放在物理机箱上的其他端口上。
您也可以要求托管服务提供商提供第二个 IP 地址。他们不会那很难得。
答案2
ARR 就是您的答案。请查阅 Scott Forsyth 撰写的有关处理 ARR 的文章。他有一个 IT 专业系列,其中有一些涉及 ARR。
http://weblogs.asp.net/owscott/archive/tags/Web+Pro+Series/ARR/default.aspx