IIS のレスポンスが常に圧縮される設定にする - IIS

IIS のレスポンスが常に圧縮される設定にする手順を紹介します。

概要

IISをデフォルトの設定でインストールした場合、Webサーバーからのレスポンスが圧縮されない状態の場合が多いです。 この記事では、動的コンテンツの圧縮を有効にして、ASP.NETやCGIなどのアプリケーションのレスポンスも含め、 常にWebサーバーのレスポンスを圧縮する方法を紹介します。

動作の確認

IISのWebサーバーに配置してあるWebページにアクセスします。ページはASP.NET アプリケーションで表示しています。


応答ヘッダーのレスポンスを確認します。content-encoding: gzip が指定されることでレスポンスデータの圧縮が確認できますが、 このレスポンスには content-encoding のヘッダーが無いです。


このページのCSSファイルのレスポンスヘッダも確認します。


CSSのレスポンスヘッダにも、content-encoding: gzip の指定はありません。デフォルトの設定でIISをインストールしており、 [静的コンテンツの圧縮]のモジュールがインストールされていますが、レスポンスデータは圧縮されていません。

設定の確認

IISの設定を確認します。[インターネット インフォメーション サービス(IIS) マネージャー]を起動します。 左側のツリービューでサーバーのノードをクリックして選択します。右側の[機能ビュー]から[圧縮]の項目をダブルクリックします。


[圧縮]の設定画面が表示されます。
デフォルトの状態では[静的なコンテンツの圧縮を有効にする]のチェックボックスにチェックが付いていることが確認できます。


また、[動的なコンテンツの圧縮を有効にする]のチェックボックスがグレーアウトされていることも確認できます。 これは右側のエリアに表示されている下図のメッセージにもある通り、動的なコンテンツの圧縮モジュールがインストールされておらず、 動的なコンテンツ圧縮の設定ができないためです。
メッセージ
動的なコンテンツの圧縮モジュールがインストールされていません。

[静的なコンテンツの圧縮を有効にする]のチェックボックスはチェックが付いており、 静的なコンテンツの圧縮は有効ですが、先ほどの動作確認ではレスポンスは圧縮されていないことがわかります。 これは、ASP.NETやCGIなどのアプリケーションのレスポンスは静的コンテンツではないため、圧縮されないことが原因です。 また、静的なCSSファイルであっても、設定画面で設定されている[次の値より大きいファイルのみ圧縮する]のファイルサイズより大きいファイルでないと圧縮されないこと、 一定のアクセス頻度が無いと圧縮されないため、レスポンスが圧縮されない状態となります。 詳しくはこちらの記事を参照してください。

動的コンテンツの圧縮 をインストールする

動的コンテンツの圧縮機能をインストールして、ASP.NETなどのWebアプリケーションのレスポンスも圧縮するようにIISを設定します。
[サーバー マネージャー]のウィンドウを表示します。左側のメニューの[IIS]の項目をクリックします。


[IIS]の項目をクリックすると下図の表示に切り替わります。


右側のエリアを下にスクロールします。[役割と機能]のセクションを表示し、右側の[タスク]のコンボボックスをクリックします。 下図のドロップダウンメニューが表示されますので、[役割と機能の追加]の項目をクリックします。


[役割と機能の追加ウィザード]ウィンドウが表示されます。[次へ]ボタンおwクリックします。


[インストールの種類の選択]画面が表示されます。[役割ベースまたは機能ベースのインストール]のラジオボタンにチェックをつけます。[次へ]ボタンをクリックします。


[対象サーバーの選択]画面が表示されます。今回は自身のマシンにインストールしますので、[サーバープール]のエリアに表示されている自分自身のマシン名をクリックして選択します。 選択後[次へ]ボタンをクリックします。


[サーバーの役割の選択]画面が表示されます。
[Web サーバー (IIS)] のノードを開いて子ノードを表示します。


[Web サーバー (IIS)]の子ノードの[パフォーマンス]のノード内にある、[動的なコンテンツの圧縮]の項目の左側のチェックボックスをクリックします。


チェックボックスをクリックすると、ちぇくボックスにチェックが付きます。チェックができたら[次へ]ボタンをクリックします。


[インストール オプションの確認]画面が表示されます。[動的なコンテンツの圧縮]の機能がインストールされることを確認し、ウィンドウ右下の[インストール]ボタンをクリックします。


インストールが始まります。


インストールが完了すると、下図の画面になります。[閉じる]ボタンをクリックして、ウィザードを終了します。


ウィザードの終了後、マシンを再起動します。

インストールの確認

動的コンテンツの圧縮のモジュールインストール後、再度、インターネット インフォメーション サービス(IIS)マネージャー を開き、サーバーのノードを選択して、 サーバーの圧縮の設定画面を表示します。先ほどはグレーアウトしていた、[動的なコンテンツの圧縮を有効にする]のチェックボックスが有効になっており、チェック状態を変更できる状態になっています。
[動的なコンテンツの圧縮を有効にする]のチェックボックスが無効の場合は、チェックボックスをクリックしてチェックをつけ有効にします。

動作確認

[動的コンテンツの圧縮]のモジュールをインストールして有効にした状態で、再度ページにアクセスします。


アクセスすると、応答ヘッダーにContent-Encoding: gzipの値が追加されています。レスポンスデータが圧縮されていることが確認できます。


同様にCSSファイルのレスポンスヘッダーも確認します。


こちらもヘッダーにContent-Encoding: gzipの値が追加されており、圧縮処理が動作していることが確認できます。


[動的コンテンツの圧縮]をインストールして、ASP.NET, CGIなどのWebアプリケーションのレスポンスや、サイズが小さくアクセス頻度の低いCSSファイルも圧縮される設定にできました。
このページのキーワード
  • IIS レスポンス 圧縮
  • IIS レスポンス 圧縮されない
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2022-02-23
作成日: 2021-08-31
iPentec all rights reserverd.