冒険の書

27歳と6ヶ月のときに未経験でITエンジニアに転職した元派遣会社営業職(文系)が綴るブログです。同じように20代後半から未経験でIT技術者に転職することを検討されている人に「27歳からの未経験がどれだけ成長できるか」という点などで参考になれば幸いです。

Linux学習記 その5 apacheについて学んでみる。

<概要>

  • コアとモジュールから構成されるWEBサーバである。
  • 通常のWEBサーバとしての機能に加え、プロキシサーバやアプリケーションサーバHTTPSサーバ、ファイルサーバとしても機能する。

Apacheの設定>

  • ディストリビューションにより異なるが、基本的httpd.confファイルが設定ファイルとなっている。
  • httpd.confは管理者権限が必要だが、.htaccessファイルを使用することによりディレクトリ単位での制御が可能になる。
  • 双方ともに、定められた構文で記述する必要がある。
  • 構文は主に、"ディレクティブ 引数"の形式を採る。
  • 設定の一部を分割する機能を有しており、必要に応じて追加できる。
  • httpd.confでは指定をしない場合、サーバ全体への設定になるが、コンテナを使用することにより、設定の範囲を限定できる。

  • なお、コンテナを使用する場合は、ディレクティブとの組み合わせによっては構文エラーとなってしまう。この組み合わせを定義したものをコンテキストと言う。
  • コンテキストは、サーバ設定ファイル、ディレクトリ、バーチャルホスト、.htaccessに分かれて定義されている。

 <モジュール>

  • モジュールには2種類あり、インストール時に組み込んでおく静的なモジュールと、必要に応じて使用できる動的なモジュールに分かれる。
  • 静的なモジュールには、WEBサーバの根幹機能を有するものがありMPMと言う。
  • MPMには、worker,prefork,perchild,eventがある。
  • MPMを切り替える場合には、apacheの再インストールが必要になる。
  • 動的なモジュールには、ユーザ認証やアクセス制限、プロキシ機能など様々のモジュールがある。このモジュールはDSOモジュールとも言う。
  • DSOモジュールは、不要なモジュールは設定ファイルにて無効とすればいいだけなので静的モジュールのように再インストールする必要はない。
  • DSOモジュールは予め決められたそれぞれのタイミングで呼び出される。
  • タイミングには3種類あり、リクエストがあった時、認証などが必要になった時、リクエストに対して返信する時がある。

■静的モジュールとDSOモジュールの比較

  • 静的モジュールは組み込み時に負荷が小さく起動が速いが、DSOモジュールは組み込み時に負荷が大きく起動が遅くなる。
  • 静的モジュールはモジュール切り替えの際に再インストールが必要だが、DSOモジュールは設定ファイルで切り替えるだけで済む
  • 静的モジュールは組み込むモジュールが増えるほどapache本体のサイズが大きくなりメモリを消費するが、DSOモジュールは使用するまで読み込まれないためメモリの消費を節約できる。