首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同ip和不同端口上的Tomcat和IIS 7

不同ip和不同端口上的Tomcat和IIS 7
EN

Server Fault用户
提问于 2014-08-15 20:43:13
回答 2查看 2K关注 0票数 0

我在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上使用此配置;

代码语言:javascript
复制
<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上设置了一个新站点。我无法启动这个网站。事件日志显示此错误;

代码语言:javascript
复制
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只是为了举例,但与我的设置是一致的。

EN

回答 2

Server Fault用户

发布于 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

来源:http://support.microsoft.com/kb/954874

票数 1
EN

Server Fault用户

发布于 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`”,就会得到类似于以下内容的内容:

代码语言:javascript
复制
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。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/620805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档