IIS で静的な Web サイトを構築する
投稿者 Keith Newman および Robert McMurray
このドキュメントでは、IIS Web サーバーをインストールし、それを静的コンテンツを処理するように構成するプロセスについて説明します。 静的コンテンツは、格納されているとおりに正確にユーザー配信される Web ページ (HTML) です。 これに対して、動的コンテンツは、ASP.NET、Classic ASP、PHP アプリケーションなどの Web アプリケーションによって生成されます。 静的コンテンツでは、すべてのユーザーに同じ情報が表示されます。動的コンテンツではユーザー固有の情報 (ユーザー名など) を表示できます。
静的コンテンツ Web サーバーは、HTML Web サイトをサポートするための IIS の最も基本的な構成です。 静的コンテンツ Web サーバーを使用すると、内部または外部の (パブリック) Web サイトをホストできます。 IIS 8 をインストールすると、既定のインストールによって、静的コンテンツ Web サーバーをサポートするために必要なすべての IIS モジュールが提供されます。 既定のインストールには、静的な HTML ファイル、ドキュメント、画像を処理する機能が含まれています。 IIS 8 では、静的コンテンツ サーバー用に既定のドキュメント、ディレクトリの参照、ログ記録、匿名認証がサポートされています。
前提条件
このチュートリアルを最大限に活用するには、次のいずれかのオペレーティング システムを実行しているコンピューターにアクセスできる必要があります。
- Windows Server® 2012
- Windows® 8
手順 1:IIS Web サーバーをインストールする
この手順は、Windows ユーザー インターフェイス (UI) を使用するか、コマンド ラインから実行できます。
UI を使用して Windows Server 2012 に IIS をインストールするには
スタート ページで [サーバー マネージャー] タイルをクリックし、[OK] をクリックします。
サーバー マネージャーで [ダッシュボード] を選択し、[役割と機能の追加] をクリックします。
役割と機能の追加ウィザードの [開始する前に] ページで、[次へ] をクリックします。
[インストールの種類の選択] ページで、[役割ベースまたは機能ベースのインストール] を選択し、[次へ] をクリックします。
[対象サーバーの選択] ページで、[サーバー プールからサーバーを選択] を選択し、コンピューター名を選択して、[次へ] をクリックします。
[サーバーの役割の選択] ページで、[Web サーバー (IIS)] を選択し、[次へ] をクリックします。
[機能の選択] ページで、事前選択されている機能を確認し、[次へ] をクリックします。
[Web サーバーの役割 (IIS)] ページで、[次へ] をクリックします。
[役割サービスの選択] ページで、事前に選択された役割サービスを書き留めて [次へ] をクリックします。
Note
静的コンテンツ Web サーバー用の IIS 8 の既定の役割サービスをインストールしてください。
[インストール オプションの確認] ページで、選択したオプションを確認して、[インストール] をクリックします。
[インストールの進行状況] ページで、Web サーバー (IIS) の役割と必要な役割サービスのインストールが正常に完了したことを確認し、[閉じる] をクリックします。
IIS が正常にインストールされたことを確認するには、Web ブラウザーに次の URL を入力します。
http://localhost
IIS の既定の [ようこそ] ページが表示されます。
UI を使用して Windows 8 に IIS をインストールするには
スタート ページで「 コントロール パネル」と入力し、検索結果の [コントロール パネル] アイコンをクリックします。
コントロール パネルで [プログラム]をクリックし、 [Windows の機能の有効化または無効化]をクリックします。
[Windows の機能] ダイアログ ボックスで、[インターネット インフォメーション サービス] をクリックして [OK] をクリックします。
このアクションにより、IIS 8 の既定の機能がインストールされます。 静的コンテンツ Web サーバー用の既定の機能のみをインストールしてください。
IIS が正常にインストールされたことを確認するには、Web ブラウザーに次の URL を入力します。
http://localhost
IIS の既定の [ようこそ] ページが表示されます。
コマンド ラインを使用して IIS をインストールするには
管理者特権でのコマンド プロンプトで、またはスクリプトに次のコマンドを入力します。
Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
手順 2: Web サイトを追加する
この手順では、IIS マネージャー UI を使用するか、またはコマンド ライン ウィンドウで Appcmd.exe コマンドを実行して、IIS に Web サイトを追加する方法について説明します。
UI を使用して、Web サイトを追加するには
IIS マネージャーを開きます。
- Windows Server 2012 の場合は、[スタート] ページで [サーバー マネージャー] タイルをクリックし、[OK] をクリックします。 [サーバー マネージャー] で、[ツール] メニューをクリックしてから [インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
- Windows 8 の場合は、[スタート] ページで「コントロール パネル」と入力し、検索結果の [コントロール パネル] アイコンをクリックします。 コントロール パネル 画面で、 [システムとセキュリティ]、 [管理ツール]、 [インターネット インフォメーション サービス (IIS) マネージャー]の順にクリックします。
[接続] ウィンドウで、ツリー内の [サイト] ノードを右クリックし、 [Web サイトの追加]をクリックします。
[Web サイトの追加] ダイアログ ボックスで、[サイト名] ボックスに Web サイトのフレンドリ名を入力します。
[アプリケーション プール] ボックスに表示されていないアプリケーション プールを選択する場合は、 [選択]をクリックします。 [アプリケーション プールの選択] ダイアログ ボックスで、 [アプリケーション プール] ボックスの一覧からアプリケーション プールを選択し、 [OK]をクリックします。
[物理パス] ボックスで、Web サイトのフォルダーの物理パスを入力するか、または参照ボタン ([...]) をクリックし、ファイル システム内を移動してフォルダーを見つけます。
前の手順で入力した物理パスがリモート共有へのパスである場合は、[接続] をクリックして、そのパスにアクセスするためのアクセス許可を持つ資格情報を指定します。 特定の資格情報を使用しない場合は、 [接続] ダイアログ ボックスで [アプリケーション ユーザー (パススルー認証)] オプションを選択します。
[種類] 一覧から Web サイトのプロトコルを選択します。
. Web サイトの静的 IP アドレスを指定する必要がある場合は (既定では、これは [未使用の IP アドレスすべて] に設定されています)、[IP アドレス] ボックスに IP アドレスを入力します。
[ポート] テキスト ボックスにポート番号を入力します。
必要に応じて、[ホスト ヘッダー] ボックスに Web サイトのホスト ヘッダー名を入力します。
サイトに何も変更を加える必要がなく、Web サイトをすぐに使用可能にしたい場合は、[Web サイトを直ちに開始する] チェック ボックスをオンにします。
OK をクリックします。
コマンド ラインを使用して、Web サイトを追加するには
管理者特権でのコマンド プロンプトまたはスクリプトで次の構文を使用します。
appcmd add site /name:
string /id:
uint /physicalPath:
string /bindings:
string
Note
この構文が機能するには、ディレクトリ %windir%\system32\inetsrv
にいるか、またはこのディレクトリがパスに含まれている必要があります。
変数 name
は名前であり、変数 id
はサイトに割り当てる正の整数です。 変数 name
と id
は、appcmd を使用してサイトを追加するために必要な唯一の変数です。 ただし、bindings
と physicalPath
の属性の値を指定せずにサイトを追加すると、そのサイトは起動できなくなります。
変数 physicalPath
は、ファイル システム内のサイト コンテンツの絶対パスです。
変数 bindings
には、サイトにアクセスするために使用される情報が含まれています。 これは protocol/IP_Address:port:hostheader
という形式である必要があります。 たとえば、Web サイトの場合は、http/*:85:
のバインドにより、すべての IP アドレスとドメイン名 (ホスト ヘッダーまたはホスト名とも呼ばれす) についてポート 85 で HTTP 要求をリッスンするようにサイトが構成されます。 これに対して、http/*:85:marketing.contoso.com
のバインドでは、すべての IP アドレスとドメイン名 marketing.contoso.com についてポート 85 で HTTP 要求をリッスンするように Web サイトが構成されます。
c:\contoso
にコンテンツがあり、すべての IP アドレスと marketing.contoso.com のドメイン名についてポート 85 で HTTP 要求をリッスンする 2 の ID を持つ contoso という名前の Web サイトを追加するには、コマンド プロンプトで次のコマンドを入力します。
appcmd add site /name:contoso /id:2 /physicalPath:c:\contoso /bindings:http/*:85:marketing.contoso.com
手順 3: 匿名認証を構成する
匿名認証では、ユーザー名またはパスワードの入力を求めることなく、Web サイトのパブリック領域へのアクセス権がユーザーに与えられます。 匿名認証は、既定の匿名ユーザー アカウント (IUSR) を使用して構成できます。または、匿名ユーザーのローカル ユーザー アカウントを設定することもできます。
UI を使用して匿名認証を構成するには
IIS マネージャーの [機能ビュー] で、[認証] をダブルクリックします。
[認証] ページで、[匿名認証] を選択します。
[操作] ウィンドウで、[編集] をクリックして、匿名ユーザーがサイトに接続するためのセキュリティ プリンシパル (ユーザー資格情報) を設定します。
[匿名認証資格情報の編集] ダイアログ ボックスで、次のいずれかのオプションを選択します。
サイトまたはアプリケーションにアクセスするために IIS で使用する特定のユーザー アカウントを構成する場合は、[特定のユーザー] を選択します。 次に、[設定] をクリックして [資格情報の設定] ダイアログ ボックスを開き、ID のユーザー名とパスワードを入力します。 次に、 [OK] をクリックします
現在、アプリケーション プールのプロパティ ページで指定されているアカウントを使用して IIS プロセスを実行する場合は、[アプリケーション プール ID] を選択します。 既定では、この ID は IUSR アカウントです。
重要
IUSR アカウントを使用する場合は、匿名ユーザーに、そのアカウントに関連付けられたすべての内部ネットワーク アクセス権が付与されます。
[OK] をクリックして [匿名認証資格情報の編集] ダイアログ ボックスを閉じます。
コマンド ラインを使用して匿名認証を構成するには
次の構文を使用して、匿名アクセスのための既定のアカウントを変更します。
appcmd set config /section:anonymousAuthentication /userName:
string /password:
string
変数 username
は、匿名認証のために IIS で使用するアカウントであり、変数 password
は、既定では構成ファイル内で暗号化されているパスワードです。 たとえば、匿名アクセスのために Moe という名前のアカウントと pssword1 のパスワードを使用するには、コマンド プロンプトで次のコマンドを入力します。:
appcmd set config /section:anonymousAuthentication /userName:Moe /password:pssword1
手順 4: 既定のドキュメントを構成する
Web サイトへのクライアント要求にドキュメント名が含まれていない場合、IIS では、名前が既定のドキュメントとして定義されているファイルを探します。 通常、既定のドキュメント名は Default.htm です。 既定のドキュメント名の一覧を優先順位の順に定義できます。
UI を使用して既定のドキュメントを構成するには
- IIS マネージャーの [機能ビュー] で、[既定のドキュメント] をダブルクリックします。
- [操作] ウィンドウで、[追加] をクリックします。
- [名前] ボックスで、既定のドキュメントの一覧に追加するファイル名を入力して [OK] をクリックします。 このファイル名は、既定のドキュメントの一覧の一番上に追加されます。
- 必要に応じて、一覧内の既定のドキュメントを選択し、[操作] ウィンドウで [上へ移動] または [下へ移動] をクリックして、ファイルの優先順位を変更します。
- 必要に応じて、一覧内の既定のドキュメントを選択し、[操作] ウィンドウで [削除] をクリックして、既定のドキュメントとして使用したくないファイル名をすべて削除します。
コマンド ラインを使用して既定のドキュメントを構成するには
既定のドキュメントの一覧にファイル名を追加するには、次の構文を使用します。
appcmd set config /section:defaultDocument /+files.[value='
string']
変数 string は、一覧に追加するファイル名です。 たとえば、既定のドキュメントの一覧に home.html という名前のファイルを追加するには、コマンド プロンプトで次のコマンドを入力します。
appcmd set config /section:defaultDocument /+files.[value='home.html']
既定のドキュメントの一覧から home.html という名前のファイルを削除するには、コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。
appcmd set config /section:defaultDocument /-files.[value='home.html']
手順 5: 静的コンテンツの圧縮を構成する
必要に応じて、帯域幅をより効率的に使用し、Web サイトのパフォーマンスを向上させるために、静的コンテンツを圧縮するように Web サーバーを構成できます。
UI を使用して静的コンテンツの圧縮を構成するには
IIS マネージャーの [機能ビュー] で、[圧縮] をダブルクリックします。
[静的なコンテンツの圧縮を有効にする] を選択して、静的コンテンツを圧縮するように IIS を構成します。
[静的な圧縮] ボックスで、次の設定を構成します。
- 必要に応じて、[次の値より大きいファイルのみ圧縮する (バイト)] を選択し、IIS で圧縮する最小ファイル サイズを入力します。 既定のサイズは 256 バイトです。
- [キャッシュ ディレクトリ] テキスト ボックスで、ローカル ディレクトリのパスを入力するか、または参照ボタン ([...]) をクリックしてディレクトリを見つけます。 静的ファイルは圧縮された後、有効期限が切れるか、またはコンテンツが変更されるまで、この一時ディレクトリにキャッシュされます。 この一時ディレクトリは、NTFS 形式のパーティション上のローカル ドライブに存在する必要があります。 このディレクトリは圧縮できず、共有してはいけません。
- 必要に応じて、[アプリケーション プール単位のディスク容量の制限 (MB)] を選択し、静的コンテンツを圧縮するときに IIS で使用するアプリケーション プールあたりの最大容量 (MB 単位) を入力します。 たとえば、サーバー上に 20 のアプリケーション プールが存在し、[ディスク容量の制限] が 100 に設定されている場合、最大ディスク容量は 2 GB になります。 [アプリケーション プール単位のディスク容量の制限 (MB)] オプションをクリックし、その下のテキスト ボックスに数値を入力した場合は、設定された制限に達すると、最低使用頻度ルールに従って IIS によって一時ディレクトリが自動的にクリーンアップされます。 既定値は、アプリケーション プールあたり 100 MB です。
[操作] ウィンドウで [適用] をクリックします。
コマンド ラインを使用して静的コンテンツの圧縮を構成するには
静的コンテンツの HTTP 圧縮を有効にするには、コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。
appcmd set config /section:urlCompression /doStaticCompression:True
静的コンテンツの圧縮の設定を構成するには、次の構文を使用します。
appcmd set config /section:urlCompression /minFileSizeforComp:
int /directory:
string /maxDiskSpace:
int
変数 minFileSizeforComp
は、圧縮するファイルに含まれている必要がある最小バイト数を設定します。 既定値は 256 です。 変数 directory
は、静的ファイルの圧縮されたバージョンが一時的に格納およびキャッシュされるディレクトリを指定します。 既定値は次のフォルダーです。
%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files
変数 maxDiskSpace
は、静的コンテンツを圧縮するときに IIS で使用するアプリケーション プールあたりの最大容量 (MB 単位) を設定します。 既定値は、アプリケーション プールあたり 100 MB です。
次のステップ
Web サイトを十分にテストして、想定どおりに機能することを確認します。 その後、次の機能を構成することを検討してください。
- トラブルシューティングや Web サーバーのパフォーマンスの最適化に役立てるため、IIS のログを設定します。 手順については、「 Configure Logging in IIS」を参照してください。
- Web サーバーのセキュリティを強化するため、要求フィルタリングを構成します。 手順については、「 Configure Request Filtering in IIS」を参照してください。