Open6

Linuxのミドルウェア

PHP初心者勉強会PHP初心者勉強会

ミドルウェアとは

ミドルウェアとは、OSとアプリケーションの間にある、という意味で名付けられたのだと思う。[1]概念的な単語で語義の厳密さにこだわらない方が良い。[2]

具体的なミドルウェアとして、Webサーバーなら、ApacheやNginx。データベースサーバーなら、MySQLやPostgreSQLなどがある。

脚注
  1. ハードウェア、ファームウェア、ソフトウェアの流れで付けられたのでしょう。 ↩︎

  2. ミドルウェアも、ソフトウェアであり、アプリケーションでもある。 ↩︎

PHP初心者勉強会PHP初心者勉強会

Webサーバー

Apache

世界で最も利用されているWebサーバー。おそらく世界で最初のWebサーバーで、最初は単純にHTMLを送信するような機能しかなかった。世界中から機能を拡張するパッチ(patch)が送られてきて、たくさんのパッチが当てられたので、Apacheという名前になったらしい。

Linux、BSD、Mac、Windowsと多くのプラットフォームに移植されている。

PHPは、Apacheのプロセス内で動作するモジュールとして開発されており、Perlに比べて高速に動作するのが特徴だった。[1]

Nginx

ロシアで開発されたWebサーバー。ロシアは、日本やアメリカのようにハイスペックなサーバーを用意することが難しいらしく、低スペックなサーバーでも運用できるように効率化されている。

最大の特徴は、単一のプロセスで複数のアクセスを処理するイベント型のWebサーバーとなっている。[2]

C10K対策として注目されていたが、最近はC10Kの話題はあまり持ち上がらない。[3]

脚注
  1. 現在はPerlもApacheのモジュールがあるらしい? ↩︎

  2. Apacheは、複数のプロセスがアクセスを待ち受けしており、スレッド化して処理しており、定期的にプロセスを再起動している。これは当初は、メモリーリークへの対処でもあったらしい。 ↩︎

  3. NodeがWebサーバーとして注目されたのも、C10K対策でした。 ↩︎

PHP初心者勉強会PHP初心者勉強会

メール関連のサーバー

メール関連のサーバーは、SMTPとMRAに分けられる。

SMTP(Simple Mail Transfer Protocol)

インターネット上のメールは、送信するサーバーから、目的のサーバーに向かって、中間にあるサーバーが、バケツリレーのように配送する。自サーバー宛てのメールであれば保存し、自サーバー宛でなければ、目的のサーバーに向かって、再配送する。そのため、暗号化していないと途中で内容を見られたり、サーバーのミスで紛失したりする。

代表的なSMTPサーバーは、sendmailPostfix

sendmail

一番最初のSMTP。本来のEメールは、自サーバー内のユーザー同士にだけ、メールを送り合う機能だった。後に、Eメールは便利だから、他のサーバーのユーザーにも送れるようになったら、もっと便利になると考え、世界中のサーバーに送れるようになった。多くのサーバーでは、現在でもデフォルトのSMTPになっている。

歴史的経緯でソースコードが複雑になっており、設定も複雑怪奇で、最新の設定には対応できない。本格的に運用するなら、Postfixに変更することをお勧めする。

Postfix

おそらく商用サーバーでもっとも利用されているSMTPサーバー。

MRA

自サーバー内に保存されているメールを、エンドユーザーの問い合わせに応じて送信する。
代表的なMRAには、Dovecot がある。

Dovecot

POP3、IMAP、SSLに対応

概要を詳しく知りたい方
https://qiita.com/bezeklik/items/d8d7f52da1a2c2af0a8c

Macでの設定
http://kimoota.wiki.fc2.com/wiki/MacOS%2Fdovecot