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 で使用する手順を詳しく説明したブログ記事を書きました:
基本的に:
- IIS の IP アドレス バインディングを手動で作成する (したがって、「すべてをキャッチする」シナリオは作成されません)
- 上記のバインディングに含まれていないIPアドレスまたはポートでApacheを実行するように設定する