この特集のトップページへ
Chapter 8:プレゼンテーション層の構築

8.1.3 サイトのプロパティ
●ホームディレクトリ
 [ホームディレクトリ]ページでは,ユーザーがこのサイトを示すURLにアクセスしてきたときに,Windows 2000のファイルシステムのどのフォルダ内のコンテンツを見せるのか,また,どのような操作を許すのかを設定する(Fig.8-11)。この項目の設定は,非常に重要である。

Fig.8-11 [ホームディレクトリ]ページ
fig8_11

○リソースの場所
 [このリソースへの接続時に使用されるコンテンツの場所]では,どこにあるファイルをユーザーに送信するのかを設定する。一般には,[このコンピュータにあるディレクトリ]を指定し,その下の[ローカルパス]の部分に公開するフォルダ名を指定する。

 [ほかのコンピュータにある共有ディレクトリ]を選択すれば,別のコンピュータで共有設定されているフォルダを指定することができ,[URLへのリダイレクト]を選択すれば,特定のURLにリダイレクトさせることもできるが,そのような設定はパフォーマンスの低下を招く点に注意したい。なぜなら,共有ディレクトリにせよURLへのリダイレクトにせよ,ネットワーク経由でコンテンツを取り出すことになるためである。

 デフォルトでは,[既定のWebサイト]も[管理者用Webサイト]も[ローカルパス]に設定されており,前者はC:\inetpub\wwwrootフォルダに,後者はC:\WINNT\System32\inetsrv\iisadminフォルダに設定されている。つまり,ユーザーが“http://サーバー名/”として接続するとC:\inetpub\wwwrootフォルダの内容が,“http://サーバー名:5799/”として接続するとC:\WINNT\System32\inetsrv\iisadminフォルダの内容が,それぞれ表示されることになる。

○操作の権限
 [ローカルパス]の下の部分には,どのような操作をユーザーに対して許すのかを設定するチェックボックスがある。これらのチェックボックスの意味は,次のとおりである。

スクリプトソースアクセス
 フォルダに置かれたスクリプトファイルを参照([読み取り]にチェックが付いていたとき)または書き込み([書き込み]にチェックが付いていたとき)することを許す。
 スクリプトファイルとは,先に説明したように,スクリプトエンジンから実行されるプログラムのことである。もし,[スクリプトソースアクセス]にチェックを付けると,Webにアクセスしてくるユーザーがそのスクリプトファイルをダウンロードできるようになる。スクリプトファイルのなかには,データベースアクセスのためのパスワードなど,機密性の高い情報を記載することもあるため,このような設定は非常に危険である。よって,特別な事情がない限り,[スクリプトソースアクセス]にチェックを付けるべきではない。
 
読み取り
 フォルダに置かれたファイルを参照することを許す。通常は,このオプションにチェックを付ける。
 ただし,セキュリティ上の理由から,スクリプトファイルを置いたフォルダについてはチェックを付けないこともある。これは,IIS 4.0までの設定の名残である。IIS 4.0以前では,[スクリプトソースアクセス]という項目がなく,[読み取り]権限を付けると,それが静的なファイル(HTMLファイルなど)だろうがスクリプトファイルだろうが読み取ることができた。それを避けるため,IIS 4.0以前では,静的なファイルを置く仮想ディレクトリとスクリプトファイルを置く仮想ディレクトリとを分け,前者には[読み取り]の権限を付けるが,後者には[読み取り]の権限を付けない,という設定をすることが多かった(スクリプトの実行には[読み取り]の権限は必要ない)。
 それに対しIIS 5.0では,[スクリプトソースアクセス]にチェックを付けなければ,[読み取り]にチェックが付いていてもスクリプトファイルは読み取れないようになっている。そのため,IIS 4.0以前のように,静的なファイルとスクリプトファイルを置く場所を分離しなくてもよくなった。
 なお,ファイルがスクリプトであるのかないのかは,ファイルの拡張子で判断される。後述の[アプリケーションのマッピング](Fig.8-13)で設定されているファイルの拡張子が,スクリプトファイルとしてみなされる。
 
書き込み
 フォルダに対してファイルをアップロードすることを許す。通常は,これにチェックを付けない。チェックを付けると,Windows 2000の[マイネットワーク]内の[ネットワークワークプレース]の機能を使い,WebDAVプロトコルを用いてファイルをアップロードできるようになる。しかし半面,きちんと管理しないと不正な書き換えの原因となるため,利用はイントラネット内だけに留めるべきである。
 
