Share via


【IIS7】 サーバーコア Part I

コンフィグレーションの話ばっかりだと飽きますよね、なんでちょっとテーマをシフトします。でも独自のサーバーモジュールをご自身で開発するとかいうことになったらどう構成するんだとかいう話も出てきます。その辺に話が及んだら またPart Vとして継続しましょう。

さて、サーバーコアです。既にIIS7がどう変わるのかというイメージを掴んでいただくためにモジュール構造になるという話は書きましたし、その大まかな効用についても触れました。今回からはもう少し実体が見えるような話を書こうと思ってます。製品が出荷するまではUIも変更が入るでしょうし、まだブログに掲載するのは厳しいので残念ながらしばらく文字ベースでいきます。MDCのキーノートでもやっていたと思いますが、モジュール構造になったイメージを掴んでいただく一番いい方法はIISの機能を全部はずしてしまうのを体験いただくことです。inetmgr.exe (前に Web Server Managerと書きましたが今のVistaでは名前が既に違う模様)でやってもいいんですが、どうせなら話の流れに合わせて.configベースでやってみましょう。

まずはお試しいただくのであれば環境が必要ですが、MSDNをご契約いただいている方であればサブスクライバーダウンロードというサービスでWindows VistaのビルドをISOファイルの形式で入手することができます。マイクロソフトではCTPというプログラムで出荷前製品の節目節目で現在の開発中ビルドを実際に触っていただくことができるようにしています。MSDNで入手できるのはこのCTPビルドで、順番に ビルド番号で 5231、5270、そして2月度ということで February CTP と呼ばれている 5308 のビルドがダウンロードできる状況です。工程が後の方がどんどん製品に近づいていきますので今お試しいただくのであれば 5308 ビルドをお使いいただくのがいいでしょう。

さて、ということで環境を準備し、Control Panel から Programs、Advanced Programs を順に選択し、Windowsの機能をインストールする箇所があります。そこでIIS7をインストールしましょう。FTPは試すのでなければ要らないと思います。また忘れてはいけないのはWAS(Windows Activation Service)もIISが依存しているので必要になるということです。エラーが出るかもしれませんが、開発途上ということで無視してください。インストール後、恒例の https://localhost できちんと動作しているかを確認しましょう。Under Construction が出ればIIS7が動いてます。

動作確認したら今回のテーマに沿って進んでいきます。%SystemRoot%\System32\inetsrv のフォルダを見にいきます。ここに 件の applicationHost.config があるはずです。IIS7ではサイト、アプリケーションの単位で .NETフレームワークの構成と同じように web.config をそれぞれ持って個別な設定ができますが、ここでは特にサイトとかを作っていない環境があるとします。仮想ディレクトリとかもありませんからwwwroot下に iisstart.htm, pagerror.gif だけがあるでしょう。これだけで確認できます。

applicationHost.config をそのままメモ帳を起動して編集しようとするとアクセス違反になるのでメモ帳は右クリックしてAdministratorとして起動します。そして開こうとするときちんと.configファイルを開くことができます。この辺がセキュアになってる訳です。もう一つ、セクションを削除する操作をしようとしているのでコピーしておきましょうね、applicationHost.configを。名前はなんでもいいです。後でセクションを戻すためです。

さあ 思い切って 以下のセクションを空にしましょう。

<globalModules> <modules> <handlers>

さて、 https://localhost にアクセスしてみましょう。どうなるんでしょうか、一体?
そうです。真っ白な画面が出て読み込みが終了します。
開発チームの言葉を借りると「マイクロソフトが今までにビルドした中で最も高速で最もセキュアなWebサーバー」を今 目の前にしているということです。もちろん何も処理してませんのでWebサーバーとは呼べませんが、ご覧の通り、空にしたセクションの内容こそがIIS7のモジュール化されている機能の一覧な訳です。それをゼロにしたのだから当然の結果です。

通常はapplicationHost.config からモジュールを引き抜くのはせず、マシン自身に機能をインストールしたくないのであれば、インストールを行った画面でチェックを外すことになるでしょう。一方でアプリケーション単位でどのモジュールを使うかを制御するにはそれぞれの web.config で<modules> 内の行を消したり 追加する方法で制御できます。

かなり柔軟な構造じゃないですか? I LOVE IIS7!

Part II ではまた別の視点でサーバーコアを見ていくことにしましょう。

Comments

  • Anonymous
    January 01, 2003
    IIS7は劇的に変わると聞いています。 デプロイ・パフォーマンス・セキュリティ・スケーラビリティなど 設計者・開発者・サーバ管理者がどのような恩恵を受けることができるのかとても気になっています。 ホワイトペーパーだけじゃなく、開発者・エバンジェリストの発信するメッセージに 注目したいと思います。とにかくたのしみです。さて、サーバーコアです。既にIIS7がどう変わるのかというイメージを掴んでいただくためにモジュール構造になるという話は書きましたし、その大まかな効用についても触れました。今回からはもう少し実体