在具有多个 IP 的单机上设置 IIS7 和 TomCat

Shr*_*ike 4 iis-7 tomcat

给定:指向一台机器的两个 dns 名称:“mysrv”和“myapp.mysrv”。这台机器有两个ip地址(1.1.1.1和1.1.1.2)。

我需要在 1.1.1.1 上为 myapp.mysrv 设置 IIS7,在 1.1.1.2 上为 mysrv 设置 TomCat。
我需要服务器在 80 端口上提供两个资源(mysrv 和 myapp.mysrv)。

我做了什么:在 TomCat 的配置 (server.xml) 中,我向 Connector 元素添加了“address”属性:

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80" minProcessors="5"
           address="1.1.1.2"
           maxProcessors="75"
           enableLookups="false" redirectPort="8443" acceptCount="10" />
Run Code Online (Sandbox Code Playgroud)

<Engine name="Standalone" defaultHost="mysrv" debug="0">
    <Host name="mysrv" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false">
Run Code Online (Sandbox Code Playgroud)

然后在 IIS 管理器中,我创建一个站点并为其设置绑定:Type=http;Host Name=myapp.srv;Port=80; IP 地址=1.1.1.1

但是当我尝试启动站点时,我收到两个错误(在 EventLog 中): 1. 万维网发布服务(WWW 服务)没有为站点注册 URL 前缀http://myapp.mysrv:80:1.1.1.1/ 2. 该网站已被禁用。数据字段包含错误编号。

2. 无法绑定到 [::]:80 的底层传输。IP 只听列表可能包含对该机器上可能不存在的接口的引用。数据字段包含错误编号。

Eva*_*son 7

默认情况下,IIS 绑定到机器上所有 IP 的端口 80。要在 IIS 7 中禁用此行为,请执行以下命令,替换您希望 IIS 侦听的 IP 地址:

netsh http add iplisten ipaddress=xxx.xxx.xxx.xxx
Run Code Online (Sandbox Code Playgroud)

您需要重新启动 IIS 以使更改生效。