インターネットインフォメーションサービス (IIS) の構成を最適化して、Web サイトの読み込みが遅い問題やファイルのアップロード失敗に対処します。キャッシュポリシーを設定すると Web サイトの応答速度が向上し、ASP アプリケーションの最大リクエストサイズ制限 (AspMaxRequestEntityAllowed) を調整すると大容量ファイルのアップロードが可能になります。
利用シーン
パフォーマンスの向上:イメージ、CSS、JavaScript ファイルなど、更新頻度の低い静的リソースに対して長期的なキャッシュポリシーを設定します。これにより、サーバーリクエストが減少し、ページ読み込み時間が短縮されます。
大容量ファイルのアップロードのサポート:動画や大容量ドキュメントのアップロードなど、ビジネスニーズに合わせて ASP アプリケーションのリクエストサイズ制限を調整します。
適用範囲
サードパーティ製品の責任:Alibaba Cloud は、本書に記載されている IIS などのサードパーティ製品のパフォーマンス、信頼性、または操作について、いかなる保証も提供しません。
バージョンの互換性:本書の手順は、主に IIS 6.0 に基づいています。IIS 7.0 以降のバージョンでは、一部の UI 要素、サービス名 (例:
Windows Activation Service)、および構成ファイル (MetaBase.xml) が異なる場合があります。ご利用の環境に合わせて手順を調整してください。ASP リクエスト制限:「最大リクエストエンティティボディ制限」の設定は ASP アプリケーションにのみ影響し、他の種類の Web アプリケーションには適用されません。
Windows への IIS サービスのインストール (任意)
サーバーのデスクトップで、[スタート] > [コントロールパネル] の順にクリックします。
[表示方法] を [小さいアイコン] に設定し、[既定のプログラム] > [プログラムと機能] の順にクリックします。
左側のナビゲーションウィンドウで、[Windows の機能の有効化または無効化] をクリックします。
[Windows の機能] ダイアログボックスで、[インターネットインフォメーションサービス] を選択します。
[OK] をクリックし、インストールが完了するのを待ちます。
コンテンツキャッシュポリシーの設定
目的:HTTP 応答ヘッダーを設定し、ブラウザやプロキシサーバーが指定された期間、サーバーに再リクエストすることなくローカルキャッシュを使用するように指示します。
キャッシュのグローバルな無効化 (動的コンテンツ向け)
このメソッドは、デフォルトですべての Web サイトコンテンツのキャッシュを無効にします。これにより、ユーザーは訪問のたびに最新のデータを受け取ることができ、頻繁にコンテンツが変更される動的なサイトに最適です。
[ファイル名を指定して実行] ダイアログボックスに
inetmgrと入力して IIS マネージャーを開きます。左側の [接続] ウィンドウで、対象のサイトを右クリックし、[プロパティ] を選択します。
[プロパティ] ダイアログボックスで、[HTTP ヘッダー] タブをクリックします。
[コンテンツの有効期限を有効にする] を選択し、次に [すぐに期限切れにする] を選択します。
[OK] をクリックして保存します。
特定のディレクトリまたはファイルへのキャッシュ設定 (静的リソース向け)
このメソッドは、イメージ、CSS、JS ファイルなどの静的リソースを含むディレクトリに対して、長いキャッシュ期間を設定します。これにより、読み込み速度が大幅に向上します。
IIS マネージャーで、対象サイトのディレクトリツリーを展開します。
キャッシュを設定したい特定のディレクトリまたはファイル (例:
imagesディレクトリ) を右クリックし、[プロパティ] を選択します。[HTTP ヘッダー] タブをクリックし、[コンテンツの有効期限を有効にする] を選択します。
[有効期限] を選択し、30 日などの長いキャッシュ期間を設定します。
[OK] をクリックします。
ワイルドカードを使用したキャッシュポリシーの一括設定 (高度な設定)
このメソッドは、すべての .jpg ファイルなど、異なるディレクトリにある同じ種類のファイルに統一されたキャッシュポリシーを適用する場合に便利です。
IIS 6.0:この機能を実装するために MetaBase.xml ファイルを直接変更することは推奨されません。操作が複雑でリスクが高いためです。
IIS 7.0 以降 (推奨):構成には
web.configファイルを使用します。<location>要素と<staticContent>要素を使用すると、特定のファイルタイプに対してキャッシュポリシーを設定でき、より安全で柔軟なメソッドを提供します。
ASP の最大リクエストエンティティボディ制限の調整
目的:この設定は、クライアントが POST メソッドを使用して ASP ページに送信できるデータの最大量を制限します。デフォルト値は約 200 KB であり、大容量ファイルのアップロードが失敗する原因となることがあります。
IIS マネージャーインターフェイスを使用した設定 (推奨)
IIS マネージャーで、対象のサイトを選択します。
[機能ビュー] で、ASP 機能アイコンをダブルクリックします。
ASP の構成ページで、[制限プロパティ] を展開します。
[最大リクエストエンティティボディ制限] の値 (バイト単位) を変更します。
デフォルト値:
200,000(約 200 KB)例:50 MB のファイルアップロードをサポートするには、値を
52,428,800に設定します。
右側の [操作] ウィンドウで、[適用] をクリックして変更を保存します。
構成ファイルの直接編集
IIS Admin Service を停止します。
C:\Windows\System32\inetsrv\MetaBase.xmlファイルをバックアップしてから、テキストエディターで開きます。ファイル内で
AspMaxRequestEntityAllowedパラメーターを検索し、その値を変更します。デフォルト値:
204800(200 KB)例:500 MB のファイルアップロードをサポートするには、値を
524,288,000に設定します。
MetaBase.xmlファイルを保存して閉じます。
構成を適用するためのサービスの再起動
構成を変更した後、変更を有効にするには、対応する IIS サービスを再起動する必要があります。
IIS 6.0:サービスマネージャーで、IIS Admin Service を再起動します。
IIS 7.0/8.0:サービスマネージャーで、Windows Activation Service を再起動します。
キャッシュポリシーの確認
ご利用のブラウザの開発者ツール (キーボードショートカット:F12) で [ネットワーク] パネルを開きます。
Web サイトにアクセスし、キャッシュを設定したリソース (例:イメージ) を選択します。
[ヘッダー] セクションで、[応答ヘッダー] を確認します。
構成成功:応答ヘッダーに
Cache-Control: max-age=[秒数]またはExpires: [未来の日付]フィールドが含まれている必要があります。即時失効:応答ヘッダーに
Cache-Control: no-cacheまたは過去の日付の値を持つExpiresフィールドが含まれている必要があります。
よくある質問
構成の変更が有効にならないのはなぜですか?
この問題は通常、次のいずれかの理由で発生します。順番に確認してください。
誤ったサービスの再起動:正しいサービスが再起動されるまで、変更は適用されません。
IIS 6.0 の場合:
IIS Admin Serviceを再起動します。IIS 7.0/8.0 の場合:
Windows Activation Serviceを再起動します。
構成の上書き:より具体的な構成がグローバル設定を上書きしています。例えば、特定のディレクトリに設定されたキャッシュポリシーは、常にサイト全体のポリシーよりも優先されます。
検証時のブラウザキャッシュ:ご利用のブラウザがローカルキャッシュから古い応答を返している可能性があります。サーバーから直接新しい応答を取得するには、ブラウザのキャッシュをクリアするか、テスト中にブラウザの開発者ツールで「キャッシュを無効化」オプションを有効にしてください。
リクエストサイズの制限を調整した後も、ファイルのアップロードが失敗するのはなぜですか?
これは通常、Web アプリケーションが IIS サーバーレベルの設定とは別に、独自のアップロードサイズ制限を持っているために発生します。IIS の AspMaxRequestEntityAllowed 設定は、Web サーバーが受け入れる最大リクエストボディサイズのみを制御します。サーバー上で実行されているアプリケーション (例:ASP.NET アプリケーション) は、多くの場合、それよりも低い独自の制限を適用します。例えば、ASP.NET アプリケーションの web.config ファイルには、変更が必要な <httpRuntime> 設定が含まれている場合があります。