web-dev-qa-db-ja.com

複数のIPを備えた単一のマシンでIIS7とTomcatをセットアップする

与えられた:1つのマシンを指す2つのDNS名:「mysrv」と「myapp.mysrv」。このマシンには2つのIPアドレス(1.1.1.1と1.1.1.2)があります。

Myapp.mysrvの場合は1.1.1.1でIIS7をセットアップし、mysrvの場合は1.1.1.2でTomcatをセットアップする必要があります。
サーバーが80ポートで2つのリソース(mysrvとmyapp.mysrv)を提供する必要があります。

私がしたこと:Tomcatの設定(server.xml)で、コネクタ要素に「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" />

そして

<Engine name="Standalone" defaultHost="mysrv" debug="0">
    <Host name="mysrv" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false">

次に、IIS Managerでサイトを作成し、そのバインドを次のように設定します:Type = http; Host Name = myapp.srv; Port = 80; IP Address = 1.1.1.1

しかし、サイトを開始しようとすると、(EventLogで)2つのエラーが発生します。1。WorldWide Web Publishing Service(WWW Service)がURLプレフィックスを登録しませんでした http://myapp.mysrv:80:1.1。 1.1 / サイト2の場合。サイトは無効になっています。データフィールドにはエラー番号が含まれています。

2. [::]:80の基になるトランスポートにバインドできません。 IPリッスン専用リストには、このマシンに存在しない可能性のあるインターフェイスへの参照が含まれている場合があります。データフィールドにはエラー番号が含まれています。

4
Shrike

デフォルトでは、IISはマシン上のすべてのIPのポート80にバインドします。IIS 7でこの動作を無効にするには、IPを代入して次のコマンドを実行します聞きたいアドレスIIS:

netsh http add iplisten ipaddress=xxx.xxx.xxx.xxx

変更を有効にするには、IISを再起動する必要があります。

7
Evan Anderson

やってみてください:

httpcfg set iplisten -i 1.1.1.1:80

コマンドプロンプトから。それはソケットプーリングである可能性があります... IISはデフォルトですべてのIPをリッスンしたいので(Evanが言ったように)、Tomcatがそれらの1つを奪うとフィットをスローします。

0
Adam Brand