IIS と Apache の同一サーバー

IIS と Apache の同一サーバー

1 台のサーバーで、メインの Web サイト (Apache でホスト) と Exchange OWA サイト (IIS でホスト) を共有します。

サイトには 2 つの異なるパブリック IP があり、それぞれに 2 つの異なる URL があります。ただし、IIS はサーバーに割り当てられたすべての静的 IP を取得することを要求します。

調べてみたら、このリンクを見つけました:http://support.microsoft.com/kb/892847

私は IIS 6.0 を使用しています。先に進み、ソケット プーリングを無効にして、再起動しました。httpcfg を使用して IIS を 2 つの内部 IP (xxx11:80、xxx11:443) に割り当てると、Apache がオフになっている場合でも、IIS サイトはポートが使用中であるかのように動作します。Apache 構成を再確認し、必要に応じて .12 IP を指定しました。

ListenOnlyList を確認したところ、正しいようです。2 つのエントリと正しいポートがあります。

興味本位でソケットプーリングをオンに戻したら、すべてが機能しました。Active Ports プログラムを使用して、IIS のオン/オフを切り替えると、0.0.0.0:80 が使用中になったり使用されていないりするのを確認できます。

ソケットプーリングを再びオフにすると、状況は再び悪化します。

IIS が ListenOnlyList を完全に無視しているようです。ListenOnlyList を 0.0.0.0 に変更した場合を除いて、IIS はスムーズに動作します。IIS をダブルチェックし、IP が一致していることを確認しました。一致しています。これは All Unassigned ではなく、実際には xxx11 にあります。おかしいですね。

何か案は?

答え1

ソケット プールを無効にすることは、IIS6 では機能しません。代わりに、前述のレジストリ キーを変更してから、httpcfg を実行する必要があります。

レジストリ キーを変更したと仮定すると、 httpcfg query iplisten を実行した場合の出力はどうなりますか?

答え2

IIS の Web サイト プロパティで IIS サーバーの IP アドレスのみが選択されていることを確認しましたか? 「(未割り当てのすべて)」が選択されている可能性があります。これで問題が解決するかどうかはわかりませんが、確認する価値はあります。

答え3

これを機能させるために httpcfg で使用する手順を詳しく説明したブログ記事を書きました:

http://www.diaryofaninja.com/blog/2012/06/21/forget-what-your-mother-told-you-iis-and-apache-can-be-friends

基本的に:

  • IIS の IP アドレス バインディングを手動で作成する (したがって、「すべてをキャッチする」シナリオは作成されません)
  • 上記のバインディングに含まれていないIPアドレスまたはポートでApacheを実行するように設定する

関連情報