- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2019-12-01T14:40:22+09:00","default:k1rou","k1rou")
*Apache HTTP Server [#jf174713]
-[[Webサーバ]]。
-単に「[[Apache]]」と呼ばれる。
-[[OSS]]
-httpd
-クライアント1万台問題
**種類 [#zc62c4ae]
-APR(Apache Portable Runtime)
-MPM(Multi Processing Module)
***APR [#i4e55d89]
***MPM [#s2e74e02]
-MPM(Multi-Processing Module)
|prefork |マルチプロセス、マルチスレッド |
|worker |ハイブリッド。PHPを使う場合はこちらが推奨。大規模サイト向き |
|event |マルチスレッド |
**拡張モジュール [#pce851cf]
***[[プロキシ]]関連機能 [#id85e2e3]
|mod_proxy |プロキシ機能 |
|mod_proxy_balancer |[[ロードバランサ]]機能 |
|mod_proxy_http | |
|mod_proxy_connect |HTTPSのCONNECTメソッドをサポートする機能 |
***[[プロキシ]]関連機能([[Tomcat]]連携) [#nd57c152]
|mod_jk |[[Tomcat]]とのJK連携 |
|mod_proxy_ajp |[[Tomcat]]とのAJP13通信機能 |
|mod_jk2 |[[Tomcat]]とのJK2連携。廃止? |
***[[キャッシュ]]機能(サーバサイドキャッシング) [#i62b8eaa]
|mod_cache |キャッシュ機能を使う場合は有効にする |
|mod_disk_cache |キャッシュデータをディスクに保存 |
|mod_mem_cache |キャッシュデータをメモリに保存 |
|mod_headers |HTTPリクエストヘッダによるキャッシング制御を使う |
***キープアライブ機能 [#o75019a0]
-KeepAlive
-MaxKeepAliveRequest
-KeepAliveTimeout
**標準モジュール [#p5fff89e]
|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 |一般ユーザーのコンテンツ・ディレクトリの設定 |
***アクセス制御(ホスト制限) [#mbc6a38b]
-mod_access -アクセス元のIPアドレス、ホスト名、ドメイン名などにより、アクセスの許可/拒否を判断する
***アクセス制限(ユーザ[[認証]]) [#g927a89b]
-mod_auth -ID/パスワードの入力を促す。Basic認証、Digest認証。
***DSO(Dynamic Shared Object) [#wc270ef8]
-mod_so -DSOモジュールを読み込む。Apacheをコンパイルし直さずにモジュールの変更を行う。
**サードパーティーのモジュール [#f89e63b0]
***アクセス制御(認証) [#q02be05c]
-mon_auth_tkt
-mod_auth_ntlm_winbind
**Apacheの構造 [#v1ea0360]
-外部ライブラリ
-モジュール
-CORE
-OS
**Apacheのリクエストトランザクション [#z83c0fd1]
リクエスト受信後
↓
URI変換
↓
ヘッダの解析
↓
アクセス制御
↓
認証
↓
アクセス許可
↓
MIMEタイプチェック
↓
微調整
↓
応答
↓
ロギング
↓
後処理
**設定 (/etc/httpd/conf/httpd.conf) [#s2590faa]
-ServerRoot
-DirectorySlash
-DirectoryIndex
--ルート(/)を指定して表示するファイルを指定する。
--複数ファイルの指定が可能。
-Directory
**コマンド [#h567bac5]
***apachectl [#b1ca4207]
-apachectl configtest ※Apache の設定ファイルの構文チェック
-apachectl restart ※Apache の再起動
***httpd [#b17827ff]
-httpd -version
-httpd -V
-httpd -M ※モジュールを表示
**[[セッション]]情報の維持 [#dc309640]
***スティッキーセッション方式 [#l777cf53]
-セッション変数を永続的に利用する
-クライアント側が[[Cookie]]を使わない場合、携帯端末によってはURL RewritingによりセッションIDを[[URL]]に記載する。これに対するサーバ側の対応として、[[URL]]に含まれるセッションIDを取得する。
**チューニング [#wbaf4d73]
***MaxClients値の求め方 [#m0a461aa]
-MaxClients = 実メモリ / httpdのプロセスサイズ
--プロセスのサイズを小さくするために不要なモジュールを無効にする
--動的コンテンツと静的コンテンツを別々のhttpdで処理する
--mod_proxyを使ってApacheをPROXYとして動作させ、別httpdのコンテンツを同一サーバのコンテンツのように見せる
**セキュリティ対策 [#r170e016]
-HTTPリスポンスヘッダのバージョン情報を隠蔽する
-エラーページ等のデフォルトコンテンツを置き換える
-HTTPSで通信するデータを暗号化する。
**関連用語 [#z579d205]
-[[Tomcat]]
-[[Keep-Alive]]
-[[nginx]]