Share via


【IIS7】 様々な用途のWebサーバーとして

さーて Windows Server World のスライドも提出したということで溜まっているブログ投稿をどんどん出していきます。

Tech・Ed のセッションの二部に関してこの投稿で整理します。

・様々な用途の Webサーバーとして

○IIS の強みってなんだろう?

もちろん GUI ベースなのが Windows なわけで例えば操作性を考えた時に同じ MMC という管理コンソールのテンプレートがあることによっていったん慣れると知らない機能でもなんとなくどこを押すのかがわかる なんていうメリットもあったりすると思います。ただ、IIS と考えた時に今 インターネットの Web サーバーを扱っている人の多くは Windows じゃない、あるいは Windows だけど Apache のようなケースが結構ある状況の中で、GUI の 操作が統一されているというのは実はメリットじゃないかもしれませんね。

むしろ私の考えるメリットは.NETやPHP・Rubyなどそれぞれで複数バージョンを同一マシン内で使いたいケースにおいて、アプリケーションプールの仕組みがかなり重要な役割を果たすことで比較的容易に複数のプラットフォームの複数バージョンを同一のサーバーに集約できることかなと考えています。特にホスティング環境などにおいてサイト数も多ければ、利用したい環境も複数作りたいなんていうケースで IIS7 は結構強力だと考えられます。その後で Windows の従来からの操作性により、それほどスキルが高くない人にも引き継ぎができるようなスキームで強い気がします。

○PHPの複数バージョン対応

実はインストールマニアックスでお世話になっていて、第二回の決勝大会でスペシャルコメンテーターをしていただいた浅見さんがTech・Ed の会場で行われた ライトニングトークでこの話しをしてくださいました。FastCGI でPHPを動作させることが今の IIS ではマイクロソフトの推奨なわけですが、FastCGI の設定で exe のあとに | –c パス とすることでアプリケーション毎の php.ini 設定ができます。そこで大事なのは IIS7.5からは FastCGI のアイコンが IIS マネージャーにあるわけですが、IIS7.0 の場合は Extensions から Administration Packをインストールする必要がある点です。

しかし、.conf や .htaccess に慣れてる人なら applicationHost.config の中にある FastCGI 設定を確認していただいて、整合性がとれた記述になっているかをご確認いただくといいんでしょうね。それに確実です。この方法であれば IIS7.0 でも Administration Pack を入れずに設定できます。

そして PHP5.3 に関してはサイト毎の設定というのはもっと簡単になっています。つまりここまでの話しは PHP5.2.x までの話しと思っておいていただくといいと思いますが、知っていた方が対処ができるのでお薦めですね。さて、PHP5.3に関する点は下記の記事を参照いただければと思っています。

https://blogs.iis.net/ruslany/archive/2009/07/11/per-site-php-configuration-with-php-5-3-and-iis.aspx

Ruslan は IIS の開発チームにあって、.NET じゃないものを多く取り扱っている人で .NET 以外のアプリケーションフレームワークを IIS 上で動作する方法を探している人は Ruslan の書いていることを追いかけるといいと思います。

○Server CoreでASP.NET

Server Coreが出た時にご紹介したところ、多くの .NET 開発者の方から「ええーー」と言われました。それは Server Core が .NETを搭載していなかったからで、ASP.NET も PowerShell も動きませんでした。これは何度も申し上げているように、Server Core の設計思想との乖離で、基本的なネットワーク機能を軽いサーバーで実現するためのサーバーとして設計されているにも関わらず多くのお客様の要望から IIS を.NETなしで搭載したことに起因しています。

で、Windows Server 2008 R2 の Server Core では .NET Framework のサブセットが搭載され、ASP.NETもPowerShell2.0 も動作するというところまで辿り着きました。DMZに置くサーバーとして採用し始めているお客様の例を結構聞くようになってきています。これで複数の階層でのリダイレクトやリバースプロキシー構造などがよりとりやすくなったことは間違いないと思います。リバースプロキシーについてはこれからの投稿で登場するARRモジュールでIISだけでも実装できるようになっています。

第二部はここまで。