サーバーとは
サービスを提供するソフトが稼働しているPCのことをいう。
つまりは今使っているPCも他のPCとの通信をすることによりサーバーでもあるというわけであろうか。
サーバーには様々な種類のものがある(今回説明していくのはウェブサーバーとメールサーバー)
ウェブサーバー
サーバーの中でもホームページを提供するためのサーバーのこと
有名どこだとApacheやNginx
ここで知ったのは、ホストOSとApacheやNginxとの違い。ホストOSはあくまでもコンピューター(計算処理などのいわばいつも使っているPCとしての機能)としての機能を持っており、ウェブサーバーとしての機能は持ち合わせていない。ウェブサーバーの機能としては、クライアントからのリクエストに対してファイル(例えばindex.html)を返すというもの。この機能を持ったソフトがApacheやNginxであると言うこと。
ApacheやNginxは何が違うのか(もしかしたら間違っているかも。。)
昔良くあった静的ページ(いわばJSなしのページ)ではクライアントからのリクエストに対して一意にファイルを返すだけの仕事だったが、最近では動的ページが多く一意にファイルを返すだけとは行かない。(SNSとかだと様々な人のコメントが飛び交うため毎回同じページなはずがない)そこで出てきたのがApacheである。歴史的に見るとApacheが最初に作られた。
クライアントから受けたリクエストをHTTPD(クライアントとCGIとの仲介役)が解析してCGIが処理する。その処理結果をHTTPDに返して、HTTPDはクライアントにファイルを返す。
CGIはリクエストに対して、演算などを行うことでクライアントそれぞれに違った情報を送ることが可能となる。
Apacheの台頭によりSNSを始めとする動的ページが普及し始めた。しかしここで問題になったのが、処理落ちの問題である。
HTTPDとCGIが同じサーバー内に共存していたことにより、多くのリクエストを受け取ったときに処理が落ちてしまうことがあったのこと。そこで出てきたのがNginx
こいつはHTTPDとCGIのやり取りを同じサーバー内で行うのではなく、CGIは別の場所で行うというもの。HTTPDとCGIとはSocket通信によりやり取りをおこなう。
処理の分散化を行った結果、処理速度がApacheよりも早くなったというわけ。
OpenLiteSpeedについて
詳細を知ったわけではないが、聞いた話を。。。
LiteSpeedはNginxとApacheの共存版みたいなものである。
Nginx自体がクライアントからリクエストを受け取る。それをNginxの得意とする分散処理によりNginxの裏にあるウェブサーバー(こいつらがApache的な)へリクエストの処理を依頼する。この時のNginxの立ち位置をリバースプロキシという。
つまり、内部的に見ればNginxが静的にファイルの受け渡しをしているとも見れる。
メールサーバー
受信と送信でプロトコルが違うみたい。
送信:STMP
受信:POP,IMAP
これらのプロトコルに従ってできたメールサーバー用のソフトがそれぞれ送信がPostfix、受信がDovcot。ほかにもあるけど
最近Modoboaという送受信それぞれのプロトコルを持ったやつもあるみたい。
VirtualHostについて
レンタルサーバーのからくり。
今後実装してみたいな。Localでもできるのかな
コメント