IISでリバースプロクシを設定してみた

IISには、Apacheのmod_proxyのようなことをする機能がない。

IIS7からは、Application Request Routing (ARR)というMicrosoft提供のモジュールがあるようだが
WindowsXPやWIndows 2003 ServerのIIS5.1、IIS6では利用出来ない。
IISのApplication Request Routing(ARR)でリバースプロキシを構築する (1/5):CodeZine


ググったところ、Ionics Isapi Rewrite Filterという無償ツールを利用することで実現出来ることが分かった。
Ionics Isapi Rewrite Filter - Home

最新は、V2.1であるが、開発環境のWindowsXPのISS5.1は対象外のため、1つ前のV2.0を使用することにした。

環境設定にあたり、ヘルプのドキュメントに間違いがあったため設定方法をメモっておきます。

  • 2.0.1.15のモジュールをダウンロードする
  • IISを停止する
  • c:\windows\system32\inetsrv\IIRF に IIRF.dll, IIRF.lib をコピーする
  • 同フォルダに IirfGlobal.ini を作成する
RewriteFilterPriority HIGH
RewriteEngine ON
NotifyLog ON
  • c:¥Inetpub¥wwwroot¥IIRF.ini を作成する
RewriteLog C:¥Log¥iirf_rewrite.log
RewriteLogLevel 3
StatusUrl /iirfStatus

ProxyPass ~/xxx/(.*)?* http://www.yyyy.com/xxx/$1 [I]
  • IISの設定で、「既定のWebサイト」のプロパティを開く
  • 「ISAPIフィルタ」タブを開き、「追加」クリックし、名前は「IIRF」、実行ファイルに「IIRF.dll」を選択する
  • IISを再起動する

これで、設定完了です。
iniファイルの設定については、同梱されているヘルプを参照するとよい。