APACHE HTTP SERVER

1,005 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,005
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • APACHE HTTP SERVER

    1. 1. APACE HTTP SERVER 眠れない夜も、光の朝もいつもそばに
    2. 2. Apache HTTP Server?アパッチ エイチティーティーピー サーバは、世界中もっとも使われているWebサーバソフトウェアであり、大規模な商用サイトから自宅サーバまで幅広く利用されています。単にApacheとも称されます。
    3. 3. 誰が作ってるの?開発は、Apacheソフトウェア財団のApache HTTPサーバプロジェクトで行われています。Apacheライセンスの下でソースコードが公開および配布されており、代表的なオープンソース・ソフトウェアの一つです。
    4. 4. ちなみにスポンサー ちなみにtwitterはブロンズ
    5. 5. 複数の現行バージョン 2012年5月現在、Apacheは以下の3バージョンをサポートしています。2.0系 ほぼセキュリティ関係の修正のみっ。(legacy)2.2系 新しい機能を使いつつ安定志向も好むユーザーが利用してます(まぁstable)2.4系 最新の機能を搭載!!(nightly的な ちゃんと動くけどねっ)※従来サポートされてきた1.3系は、2010年1月末をもってサポート打ち切り!!!
    6. 6. プロセスの挙動(1) preforkpreforkは「スレッドを使わず、先行して fork を行なうウェブサーバ」ってこと。Apacheは昔から親プロセスを1つ持ち、クライアントからリクエストが来ると自分自身をコピーして子プロセスを起動します(これをforkという)。実際の通信は子プロセスが受け持ちます。結果通信している数だけ子プロセスが起動することになってクライアントからリクエストを受けたあとでforkするとfork完了までに待ち時間が出来て通信のパフォーマンスが遅くなる。←従来だーかーらー、あらかじめいくつかの子プロセスをforkしておき、forkの待ち時間をなくす方式がPrefork。preforkのメリットは、ある子プロセスが何らかの原因でフリーズしたとしても、他の子プロセスには影響を及ぼすことが無く通信を継続できます。安定した通信が可能なわけ。デメリットは、クライアントが多くなればなるほど子プロセスの数も増えるので、使用メモリ量やCPU負荷が比例的に増大。preforkで多数のクライアントをさばくには、それに応じた大量のメモリと高速なCPUが必要です。
    7. 7. プロセスの挙動(2) workerworkerは「マルチスレッドとマルチプロセスのハイブリッド型サーバ」←かっけww。Apacheの子プロセス1つ1つがマルチスレッドで動作して、スレッド1つが1つのクライアントを受け持つ方式。いわゆる昔からあるやつ。1つのプロセスがマルチスレッドを利用して複数の通信の面倒を見る。この点で1つのプロセスが1つの通信をみるpreforkとは異なる。また多くの子プロセスを起動せずに済むので、メモリの使用量も減らせるよ。マルチスレッドは安定して動作させるためにノウハウが必要で、モジュールはスレッドセーフである必要があり、workerを使用する際は事前に十分な安定性のテストを行うべきである。←エンジニアの極み
    8. 8. プロセスの挙動(3) eventeventはworkerの一種でマルチスレッドで動作する。workerとの違いはKeep-Alive(持続的接続)の処理方法。workerやpreforkは、Keep-Aliveの持続性を保つために一度利用したスレッド・プロセスをそのまま待機させているけどクライアントからの接続が持続的に行われる可能性は保証されているわけではないから、待機していること自体が無駄になる可能性もある。そこで、Keep-Aliveの処理を別のスレッドに割り振って通信を処理する。この方式は長らく実験的サポートしてたんだけど、2.4.1にて正式に採用された←ふーん2.2までしか触ったことがない僕は皆無
    9. 9. ApacheのポテンシャルApacheでは、FreeBSDのカーネルと連動し、最高の性能を引き出す特殊な動作形態をサポートしています。 これはFreeBSDをHTTPサーバに特化するという運用形態を想定したもので、FreeBSD及びApacheの両者に設定が必要で、共にインストール直後の標準設定ではサポートさていません。基本的な動作は、LinuxのTUX web serverやWindowsのInternet InformationServicesなどに近い実装で、通信バッファのカーネルからの直接的な読込やkqueueなど多岐にわたり、一部のみ利用ということも可能にです。Linuxにおけるサポートも検討されたが、あまりに特殊であるため未実装。。。(え
    10. 10. 歴史1995年当時Webサーバソフトウェアは欧州原子核研究機構(CERN)の ティム・バーナーズ=リーが開発したCERN HTTPdと米国立スーパーコンピュータ応用研究所(NCSA)が開発したNCSA HTTPdの2種類。NCSA HTTPdは初めてCGIを採用するなど、非常に普及していたが、その後ほとんどメンテナンスが行われなくなり、放置されていたんだ。そこで、何人かの有志が改良とサポートを行うためのグループを作り、自分たちをApache Groupと名付けました。が、しっかしかーし!彼等もその後プロジェクトに興味を失ってしまい、再度放置されかけた。(うそ・・・。)そのため、1999年にユーザーの一人だったBrian Behlendorfが自分のサーバを使ってユーザーのためのメーリングリストを立ち上げて、現在のApacheソフトウェア財団の母体になりました。 ただし、現在のApacheのソースコードはApacheソフトウェア財団によって完全に書き換えられており、NCSAHTTPdのコードは残っていない。

    ×