单个服务器上的多个IP,一些SSL和SVN引发了一些问题

我们有两个使用端口80的IP地址的两个站点,以及一个使用443个IP地址的SVN存储库。 当我尝试为两个站点中的一个站点设置SSL(使用SVN未使用的IP)时,它拒绝启动,因为它声称已经在使用443,尽pipe它应该使用完全独立的IP。

我们有一个运行IIS 6的Windows Server 2003 x64的Web服务器。我们有两个域,分别映射到自己的IP。 假设网站A映射到1.1.1.1,网站B映射到2.2.2.2。 SVN被设置为侦听1.1.1.1:443,而站点A和B分别侦听1.1.1.1:80和2.2.2.2:80。 这工作得很好,直到我试图设置站点B来监听2.2.2.2:443,在这种情况下站点B将无法启动,如上所述。 如果我停止SVN,那么我可以启动Web服务(包括2.2.2.2:443上的服务),但是当再次尝试启动SVN时,它会给出相同的基本“已经使用”错误。 但是,当他们都在听港口443,他们正在这样做在单独的IP,我认为应该工作。

我已经使用netstat ,看到SVN确实在1.1.1.1:443而不是0.0.0.0:443(这意味着它正在监听所有的IP,我认为?)。 它以前被configuration为侦听“任何”IP,我以为我将通过设置为只侦听1.1.1.1来解决我的问题,但是使这个更改没有效果。 没有其他人在听443.同样,在IIS中设置的两个站点设置为只查找各自的IP,而不是“任何未分配的”,当我设置站点B在端口443使用SSL时,我也类似地限制它到IP 2.2.2.2。

考虑到我可以让Web服务或者 SVN运行得很好,但是不能同时运行,看起来相当简单的是它们彼此冲突。 但是他们的IP不能解决这个冲突吗?

build议使用SVN的端口8443,它像一个辅助的ssl端口。 它类似于端口8080到80.你应该有任何问题分配端口443到网站。

确保您的路由器为SVN设置端口转发到8443

你也可以在安全的端口22上使用SVN + ssh

好吧,我讨厌回答我自己的问题,但我似乎遇到了一个修复,但我怀疑这是一个通用的解决scheme。

这个知识库文章似乎是引用我的确切问题:

在IIS 6.0中有两个网站。 对于HTTPstream量,网站1绑定到10.10.10.2:80。 对于SSLstream量,网站1也绑定到10.10.10.2:443。 对于HTTPstream量,网站2仅绑定到10.10.10.3:80。

在这种情况下,当您使用netstat命令查看计算机正在侦听的端口时,您可能会注意到IIS 6.0绑定到端口80和两个IP地址上的端口443。

从他们的解决scheme中,我不得不为registry添加一个新的值。 因此,在HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters ,我必须添加DWORD值DisableEndpointSharing ,并将其设置为1 。 他们的解决scheme的第二部分不适用(运行httpcfg query iplisten告诉我,IP听列表已经是空的)。

在添加上面的registry值并重新启动IIS后,站点B现在出现在netstat下,被绑定到2.2.2.2:443而不是0.0.0.0:443,我可以启动SVN绑定到1.1.1.1:443,没有任何问题。

所以至less在这种情况下,我想这只是一个解决方法已知的问题,以某种方式适用于我们的configuration。