ディレクトリの参照
 フォルダ内のファイルの一覧参照を許す。[ディレクトリの参照]にチェックを付けた場合,Webにアクセスしてきたユーザーは,フォルダ内に含まれている全ファイルのファイル名を参照できるようになる。そのため,一般にこのオプションにはチェックを付けないほうがよいだろう。
 
ログアクセス
 アクセスログを記録する。通常は,このオプションにチェックを付ける。アクセスログは,[Webサイト]ページ(Fig.8-7)で指定した形式で保存される。
 
このリソースに索引を付ける
 チェックを付けると,Index Serverによる検索の対象となる。検索の必要がない場合には,チェックを付けないほうがパフォーマンスは向上する。
○実行アクセス権
 [実行アクセス権]の部分では,サイト内に置かれた実行ファイルまたはスクリプトファイルのうち,どのようなファイルをサーバー側で実行許可するのかを設定する。次のいずれかの設定をすることができる。

[なし]
 サーバー側でアプリケーションを実行することはできない
 
[スクリプトのみ]
 スクリプトファイルだけを実行できる。
 
[スクリプトおよび実行可能ファイル]
 スクリプトファイルと実行形式ファイル(EXEファイルやDLLファイル)を実行できる。

 もし,静的なコンテンツ(HTMLファイルや画像ファイルなど)だけを提供したい場合には,[なし]を選択すれば,サーバー上でプログラムが起動することはなくなり,セキュリティが最も高くなる。

 逆に,サーバー側でWebアプリケーションを実行したい場合には,[スクリプトのみ]または[スクリプトおよび実行可能ファイル]を選択する。ASPを利用してWebアプリケーションを構築するのであれば,[スクリプトのみ]を選択するのが無難である。そうしておけば,万一誤ってIISで公開されているフォルダにEXEファイルを置いてしまっても,それがサーバー側で実行されてしまう危険性がないためである。

○アプリケーション保護
 [アプリケーション保護]の部分では,Webアプリケーションをどのようにして実行するのかを設定する。ここでは,[低(IISプロセス)],[中(プール)],[高(分離プロセス)]のいずれかを選択する。このプロパティは,IISの安定動作とパフォーマンスに影響を与えるため,慎重に設定しなければならない(Fig.8-12)。

[低(IISプロセス)]
 IISと同じプロセス内で動作させる。このオプションを選択したときが最も高速に動作する。しかし半面,Webアプリケーションに不具合があると,その不具合がIIS本体にまで波及し,IIS自身が停止するなど,大きなダメージを受けることがある。
 
[中(プール)]
 IISと別空間のプロセスで動作させる。[中(プール)]に設定されているすべてのWebアプリケーションは,同じプロセス空間で動作する。よって,あるWebアプリケーションに不具合があった場合,その影響が別のWebアプリケーションに波及することはあるが,IIS本体にまで波及することはない。デフォルトの設定である。
 
[高(分離プロセス)]
 仮想ディレクトリごとに1つのプロセスを起動し,そのプロセス内でWebアプリケーションを動作させる。よって,ある仮想ディレクトリに含まれるWebアプリケーションに不具合があっても,別の仮想ディレクトリに含まれているWebアプリケーションに影響は出ないし,IIS本体にも影響は出ない。このオプションは最も安全な設定である半面,動作速度は遅い。また,仮想ディレクトリごとにプロセスを消費するため,リソース低下の懸念もある。IIS 5.0のヘルプファイルには,パフォーマンス上の理由から,10個以上の分離プロセスを起動しないようにすべきだと明記されている。そのため,この設定はデバッグ時やまだ安定していないWebアプリケーションの実行に用いると考えるのがよいだろう。
 なお,[高(分離プロセス)]を選択した場合,万一Webアプリケーションが不具合を起こすと,プロセスが丸ごと異常終了し,それに伴い実行中のトランザクションもアボートする(その後,クライアントから次の要求があると,プロセスは自動的に再起動する)。よって,実行効率よりも安定性を極力高めたいWebアプリケーション(たとえば完全なトランザクション処理を必須とする場合)に用いられることもある。

 一般には,サイト全体に対しては,デフォルトの設定である[中(プール)]を使う。後述する仮想ディレクトリの設定にも同様の設定があり,特にパフォーマンスを向上させたい仮想ディレクトリに対しては[低(IISプロセス)],デバッグ中のアプリケーションを含む仮想ディレクトリに対しては[高(分離プロセス)]を設定することになる。

Fig.8-12 アプリケーション保護の設定による動作の違い
fig8_12

Prev 7/43 Next