IIS Application InitializationでASP.NETアプリの起動を高速化(ウォームアップ)

こんにちは。aokiです。

これはOne ASP.NET Advent Calendar 2012の12/15日分の記事となります。前回の記事はmatarilloさんの「Web Forms + jQuery UI = Juice UI」です。次回の記事はnobuhisaさんの「知っている人は知っている、知らない人は知らない『NDjango』」です。

今回のテーマはASP.NETアプリをウォームアップできるApplication Initilizationを紹介します。

Application Initialization(Module)とは

ASP.NETアプリケーションは初回のページ呼び出しがあった時に、アプリケーションの初期処理(ビルドなど)が実施されます。そのため、ファーストユーザーがページにアクセスした時に遅いと感じることがあります。

これに対してApplication Initializationを有効にしておくと、起動時にIISがアプリケーションを呼び出しておいてくれます。そのため最初のユーザーがアクセスした時の体感速度を向上させることができます。

Application Initialization Moduleは、IIS7.5では個別モジュールでしたが、IIS8ではIIS標準機能となっています。

IISバージョン ApplicationInitializationの状態
IIS 8.0(Server2012/Windows8) IIS8.0に統合
IIS 7.5(Server2008R2/Windows7) RC版リリース。IIS7.5の外部モジュールとして提供
IIS 7.0(Server2008/Vista) IIS7.0は未サポート

ここでは、IIS8に導入する方法を紹介します。

Read More

IIS リライトモジュールでドメインからwwwを取り除く&付与する

IISリライトモジュール(IIS Rewrite Module)は便利なIIS拡張です。

Apacheのmod_rewriteみたいなもので、URLの書き換え、変更を行うことができます。

リライト/リダイレクトしたいサイトを選んで「URL書き換え」の設定を行うと、Web.configに設定が保存されます。

以下は、www.hoge.jpというリクエストを、hoge.jpに変える設定です。

<system.webServer>
    <rewrite>
      <rules>
        <rule name="WWWを取り除く" >
            <match url="(.*)" ignoreCase="true" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^www\.hoge\.jp$" />
            </conditions>
            <action type="Redirect" url="http://hoge.jp/{R:1}" />
        </rule>
      </rules>
    </rewrite>
<system.webServer>

以下は、逆にhoge.jpというリクエストを、www.hoge.jpに変える設定です。

<system.webServer>
    <rewrite>
        <rules>
            <rule name="wwwがあるURLへ" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^hoge\.jp$" />
                </conditions>
                <action type="Redirect" url="http://www.hoge.jp/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

軽く触っただけですが、なかなか便利ですね。

参考

Read More

ネクストスケープ企業サイトへ

NEXTSCAPE

検索する

タグ

メタデータ

投稿のRSS