webサーバーの構築 part.2
人気ブログランキング ← こちらもよろしくお願いします。
[今回の範囲:教科書7~15p]
WindowsXP Personalをご利用になられている方にはあまり関係ない話なのですがProfessionalをご利用になられている方の場合、もしかしたらwebサーバーとしてIISがインストール~起動しているかもしれません。
これからはApacheをwebサーバーとして使っていくことになりますので、IISがインストールされているという方は教科書の7~9pを参考にしてIISを停止させて下さい。
今回の内容は教科書通り(10~15p)に進めていけばWindowsで簡単にApacheを利用できるようになりますので、ここではなぜIISを停止しなければならないのか?という点について講義をしたいと思います。
サーバープログラムにはそれぞれ一意の『ポート』が割り当てられることになっています。このポートはサーバー管理者が自由に設定してかまわないものなのですが慣習的にwell-knownポート(IT用語辞典)を使うのが慣例になっています。
webサーバーの場合でしたら80ポート、ネームサーバーなら53ポートというように一般に使われるポートというのは決まっています。そしてそれぞれのサーバーにwell-knownポートを割り当てていれば、そのサーバーへアクセスする際にポート番号を指定する必要がなくなるという特徴があります。ポートは0~65535までの数字が使われることになっていて、そのうちwell-knownポートは主に1023以下の数字に広く分布しています。逆に1024以上のポートを持つものとして有名なものにはPostgreSQLの5432ポートなどがあります。
インターネット上でのデータの送受信はIPアドレスとポートを組み合わせた『ソケット』を通じて行うのですが、そのためにポート番号が必要となってきます。
なにやら難しそうな話に思えるかもしれませんが、実は簡単な仕組みです。
例えば私のこのブログへアクセスするには http://websystem.ameblo.jp/ というurlを指定することになりますが、これだけで今までに説明した内容が全て含まれているのです。
ではこのurlの意味について説明してみます。
【 http:// 】
これは『httpプロトコルでアクセスしますよ』と宣言している箇所になります。
プロトコルというのはサーバープログラム毎に定められた世界標準の規約のことです。この規約に準拠していればどんなサーバープログラムを作っても使っても良いということになります。前述したIISもそしてApacheもhttpプロトコルに準拠したwebサーバープログラムです。
【 websystem.ameblo.jp 】
この箇所はhttpプロトコルでアクセスしたいサーバーのアドレスを指定しています。ここで指定するのはIPアドレスでもドメイン名でも構いません。通常ドメイン名を指定しますが、その際は自動的にネームサーバーにそのドメインのIPアドレスを問い合わせているのです。
さて、実際に『ソケット』を生成するためにはポート番号が必要なのですが、今回例に使ったurl内にはポート番号が明示されていません。しかし誰でもこのurlを指定すれば私のブログにアクセスすることができます。
なぜならwebサーバーへアクセスするにはhttpプロトコルを使います。そして特に指定をしない限りwebサーバーではwell-knownポートで定められている80ポートを使うことになっていますね。この80ポートでwebサーバーにアクセスできるのならポート番号は指定しなくてもよいという約束事があるのです。
もちろんアクセスする時にポート番号を明示しても全く問題はありません。
http://websystem.ameblo.jp:80/
このようにサーバー名の後に : を入れてポート番号を指定するのが本来の正しい表記方法となります。
まず『どのプロトコルを使いたいのか?』を指定して、そのプロトコルでデータをやり取りするためにソケットを作る。ソケットを作るためにはIPアドレスとポート番号を組み合わせなければならない。これらの約束事に従っていけば希望するデータのやり取りが可能になるという仕組みなのです。