2012/01/18

Aapacheメモ

環境はDebian squeeze。 とりあえず、Apacheを立てるところまでやる。

予備知識

ApacheはいわゆるWebサーバの一種である。
ユーザは多いっぽいし、色んなモジュールがある。
拡張性もそれなりに高いらしい。 以下自分の知らなかったこと。
  1. プロセスの振る舞いについて Apacheはプロセスの振る舞いとして(少なくとも)3種類あるようだ。 これは、MPMというので変えられる。 (そもそもプロセスとは… 参考:m-birdとFreeBSDの同棲日記)
    • prefork スレッドを用いない、リクエストが来る前にforkしておく方式。 (fork: 自プロセスをコピーして子プロセスを起動すること、らしい。何を持ってコピーなんだろうか…)
      メリット

      デメリット
      スレッドセーフでない(マルチスレッドでの使用を考慮されていない)モジュールを使える

      とにかく負荷がやばい。
    • worker マルチスレッド&マルチプロセス。 つまり、複数の子プロセスを持ち、その各プロセスががマルチスレッドで動作し、各スレッドが1つのクライアントに対応する方式。 1つのプロセスが複数のクライアントと通信するので、preforkとは異なり、メモリ使用量が少ない。
      メリット

      デメリット
      メモリ使用量が少ない

      マルチスレッドで安定に動作させるのは知識が…
    • event workerの一種。特にKeep-Aliveの処理が違う。 workerでは、あるクライアントが接続した後、スレッドを残したままにして次の接続を待つが、 eventでは、新たに接続を受け入れるためのスレッドとは別のスレッドを使用する。
      メリットよりリソースを効率的に使える
      デメリット対応してないモジュールがある?

パッケージ

Debian squeezeでのパッケージ。 今回のMPMはpreforkにする。アクセスもマシンの性能に比べ少ないし、安定性が必要なので。
  • apache2
  • apache2-mpm-prefork
必要に応じて、apache2-mpm-〇〇っていうパッケージを使えば良い。 これを書いている段階で、squeezeのdebパッケージのApacheは2.2.16である。

インストールと実行

$ sudo apt-get install apache2-mpm-prefork apache2
$ sudo /etc/init.d/apache2 start
とやってみる。すると、『Web server起動したよ!サーバはここ使ってるよ。』ってIPが表示されるので、 そこにアクセスするか、localhostにアクセスすると次のような画面が出ると思う。 サーバを停止する場合は、
$ sudo /etc/init.d/apache2 stop
とすれば良い。 Apacheの設定ファイルは/etc/apache2/以下のファイルたちである。 詳しくは以下の参考文献を見るとよい。 続きはまた今度。

0 件のコメント:

コメントを投稿