IISとapacheを共存させる方法(Application Request Routing)


windows上でIISとapacheを共存させるためには共通で使用しているポート(80番)の問題を解決しなければいけません。
ネットを回遊しているとIISは8000番ポート等の別ポートを使用し、apacheのリバースプロキシの機能でIISへ飛ばしてあげるという方法が
よく見かけますが、今回はその逆をやってみたいと思います。
方法はIIS7から提供されている「Application Request Routing」を利用してapacheへリダイレクトさせてあげます。

今回の環境の前提条件:
・IIS 8000番ポート使用(※デフォルトの設定ではないので各自の環境で読み替えてください)
・apache 8080番ポート使用
・ユーザからは8000ポートのみのアクセスでIISとapacheの両方にアクセスさせたい。
・apacheのコンテンツへ到達するためにIISを踏み台とする。
「リクエスト」 → 「IISのコンテンツ」
「リクエスト」 → 「IIS」 → 「apacheのコンテンツ」

手順:
まずIISとapacheをインストールし、IISを8000番ポート(デフォルト)、apacheを8080ポート(手順は割愛します)で立ち上げます。

次に「Application Request Routing」をインストールします。
以下のURLよりx86 版 か x64 版を選択しダウンロードします。
http://technet.microsoft.com/ja-jp/iis/ee839425.aspx

technet

ダウンロードした.msiファイルを実行すると自動でインストールされます。
このとき同時に「URL Rewrite Module」もインストールされます。

インストールが完了するとIISマネージャに「URL書き換え」と「アプリケーション要求ルーティング処理」の項目が追加されています。

install

次に「アプリケーション要求ルーティング処理」の機能を開きます。
・画面上のほうの「プロキシを有効にする」にチェックを入れます。
・画面下のほうのプロキシの種類の項目で「URL書き換えを使用して着信要求を検査する」にチェックを入れ「リバースプロキシ」にapacheのURLを入力します。
・画面右の適用で設定を保存します。

proxy

次に「URL書き換え」の機能を開きます。
「アプリケーション要求ルーティング処理」で設定した内容が反映されているので確認をします。

rewrite1

rewrite2

以上の設定でIISからapacheへリダイレクトされるようになっているはずです。
動作確認をしてみます。
まず、リダイレクトを設定していない状態でアクセスしてみます。
IIS(環境の都合上IISを8000番ポートで動かしています。)
test1

続いてapache
test2

そしてリダイレクトの設定後の確認です。
IISの動作ポートでapacheのトップページが表示されていますので正常にリダイレクトされています。

test3

まとめ
今回のケースではIIS側で1つのサイトを直接apache側へリダイレクトさせましたが、コンテンツとしてIISでしか動作しないもの
apacheでしか動作しないもの等の条件があると思います。
そういうときは1つのサーバでIISとapacheの両サーバでサービスを提供さる必要が出てきます。
IISの場合だと複数サイトを作成しNAMEベースで管理してあげれば楽に管理できます。

IISが前段がよいか、apacheが前段がよいかということは今後検証していきたいと思います。


タグ: ,


コメント / トラックバック1件

  1. […] IISとapacheを共存させる方法(Application Request Routing) | Windows Maniax […]

コメントをどうぞ