Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.0
ã“ã®æ–‡æ›¸ã§ã¯ãƒžãƒ«ãƒãƒ—ãƒã‚»ãƒƒã‚·ãƒ³ã‚°ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã©ã®ã‚ˆã†ãªã‚‚ã®ã§ã€ Apache HTTP サーãƒã§ã©ã®ã‚ˆã†ã«ä½¿ç”¨ã•れるã‹ã«ã¤ã„ã¦è§£èª¬ã—ã¦ã„ã¾ã™ã€‚
Apache HTTP サーãƒã¯ç•°ãªã‚‹å¹…広ã„環境ã€å¤šç¨®å¤šæ§˜ãªãƒ—ラットホーム㧠動作ã™ã‚‹ã‚ˆã†ã«ã€ãƒ‘ãƒ¯ãƒ•ãƒ«ã§æŸ”軟性ã«å¯Œã‚“ã è¨è¨ˆã«ãªã£ã¦ã„ã¾ã™ã€‚ ç•°ãªã‚‹ãƒ—ラットホーム・異ãªã‚‹ç’°å¢ƒã§ã¯ã—ã°ã—ã°ã€ ç•°ãªã‚‹æ©Ÿèƒ½ãŒå¿…è¦ã«ãªã£ãŸã‚Šã€ åŒã˜æ©Ÿèƒ½ã§ã‚‚効率ã®ãŸã‚ã«ç•°ãªã‚‹å®Ÿè£…ãŒå¿…è¦ã«ãªã£ãŸã‚Šã—ã¾ã™ã€‚ Apache ã§ã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«åŒ–ã•れãŸè¨è¨ˆã«ã‚ˆã‚Šå¹…広ã„環境ã«é©å¿œã—ã¦ãã¾ã—ãŸã€‚ ã“ã®è¨è¨ˆã®ãŠã‹ã’ã§ã€ç®¡ç†è€…㯠コンパイル時ã¾ãŸã¯å®Ÿè¡Œæ™‚ã«ã©ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ãƒãƒ¼ãƒ‰ã™ã‚‹ã‹é¸ã¶ã“ã¨ã«ã‚ˆã£ã¦ã€ ã©ã®æ©Ÿèƒ½ã‚’サーãƒã«å–り込むã‹é¸æŠžã™ã‚‹ã“ã¨ãŒãŒã§ãã¾ã™ã€‚
Apache 2.0 ã§ã¯ã€ ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«åŒ–ã•れãŸè¨è¨ˆã‚’サーãƒã®åŸºæœ¬æ©Ÿèƒ½ã«ã¾ã§æ‹¡å¼µã—ã¾ã—ãŸã€‚ サーãƒã«ã¯ç²¾é¸ã•れãŸãƒžãƒ«ãƒãƒ—ãƒã‚»ãƒƒã‚·ãƒ³ã‚°ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ« (MPM) ãŒä»˜ã„ã¦ãã¦ã€ã“れらã¯ãƒžã‚·ãƒ³ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒ¼ãƒˆã‚’ãƒã‚¤ãƒ³ãƒ‰ã—ãŸã‚Šã€ リクエストをå—ã‘付ã‘ãŸã‚Šã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’扱ã†ã‚ˆã†åプãƒã‚»ã‚¹ã«å‰²ã‚Šå½“ã¦ãŸã‚Šã€ ã¨ã„ã£ãŸå½¹å‰²ã‚’æŒã¡ã¾ã™ã€‚
モジュール化ã•れãŸè¨è¨ˆã‚’サーãƒã®ã“ã®ãƒ¬ãƒ™ãƒ«ã¾ã§æ‹¡å¼µã™ã‚‹ã“ã¨ã§ 二ã¤ã®é‡è¦ãªåˆ©ç‚¹ãŒç”Ÿã¾ã‚Œã¾ã™:
mpm_winnt
ã«ã‚ˆã£ã¦ã€Apache 1.3 ã§ç”¨ã„られã¦ã„㟠POSIX
レイヤã®ä»£ã‚りã«ãƒã‚¤ãƒ†ã‚£ãƒ–ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æ©Ÿèƒ½ã‚’
利用ã§ãã‚‹ã‹ã‚‰ã§ã™ã€‚
特別化ã•れ㟠MPM
を実装ã—ãŸä»–ã®ã‚ªãƒšãƒ¬ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã‚·ã‚¹ãƒ†ãƒ ã§ã‚‚ã€
åŒæ§˜ã«ã“ã®åˆ©ç‚¹ã¯ç”Ÿã¾ã‚Œã¾ã™ã€‚worker
ã¨ã„ã£ãŸã‚¹ãƒ¬ãƒƒãƒ‰åŒ–ã•れãŸ
MPM を利用ã§ãる一方ã§ã€å®‰å®šæ€§ã‚„å¤ã„ソフトウェアã¨ã®äº’æ›æ€§ã‚’
å¿…è¦ã¨ã™ã‚‹ã‚µã‚¤ãƒˆã§ã¯ prefork
ãŒåˆ©ç”¨ã§ãã¾ã™ã€‚ã¾ãŸã€
ç•°ãªã‚‹ãƒ›ã‚¹ãƒˆã‚’ç•°ãªã‚‹ãƒ¦ãƒ¼ã‚¶ ID ã§å‹•作ã•ã›ã‚‹
(perchild
) ã¨ã„ã£ãŸ
ç‰¹åˆ¥ãªæ©Ÿèƒ½ã‚‚æä¾›ã§ãã¾ã™ã€‚ユーザレベルã§ã¯ã€MPM ã¯ä»–ã® Apache モジュールã¨åŒç‰ã«è¦‹ãˆã¾ã™ã€‚ 主ãªé•ã„ã¯ã€ã„ã¤ã§ã‚‚唯一㮠MPM ãŒãƒãƒ¼ãƒ‰ã•れãªã‘れã°ãªã‚‰ãªã„ã¨ã„ã†ç‚¹ã§ã™ã€‚ 利用å¯èƒ½ãª MPM 㯠module インデックスã«ã‚りã¾ã™ã€‚
MPM ã¯è¨å®šä¸ã«é¸æŠžã—ã¦ã€ã‚µãƒ¼ãƒå†…部ã«ã‚³ãƒ³ãƒ‘イルã•れãªã‘れ㰠ãªã‚Šã¾ã›ã‚“。 コンパイラã¯ã€ã‚¹ãƒ¬ãƒƒãƒ‰ãŒä½¿ç”¨ã•れã¦ã„ã‚Œã°æ§˜ã€…ãªæ©Ÿèƒ½ã‚’最é©åŒ–ã§ãã¾ã™ãŒã€ ãã‚‚ãもスレッドãŒä½¿ã‚れã¦ã„ã‚‹ã¨ã„ã†ã“ã¨ã‚’知る必è¦ãŒã‚りã¾ã™ã€‚ MPM ã«ã¯ Unix 上ã§ã‚¹ãƒ¬ãƒƒãƒ‰ã‚’用ã„ã‚‹ã‚‚ã®ã‚„ã€ã‚¹ãƒ¬ãƒƒãƒ‰ã‚’ã¾ã£ãŸã 使ã‚ãªã„ã‚‚ã®ãŒã‚ã‚‹ã®ã§ã€ Apache ã¯ã€MPM ãŒè¨å®šä¸ã«é¸æŠžã•れ㦠Apache 内部ã«çµ„ã¿è¾¼ã¾ã‚ŒãŸå ´åˆã®æ–¹ãŒ 常ã«ã‚ˆã‚Šè‰¯ã„パフォーマンスを発æ®ã—ã¾ã™ã€‚
望ã¿ã® MPM を実際ã«é¸ã¶ãŸã‚ã«ã¯ã€./configure スクリプト㧠--with-mpm= NAME 引数を用ã„ã¦ãã ã•ã„。 NAME ã¯æœ›ã¿ã® MPM ã®åå‰ã§ã™ã€‚
サーãƒã‚³ãƒ³ãƒ‘イル後ã¯ã€ã©ã® MPM ãŒé¸æŠžã•れãŸã‹ã‚’
./httpd -l
ã§ç¢ºã‹ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã€MPM
ã‚’å«ã‚ã€ã‚µãƒ¼ãƒã«ã‚³ãƒ³ãƒ‘イルã§çµ„ã¿è¾¼ã¾ã‚ŒãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å…¨ã¦ã‚’
列挙ã—ã¾ã™ã€‚
æ¬¡è¡¨ã«æ§˜ã€…㪠OS å‘ã‘ã®ãƒ‡ãƒ•ォルト㮠MPM 一覧を掲載ã—ã¦ã„ã¾ã™ã€‚ ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«æ™‚ã«æ„図的ã«ä»–ã‚’é¸æŠžã—ãªã‘れã°ã€è‡ªå‹•çš„ã«ã“れら㮠MPM ãŒé¸æŠžã•れã¾ã™ã€‚
BeOS | beos |
Netware | mpm_netware |
OS/2 | mpmt_os2 |
Unix | prefork |
Windows | mpm_winnt |