是否可以在不使用端口的情况下将域名绑定到同一台机器上的 VisualSVN 服务器和 IIS?

是否可以在不使用端口的情况下将域名绑定到同一台机器上的 VisualSVN 服务器和 IIS?

我有一台运行 VisualSVN Server for SCM 和 IIS 的计算机,它托管一个 Web 前端来执行一些存储库管理任务。理想情况下,我想将不同的域名绑定到每个服务器,但如果不为至少一个名称指定端口,似乎就无法做到这一点。无论出于何种目的,似乎您都无法在一台计算机上运行两个 Web 服务器,并且即使请求发往不同的域名,端口 80 请求也无法发往每个服务器。是这种情况还是有办法解决这个问题?我不愿意在其中一个服务器中输入端口号,因为它不是特别用户友好。

答案1

您可以使用网络接口上的多个 IP 地址在同一端口上并行运行 VisualSVN Server 和 IIS: http://www.itsyourip.com/networking/how-to-add-multiple-ip-address-in-windows-2000xp2003/

要配置 VisualSVN Server 仅绑定到特定接口,请使用以下步骤:

  1. 运行VisualSVN服务器管理器
  2. 右键单击根元素并选择属性
  3. 切换到“网络”选项卡
  4. 选择“这些 IP 地址”单选按钮
  5. 单击添加输入要监听的接口的 IP 地址
  6. 单击“确定”关闭“添加接口”对话框
  7. 单击“确定”关闭“属性”窗口

要配置 IIS 监听特定接口,请使用以下步骤:

  1. 启动提升的命令提示符
  2. 执行以下命令:

    netsh http add iplisten ipaddress=IPADDRESS
    

答案2

另一种方法是,如果您拥有能够进行 URL 重写的正确类型的应用层防火墙/代理服务器,那么您可以将所有后端服务保留在唯一端口上,并通过防火墙/代理在端口 80 上发布它们,但使用不同的 URL。

例如,Microsoft 的 ISA Server 就能够做到这一点。ISA Server 可以破解传入的请求,检查 URL,并根据找到的 URL 将请求重定向到完全不同的 URL 和/或端口。这使得配置非常安全,因为后端服务器只与防火墙对话,永远不会有任何直接流量。

在这种情况下,用户会将请求直接发送到防火墙/代理服务器,而不会直接发送到实际的后端服务器。

ISA Server 是 Small Business Server 2003 Premiun Edition 的标准组件,尽管它已在 2008 版本中退役。

该技术可以发挥作用,而且我已经使用该技术发布了多个后端 IIS 服务器,但是我发现,在与 IIS 相同的系统上运行基于 Apache 的解决方案时,使用多个 IP 地址并使每个系统使用完全独立的 IP 地址可以使管理更简单,正如前面的回答中所建议的那样。

答案3

如果您必须使用竞争服务,那么您将始终必须使用两个端口,但是您可以做的是屏蔽第二个端口,以使其看起来正常。

您可以使用反向代理来实现这一点。基本上,您告诉在 :80 上运行的 Web 主机将所有请求转发到/SVN/http://localhost:81或者在您的情况下,转发到 上的所有请求www.example.com)。

在 IIS 6 中我们使用Helicon ISAPI 重写。IIS7 可能内置有此功能,但我从未检查过。

相关内容