共有ホスティング向け IIS 7 サイトのプロビジョニング
公開日: 2007 年 10 月 30 日 (作業者: walterov (英語))
更新日: 2008 年 3 月 12 日 (作業者: walterov (英語))
以下の記事には、共有ホスティング環境でのサイトのプロビジョニングに関する推奨事項が記載されています。
- ログ記録および診断の構成
- 委任管理ユーザーを有効にする
- アプリケーション プールを使用したサイトの分離
- ASP .NET 一時コンパイル ディレクトリの構成
ログ記録および診断の構成
概要
IIS 7 では、IIS 6 と同様に Web サイトのアクティビティやトラフィックのログ記録が可能なほか、失敗した要求のトレース機能が新たに追加されています。要求ベースのトレースでは、IIS による要求処理の各ステップを確認して、処理内容を確かめることができます。
パフォーマンスの低下や認証エラー、または ASP/ASP.NET からのサーバー エラー 500 といった問題は、トラブルシューティングが困難な場合があります。失敗した要求トレースでは、要求に関するトレース イベントをバッファリングし、エラー発生時にそれらのイベントをディスクに書き込みます。サーバー管理者は、トレース規則によってエラーを定義します。このトレース規則は、すべてのコンテンツおよび状態コードと対象として設定したり、単一の状態コードと副状態コードの組み合わせ (例: 404.2) について個別に設定したりできます。
共有ホスティングでは、失敗した要求トレースをサイト所有者に委任することをお勧めします。そうすることにより、サイト所有者は、サポートに電話で問い合わせることなく、自分のサイトの問題を特定できるようになります。トレースのログは、logs\FailedRequestLogFiles フォルダーに保存できます。これに関しては、「コンテンツ ストレージ用のリモート ファイル サーバーの設定」セクションの「共有および NTFS アクセス許可」を参照してください。
構成手順
失敗した要求トレース
コマンド ラインを使用して、失敗した要求トレースのログ ファイルの場所を構成します。以下のように行います。
コマンド プロンプトを開き、以下のコマンドを実行します。
%windir%\system32\inetsrv\AppCmd set config -section:traceFailedRequestsLogging.directory:\remotefileserver\content$<sitename>\logs\failedRequestLogfiles
W3SVC のすべてのログ記録フィールドを構成することをお勧めします。問題が発生した場合に、W3SVC ログ記録情報が必要になることがあります。
失敗した要求トレースに関する詳細については、https://www.iis.net/articles/view.aspx/IIS7/Managing-IIS7/Diagnostics-in-IIS7/Using-Failed-Request-Tracing/How-to-Enable-Failed-Request-Tracing-for-UNC-Hosti にある、失敗した要求トレースのチュートリアルを参照してください。
ログ ファイルの場所
コマンド ラインを使用して、W3SVC ログ ファイルの場所を構成します。以下のように行います。
コマンド プロンプトを開き、以下のコマンドを実行します。
%windir%\system32\inetsrv\AppCmd set config -section:-logfile.directory:\remotefileserver\content$<sitename>\logs\logfiles
診断に関する詳細については、「Web サーバー エラーのトラブルシューティング」を参照してください。
委任管理ユーザーを有効にする
Web サイトをホストまたは管理するユーザーは、IIS マネージャーを使って、開発者やコンテンツ所有者に対して管理機能を委任できます。これにより、所有コストとサーバー管理者の管理負担を軽減できます。
手順
IIS マネージャーを使用して Web サイトの委任ユーザーを有効にするには、以下の手順に従ってください。****
- [管理ツール] に移動し、[インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
- サーバー名のノードを展開します。
- サイト ノードを展開します。
- ユーザーを有効にしたいサイトの名前をダブルクリックします。
- [IIS マネージャーのアクセス許可] アイコンをダブルクリックします。
- [操作] ウィンドウの [ユーザーの許可] をクリックします。
- [ユーザーの許可] ダイアログ ボックスで、Windows ユーザーまたは IIS マネージャー ユーザーのどちらを使用するか選択します。ここでは、Windows ユーザーを選択し、名前を入力してから [OK] をクリックします。
委任に関する詳細については、https://www.iis.net/articles/view.aspx/IIS7/Managing-IIS7/Delegation-in-IIS7/Delegating-permissions-in-IIS-Manager/Configuring-Remote-Administration-and-Feature-Dele?Page=4 にアクセスして、リモート管理および機能の委任の構成の概要を参照してください。**
アプリケーション プールを使用したサイトの分離
独自のアプリケーション プールに属し、一意なプロセス ID で構成されている各アプリケーションは、最も高いレベルの分離を実現します。各アプリケーションは独自のプロセスを所有しているので、もしアプリケーションが応答を停止したとしても、サーバー上の他のサイトに影響を及ぼすことはありません。こうした理由から、共有ホスティング環境では、このような分離の構成をお勧めします。
IIS 7 の新しい機能
IIS 7 では、アプリケーション プールが applicationHost.config ファイルにアクセスしないで済む構成分離サービスが導入されました。IIS 7 は、起動すると applicationHost.config ファイルを読み込み、各アプリケーション プールの構成が含まれる一時ファイルを書き込みます。ワーカー プロセスは、そのファイルにのみアクセスし、他のプールの構成ファイルには、アクセスしません。この機能によってセキュリティが強化され、パフォーマンスが向上します。
アプリケーション プールに関する詳細については、「IIS 7 アーキテクチャの概要」の 「IIS 7 のアプリケーション プール」セクションを参照してください。
ASP .NET 一時コンパイル ディレクトリの構成
ディレクトリ コード
既定では、一時コンパイル ディレクトリは次の場所になります。
"%windir%\Microsoft.NET\Framework\{version}\Temporary ASP.NET Files"
このディレクトリには、ASP.NET によって生成されるすべての一時ファイルが格納されます。このディレクトリは、すべてのアプリケーション プールで共有されます。信頼レベル "中" が設定されている場合は必須ではありませんが、セキュリティ向上の観点から、アプリケーション プールごとにコンパイル ディレクトリを作成することをお勧めします。
ディレクトリの作成と設定
以下に、一意の一時コンパイル ディレクトリを作成し設定する方法を示します。
1. コマンド プロンプトを開いて以下のコマンドを実行し、フォルダーの作成およびアクセス許可の設定を行います。
md %systemdrive%\inetpub\tempcompilation\aspnettemp\<sitename>
cacls %systemdrive%\inetpub\tempcompilation\aspnettemp\<sitename> /G AppPoolUsername:F Administrators:F System:F
2. 以下のコマンドを実行し、一時コンパイル ディレクトリを 1つのサイトに対して設定します。
%windir%\system32\inetsrv\appcmd set config "<sitename>" -section:compilation -tempDirectory:%systemdrive%\inetpub\tempcompilation\aspnettemp\<sitename> /commit:webroot