我在Windows 2008服务器上同时安装了Tomcat和IIS 7。该机器有两个IP (134.133.1.1和134.133.2.2)。
我希望Tomcat在端口80上处理134.133.1.1,IIS在端口80和134.133.1.1上处理134.133.2.2,在端口443上处理134.133.1.1,但似乎不能将最后两者结合在一起(我可以在IIS上获得其中一个地址,以及Tomcat上的第一个IP地址)。
我已经配置Tomcat来成功地侦听ip 134.133.1.1,在端口80上使用此配置;
<Connector port="80"
protocol="HTTP/1.1"
address="134.133.1.1"
connectionTimeout="20000"
redirectPort="8443" />我还在IIS中配置了一个站点,该站点绑定到端口443 (SSL)上的ip 134.133.1.1。当我打开IIS时,在Tomcat之后,我可以成功地(按需要)达到134.133.1.1:80 (Tomcat)和134.133.1.1:443 (IIS)。
当我想通过IIS在新的ip地址上介绍一个新站点时,问题就来了。在IIS中,我在IP 134.133.2.2,端口80上设置了一个新站点。我无法启动这个网站。事件日志显示此错误;
Unable to bind to the underlying transport for [::]:80. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.我认为这是因为IIS 7试图侦听所有it上的端口80,而不是因为Tomcat将端口80作为134.133.1.1。从读取开始,解析就是指定您希望IIS绑定在端口80上的IP地址。问题是,当我将134.133.2.2添加到iplisten列表时,当我尝试导航到134.133.1.1:443时,会得到一个404。我认为这是因为IIS不再监听134.133.1.1上的任何端口。
如何解决此问题,以便IIS将返回两个站点?
编辑:每次请求,我对站点A的IIS绑定是端口80 (http)上的134.133.2.2,端口443上的134.133.2.2。对于IIS中的站点B,在端口443 (https)上的绑定为134.133.1.1。注意,本例中的IP只是为了举例,但与我的设置是一致的。
发布于 2015-03-03 13:53:02
我在Windows 2008上也有同样的问题,试图在两个不同的网络接口上在端口80上运行Tomcat和IIS。为了迫使IIS只在特定的网络接口上监听端口80,您必须遵循下面的说明。仅仅更改IIS中的站点绑定是不够的。
来自Microsoft的文章954874:
在Windows server 2008中安装Internet Information Services ( IIS ) 7.0时,IIS绑定到服务器上的所有IP地址,而不仅仅是分配给网站的IP地址。即使您已将IIS设置中的DisableSocketPooling元数据库属性设置为True,也可能发生此行为。若要解决此问题,请使用Netsh命令提示实用程序在Windows 2008中配置IP侦听列表。netsh http添加iplisten xxx.xx.x.x
发布于 2014-08-22 03:33:55
不要使用iplisten为IIS分配IP地址。
只需为每个站点使用绑定。iplisten将IP地址绑定到HTTP.sys服务,并真正绑定您的手。您只想让HTTP.sys侦听IP 134.133.1.1端口443的流量,以及IP 134.133.2.2端口80和443的流量。只需将IP和端口添加到绑定中,就可以看到这是否减轻了您的问题。
或者,运行netstat -aon并查看在TCP端口80上侦听的内容。您将得到一个PID列表,并且可以将其与任务管理器中的进程名相匹配。例如,如果运行“netstat -aon`”,就会得到类似于以下内容的内容:
Proto Local Address Foreign Address State PID
TCP 172.18.5.23:443 0.0.0.0:0 LISTENING 1268
TCP 172.18.5.23:80 0.0.0.0:0 LISTENING 1268
TCP 172.18.5.24:80 135.25.167.62:443 ESTABLISHED 9652
TCP 172.18.5.24:18462 10.200.40.1:443 ESTABLISHED 7312
TCP 172.18.5.23:18463 10.200.40.1:443 ESTABLISHED 7312现在,如果我打开任务管理器并查看PID行,我可以比较并看到Tomcat7.exe的PID值为9652,因此它正在监听TCP端口80。比较这两种结果。您可能会发现,另一个进程正在从您的IP地址上窃取端口80。
https://serverfault.com/questions/620805
复制相似问题