社内の環境をお客さんに公開する際に、ひとつ問題が発生する。
案件毎に、WEBサーバのバージョンや設定が異なる。
こんな時に必要な機能がリバースプロキシです。
公開用のサーバにリバースプロキシのアプリケーションをインストールして、設定をし、アクセスによって、URLをリライトして
ローカルエリアのサーバをみられる様にする仕組み。
※今回DotNetNuke用に設定を行ったのですが、DNNはアプリケーション自体にURLがフルパスで動作する様なので、最終的にはうまく動作はしなかった。(推測)
という事で、構築から設定までの一連の流れです。
既に、システム稼働用WEBサーバにはアプリケーションがインストールされている事が前提で、本記事は書いてあります。
Hyper-VでWindows2008サーバを2台仮想マシンとして構築し、
それぞれ公開用WEBサーバ、システム稼働用WEBサーバ。
公開用WEBサーバ:Windows Server 2008 R2
システム稼働用WEBサーバ:Windows Server 2008 R2
設定手順
1:アプリケーションインストール
2:IISの画面起動
3:URL Rewriteの設定
****** 1:アプリケーションインストール ******
http://www.iis.net/download/ApplicationRequestRouting
上記URLより、アプリケーションをダウンロード
サーバの状況によって、赤線の部分からダウンロードする。
後は無邪気にインストール。ほぼデフォルトで問題ありません。
****** 2:IISの画面起動 ******
インターネット インフォメーション サービス (IIS) マネージャーを
サーバマネージャ/役割/Webサーバー(IIS)を選択
****** 3:URL Rewriteの設定 ******
① 対象サイトの画面下機能ビューを表示
③ 右メニューの操作より、Add Rulesをクリック
⑤ Edit Inbound Ruleに値を設定
設定する内容
Pattern:^(.*)
Rewrite URL:http://リライト先URL/{R:0}
{R:0}を設定することにより、Getのパラメータやサブディレクトリをすべてリライト先に引き渡す事が出来ます。
以上で終わりです。
しかし、DotNetNukuでリライトを行うと、リライト先のURLが保存されているらしく、うまく動作しない場合があります。
※調査を深くしていないのですが、標準設定ではDotNetNukuは動作しませんでした。