Apache HTTP Server†
- APR(Apache Portable Runtime)
- MPM(Multi Processing Module)
APR†
MPM†
- MPM(Multi-Processing Module)
prefork | マルチプロセス、マルチスレッド |
worker | ハイブリッド。PHPを使う場合はこちらが推奨。大規模サイト向き |
event | マルチスレッド |
拡張モジュール†
mod_proxy | プロキシ機能 |
mod_proxy_balancer | ロードバランサ機能 |
mod_proxy_http | |
mod_proxy_connect | HTTPSのCONNECTメソッドをサポートする機能 |
キャッシュ機能(サーバサイドキャッシング)†
mod_cache | キャッシュ機能を使う場合は有効にする |
mod_disk_cache | キャッシュデータをディスクに保存 |
mod_mem_cache | キャッシュデータをメモリに保存 |
mod_headers | HTTPリクエストヘッダによるキャッシング制御を使う |
キープアライブ機能†
標準モジュール†
mod_http | HTTPプロトコルの処理 |
mod_actions | リクエストされたファイルの形式やHTTPメソッドに連動したCGIプログラムの実行 |
mod_alias | URLとディレクトリの対応関係の設定 |
mod_asis | HTTPヘッダの追加 |
mod_autoindex | ディレクトリの一覧を作成 |
mod_cgi(mod_cgid) | CGIプログラムの実行(スレッド非対応のMPMを選択した場合はmod_cgi、スレッド対応のMPMを選択した場合はmod_cgidが組み込まれる) |
mod_deflate | データ圧縮転送 |
mod_dir | ディレクトリ名で終わるURLに標準のインデックス・ファイル名を補完 |
mod_env | CGIプログラムへの環境変数の提供 |
mod_imap | イメージ・マップ・ファイルのサポート |
mod_include | SSIの処理 |
mod_log_config | アクセスログ取得。ログの書式設定 |
mod_mime | 拡張子を使用したコンテンツ・タイプの判定 |
mod_negotiation | クライアントの情報に基づくコンテンツの自動選択 |
mod_status | Apacheの稼働状態の監視 |
mod_setenvif | クライアントの情報に基づく環境変数の設定 |
mod_userdir | 一般ユーザーのコンテンツ・ディレクトリの設定 |
アクセス制御(ホスト制限)†
- mod_access -アクセス元のIPアドレス、ホスト名、ドメイン名などにより、アクセスの許可/拒否を判断する
アクセス制限(ユーザ認証)†
- mod_auth -ID/パスワードの入力を促す。Basic認証、Digest認証。
DSO(Dynamic Shared Object)†
- mod_so -DSOモジュールを読み込む。Apacheをコンパイルし直さずにモジュールの変更を行う。
サードパーティーのモジュール†
アクセス制御(認証)†
- mon_auth_tkt
- mod_auth_ntlm_winbind
Apacheの構造†
Apacheのリクエストトランザクション†
リクエスト受信後
↓
URI変換
↓
ヘッダの解析
↓
アクセス制御
↓
認証
↓
アクセス許可
↓
MIMEタイプチェック
↓
微調整
↓
応答
↓
ロギング
↓
後処理
設定 (/etc/httpd/conf/httpd.conf)†
コマンド†
apachectl†
- apachectl configtest ※Apache の設定ファイルの構文チェック
- apachectl restart ※Apache の再起動
httpd†
スティッキーセッション方式†
- セッション変数を永続的に利用する
- クライアント側がCookieを使わない場合、携帯端末によってはURL RewritingによりセッションIDをURLに記載する。これに対するサーバ側の対応として、URLに含まれるセッションIDを取得する。
チューニング†
MaxClients値の求め方†
- MaxClients = 実メモリ / httpdのプロセスサイズ
- プロセスのサイズを小さくするために不要なモジュールを無効にする
- 動的コンテンツと静的コンテンツを別々のhttpdで処理する
- mod_proxyを使ってApacheをPROXYとして動作させ、別httpdのコンテンツを同一サーバのコンテンツのように見せる
セキュリティ対策†
- HTTPリスポンスヘッダのバージョン情報を隠蔽する
- エラーページ等のデフォルトコンテンツを置き換える
- HTTPSで通信するデータを暗号化する。
関連用語†