Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.2
ã“ã®æ–‡æ›¸ã§ã¯ Unix ã«é¡žä¼¼ã—ãŸã‚·ã‚¹ãƒ†ãƒ ã§ã® Apache ã®åœæ¢ã¨å†èµ·å‹•ã«ã¤ã„ã¦æ‰±ã£ã¦ã„ã¾ã™ã€‚ Windows NT, 2000, XP ユーザã¯ã‚µãƒ¼ãƒ“スã¨ã—㦠Apache を実行ã™ã‚‹ã§ã€Windows 9x, MEユーザã¯ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‚¢ãƒ—リケーションã¨ã—㦠Apache を実行ã™ã‚‹ã§ã€ ã“れらã®ãƒ—ラットホームã§ã®ä½¿ç”¨æ–¹æ³•ã‚’ã”覧下ã•ã„。
Apache ã‚’åœæ¢ã—ãŸã‚Šå†èµ·å‹•ã—ãŸã‚Šã™ã‚‹ãŸã‚ã«ã¯ã€å®Ÿè¡Œã•れã¦ã„ã‚‹
httpd
プãƒã‚»ã‚¹ã«ã‚·ã‚°ãƒŠãƒ«ã‚’é€ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
シグナルをé€ã‚‹ã«ã¯äºŒã¤ã®æ–¹æ³•ãŒã‚りã¾ã™ã€‚
一ã¤ç›®ã¯ãƒ—ãƒã‚»ã‚¹ã«ç›´æŽ¥ã‚·ã‚°ãƒŠãƒ«ã‚’é€ã‚‹ unix ã® kill
コマンドを使用ã™ã‚‹æ–¹æ³•ã§ã™ã€‚
システムを見れã°ãŸãã•ã‚“ã® httpd
ãŒ
実行ã•れã¦ã„ã‚‹ã®ã«æ°—ãŒä»˜ãã§ã—ょã†ãŒã€ã‚·ã‚°ãƒŠãƒ«ã‚’é€ã‚‹ã®ã¯
親プãƒã‚»ã‚¹ã ã‘ã§ã€ãれ以外ã®å€‹ã€…ã®ãƒ—ãƒã‚»ã‚¹ã«ã¯
シグナルをé€ã‚‰ãªã„ã§ä¸‹ã•ã„。ãã®è¦ªãƒ—ãƒã‚»ã‚¹ã® pid ã¯
PidFile
ã«æ›¸ã‹ã‚Œã¦ã„ã¾ã™ã€‚ã“れã¯ã¤ã¾ã‚Šã€è¦ªä»¥å¤–ã®ãƒ—ãƒã‚»ã‚¹ã«
シグナルをé€ã‚‹å¿…è¦ã™ã‚‰ãªã„ã€ã¨ã„ã†ã“ã¨ã§ã™ã€‚
親プãƒã‚»ã‚¹ã«é€ã‚‹ã“ã¨ãŒã§ãã‚‹ 3 種類ã®ã‚·ã‚°ãƒŠãƒ«ãŒã‚りã¾ã™:
TERM
,
HUP
,
USR1
ã§ã™ã€‚ã“れらã®èª¬æ˜Žã«ã¤ã„ã¦ã¯ç¶šãã‚’ã”覧下ã•ã„。
親プãƒã‚»ã‚¹ã«ã‚·ã‚°ãƒŠãƒ«ã‚’é€ã‚‹ã«ã¯ã€ 次ã®ã‚ˆã†ãªã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¦ä¸‹ã•ã„:
kill -TERM `cat /usr/local/apache2/logs/httpd.pid`
httpd
プãƒã‚»ã‚¹ã«ã‚·ã‚°ãƒŠãƒ«ã‚’é€ã‚‹ 2 ç•ªç›®ã®æ–¹æ³•ã¯
-k
ã¨ã„ã†ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³å¼•数を使用ã™ã‚‹ã“ã¨ã§ã™ã€‚
下ã§èª¬æ˜Žã•れã¦ã„るよã†ã«ã€stop
, restart
,
graceful
, graceful-stop
を指定ã§ãã¾ã™ã€‚
ã“れら㯠httpd
ã®å¼•æ•°ã§ã™ãŒã€
制御用ã®ã‚¹ã‚¯ãƒªãƒ—ト apachectl
ã¯ãれらã®å¼•æ•°ã‚’ãã®ã¾ã¾
httpd
ã«æ¸¡ã—ã¾ã™ã€‚
httpd
ã«ã‚·ã‚°ãƒŠãƒ«ã‚’é€ã£ãŸå¾Œã€
実行状æ³ã‚’次ã®ã‚³ãƒžãƒ³ãƒ‰ã§èªã‚€ã“ã¨ãŒã§ãã¾ã™:
tail -f /usr/local/apache2/logs/error_log
ã“ã“ã«æŒ™ã’ãŸä¾‹ã¯ã€å„自ã®
ServerRoot
ã¨
PidFile
ã®è¨å®šã«é©åˆã™ã‚‹ã‚ˆã†ã«é©å®œä¿®æ£ã—ã¦ä¸‹ã•ã„。
apachectl -k stop
TERM
ã‚ã‚‹ã„㯠stop
シグナルを親プãƒã‚»ã‚¹ã«é€ã‚‹ã¨ã€å³åº§ã«åプãƒã‚»ã‚¹å…¨ã¦ã‚’ kill ã—よã†ã¨ã—ã¾ã™ã€‚
åプãƒã‚»ã‚¹ã‚’完全㫠kill ã—終ã‚ã‚‹ã¾ã§ã«æ•°ç§’ã‹ã‹ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。
ãã®å¾Œã€è¦ªãƒ—ãƒã‚»ã‚¹è‡ªèº«ãŒçµ‚了ã—ã¾ã™ã€‚
処ç†ä¸ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯å…¨ã¦åœæ¢ã•れã€ã‚‚ã¯ã‚„リクエストã«å¯¾ã™ã‚‹
応ç”ã¯ã•れã¾ã›ã‚“。
apachectl -k graceful
親プãƒã‚»ã‚¹ã¯ USR1
ã‚ã‚‹ã„㯠graceful
シグナルをå—ã‘å–ã‚‹ã¨ã€åプãƒã‚»ã‚¹ã«ç¾åœ¨ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®å‡¦ç†ã®å¾Œã«çµ‚了ã™ã‚‹
(ã‚ã‚‹ã„ã¯ä½•ã‚‚ã—ã¦ã„ãªã‘れã°ã™ãã«çµ‚了ã™ã‚‹)
よã†ã«åŠ©è¨€ã—ã¾ã™ã€‚
親プãƒã‚»ã‚¹ã¯è¨å®šãƒ•ァイルをå†èªè¾¼ã—ã¦ã€ãƒã‚°ãƒ•ァイルを開ãç›´ã—ã¾ã™ã€‚
åプãƒã‚»ã‚¹ãŒå¾ã€…ã«ãªããªã‚‹ã«å¾“ã£ã¦ã€
æ–°ã—ã„世代ã®è¨å®šã«ã‚ˆã‚‹åプãƒã‚»ã‚¹ã«ç½®ãæ›ãˆã¦ã„ãã¾ã™ã€‚
ãã—ã¦ã€ã“ã‚Œã‚‰ãŒæ–°ãŸãªãƒªã‚¯ã‚¨ã‚¹ãƒˆã«å³åº§ã«å¿œç”ã—å§‹ã‚ã¾ã™ã€‚
ã“ã®ã‚³ãƒ¼ãƒ‰ã¯å¸¸ã«
MPM ã®ãƒ—ãƒã‚»ã‚¹åˆ¶å¾¡ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–ã®è¨å®šã‚’é‡è¦–ã—ã¾ã™ã®ã§ã€
クライアントã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’扱ã†ãƒ—ãƒã‚»ã‚¹ã¨ã‚¹ãƒ¬ãƒƒãƒ‰ã®æ•°ã‚’å†èµ·å‹•ã®å‡¦ç†ä¸ã‚‚
é©åˆ‡ãªå€¤ã«ç¶æŒã•れã¾ã™ã€‚。ã¾ãŸã€æ¬¡ã®ã‚ˆã†ã«ã—ã¦
StartServers
を守りã¾ã™:
å°‘ãªãã¨ã‚‚ 1 秒後㫠StartServers
å€‹ã®æ–°ã—ã„åプãƒã‚»ã‚¹ãŒ
生æˆã•れã¦ã„ãªã‘れã°ã€ãã®æ•°ã«ãªã‚‹ã‚ˆã†ã«é©å®œãƒ—ãƒã‚»ã‚¹ã‚’生æˆã—ã¾ã™ã€‚
ã“ã®æŒ™å‹•ã¯ç¾åœ¨ã®è² è·ã«å¯¾ã—ã¦é©åˆ‡ãªåプãƒã‚»ã‚¹ã®æ•°ã¨
StartServers
パラメータã§ã®
å¸Œæœ›ã®æ•°ã®ä¸¡æ–¹ã‚’ç¶æŒã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚
mod_status
ã‚’
使用ã—ã¦ã„ã‚‹å ´åˆã¯ã€USR1
シグナルãŒé€ã‚‰ã‚ŒãŸéš›ã«
サーãƒçµ±è¨ˆãŒã‚¼ãƒã«è¨å®šã•れãªã„ã“ã¨ã«
注æ„ã—ã¦ãã ã•ã„。
サーãƒãŒæ–°ã—ã„リクエストã«å¿œç”ä¸èƒ½ãªæ™‚間を最å°ã«ã™ã‚‹ã‚ˆã†ã«
(リクエスト㯠OS ã«ã‚ˆã£ã¦ã‚ューã«è¿½åŠ ã•れるã®ã§çµ¶å¯¾ã«ç´›å¤±ã¯ã—ã¾ã›ã‚“)ã€
ã¾ãŸåŒæ™‚ã«ã€å¸Œæœ›ã®ãƒãƒ¥ãƒ¼ãƒ‹ãƒ³ã‚°ãƒ‘ラメータを守るよã†ã«
ã‚³ãƒ¼ãƒ‰ã¯æ›¸ã‹ã‚Œã¦ã„ã¾ã™ã€‚
ã“ã®ã‚ˆã†ã«ã™ã‚‹ãŸã‚ã«ã€ä¸–代をã¾ãŸãŒã£ãŸå…¨åプãƒã‚»ã‚¹ã®è¿½è·¡ã«ä½¿ã‚れã¦ã„ã‚‹
ã‚¹ã‚³ã‚¢ãƒœãƒ¼ãƒ‰ã‚’ç¶æŒã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
status モジュールã¯ã€ç·©ã‚„ã‹ãªå†èµ·å‹•以å‰ã‹ã‚‰é–‹å§‹ã—ã¦
リクエストã«å¿œç”ã—ç¶šã‘ã¦ã„ã‚‹åプãƒã‚»ã‚¹ã‚’特定ã™ã‚‹ãŸã‚ã«ã€
G
を使ã†ã“ã¨ã‚‚ã—ã¾ã™ã€‚
ç¾åœ¨ã€USR1
を使ã†ãƒã‚°ç§»å‹•スクリプトã§ã¯ã€
å†èµ·å‹•å‰ã®åプãƒã‚»ã‚¹ãŒãƒã‚°ã‚’書ã終ã‚ã£ãŸã“ã¨ã‚’確証ã™ã‚‹æ–¹æ³•ãŒ
ã‚りã¾ã›ã‚“。å¤ã„ãƒã‚°ã«å¯¾ã—ã¦ä½•ã‹ã™ã‚‹å‰ã«ã€
USR1
シグナルをé€ã£ãŸå¾Œã„ãらã‹é©å½“ãªæ™‚é–“å¾…ã¤ã“ã¨ã‚’
ææ¡ˆã—ã¾ã™ã€‚例ãˆã°ã€å¸¯åŸŸã®ç‹ã„通信路ã®ãƒ¦ãƒ¼ã‚¶ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ã»ã¨ã‚“ã©ãŒ 10
分以下ã§å®Œäº†ã—ã¦ã„ã‚‹ã¨ã„ã†ã“ã¨ãŒåˆ†ã‹ã£ã¦ã„れã°ã€
å¤ã„ãƒã‚°ã«ä½•ã‹ã™ã‚‹å‰ã« 15 分待ã¤ã¨ã„ã†ã“ã¨ã§ã™ã€‚
-t
コマンドライン引数
(httpd
ã‚’ã”覧下ã•ã„)
を使ã£ã¦æ¤œè¨¼ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
è¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã®æ„味的ãªå†…容を構文ã¨åŒæ§˜ã«æ¤œè¨¼ã—ãŸã„å ´åˆã¯ã€
éž root ユーザ㧠httpd
ã‚’èµ·å‹•ã—よã†ã¨ã™ã‚Œã°ã‚ã‹ã‚Šã¾ã™ã€‚
ã‚‚ã—エラーãŒãªã‘れã°ã€ã‚½ã‚±ãƒƒãƒˆã‚„ãƒã‚°ã‚’é–‹ã“ã†ã¨ã—ã¦
root ã§ãªã„ãŸã‚
(ã‚‚ã—ãã¯å®Ÿè¡Œä¸ã® httpd
ãŒæ—¢ã«å¿…è¦ãªãƒãƒ¼ãƒˆã«ãƒã‚¤ãƒ³ãƒ‰ã—ã¦ã„ã‚‹ãŸã‚)
ã«å¤±æ•—ã™ã‚‹ã§ã—ょã†ã€‚
ã“れ以外ã®ç†ç”±ã§èµ·å‹•ã«å¤±æ•—ã—ãŸã®ã§ã‚れã°ã€
ãれã¯è¨å®šãƒ•ァイルã®ã‚¨ãƒ©ãƒ¼ã§ã€
ç·©ã‚„ã‹ãªå†èµ·å‹•を行ã†å‰ã«ãã®èª¤ã‚Šã‚’ä¿®æ£ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“。apachectl -k restart
HUP
ã‚ã‚‹ã„㯠restart
シグナルを親プãƒã‚»ã‚¹ã«é€ã‚‹ã¨ã€
TERM
ã¨åŒæ§˜ã«åプãƒã‚»ã‚¹ã‚’ kill ã—ã¾ã™ãŒã€
親プãƒã‚»ã‚¹ã¯çµ‚了ã—ã¾ã›ã‚“。
è¨å®šãƒ•ァイルをå†èªè¾¼ã—ã¦ã€ãƒã‚°ãƒ•ァイル全ã¦ã‚’é–‹ãç›´ã—ã¾ã™ã€‚
ãã®å¾Œã€æ–°ã—ã„åプãƒã‚»ã‚¹ã‚’èµ·å‹•ã—ã¦å¿œç”ã‚’ç¶šã‘ã¾ã™ã€‚
mod_status
を使ã£ã¦ã„ã‚‹å ´åˆã¯ã€HUP
ãŒé€ã‚‰ã‚ŒãŸå ´åˆã«
サーãƒçµ±è¨ˆãŒã‚¼ãƒã«è¨å®šã•れるã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
apachectl -k graceful-stop
親プãƒã‚»ã‚¹ã¯ WINCH
ã‚ã‚‹ã„㯠graceful-stop
シグナルをå—ã‘å–ã‚‹ã¨ã€åプãƒã‚»ã‚¹ã«ç¾åœ¨ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®å‡¦ç†ã®å¾Œã«çµ‚了ã™ã‚‹
(ã‚ã‚‹ã„ã¯ä½•ã‚‚ã—ã¦ã„ãªã‘れã°ã™ãã«çµ‚了ã™ã‚‹)
よã†ã«åŠ©è¨€ã—ã¾ã™ã€‚
ãã®å¾Œã«è¦ªãƒ—ãƒã‚»ã‚¹ã¯ PidFile
を削除ã—ã€å…¨ãƒãƒ¼ãƒˆã‹ã‚‰ã® Listen ã‚’ã‚„ã‚ã¾ã™ã€‚
親プãƒã‚»ã‚¹ã¯ã“ã®ã¾ã¾ç¶™ç¶šã—ã€åプãƒã‚»ã‚¹ãŒãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’処ç†ã™ã‚‹
ã®ã‚’監視ã—ã¦ã„ã¾ã™ã€‚åプãƒã‚»ã‚¹ãŒå…¨ã¦å‡¦ç†ã‚’終ãˆã¦çµ‚了ã™ã‚‹ã‹ã€GracefulShutdownTimeout
ã§æŒ‡å®šã•れãŸã‚¿ã‚¤ãƒ アウトã«é”ã—ãŸå¾Œã§ã€è¦ªãƒ—ãƒã‚»ã‚¹ã‚‚終了ã—ã¾ã™ã€‚
タイムアウトã«é”ã—ãŸå ´åˆã¯ã€æ®‹ã‚Šã®åプãƒã‚»ã‚¹ã«ã¯ TERM
シグナルãŒé€ä¿¡ã•れã€å¼·åˆ¶çµ‚了ã•れã¾ã™ã€‚
TERM
シグナルã«ã‚ˆã£ã¦ã€"graceful" 状態ã«ã‚る親プãƒã‚»ã‚¹ã¨
åプãƒã‚»ã‚¹ã®å…¨ã¦ãŒç›´ã¡ã«çµ‚了ã—ã¾ã™ã€‚ãŸã ã—ã€
PidFile
ã¯æ—¢ã«å‰Šé™¤
ã•れã¦ã—ã¾ã£ã¦ã„ã¾ã™ã®ã§ã€apachectl
ã‚„ httpd
ã§ã“れらã«ã‚·ã‚°ãƒŠãƒ«ã‚’é€ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。
graceful-stop
シグナルを使ã†ã¨ã€ã¾ã£ãŸãåŒä¸€ã®è¨å®š
ファイルを使ã£ãŸ httpd
ã‚’åŒæ™‚ã«è¤‡æ•°èµ·å‹•ã™ã‚‹ã“ã¨ãŒ
ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚
ã“ã®æ©Ÿèƒ½ã‚’使ã†ã¨ã€Apache をアップグレードã™ã‚‹éš›ã«ã¨ã¦ã‚‚便利ã§ã—ょã†ã€‚
ãŸã ã—ã€è¨å®šã«ã‚ˆã£ã¦ã¯ãƒ‡ãƒƒãƒ‰ãƒãƒƒã‚¯ã‚„ç«¶åˆçŠ¶æ…‹ (レースコンディション)
を引ãèµ·ã“ã™ã‹ã‚‚ã—れã¾ã›ã‚“。
Lockfile
ã‚„ ScriptSock
ãªã©ã§ã®ãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã®ãƒ•ァイルã«ã¤ã„ã¦ã¯ã€
ファイルã«ã‚µãƒ¼ãƒã® PID ãŒå«ã¾ã‚Œã‚‹ã‚ˆã†ã«ãªã£ã¦ã„ã¦ã€httpd ãŒè¤‡æ•°åŒæ™‚ã«å‹•作ã—ã¦ã„ã¦ã‚‚
å•題ãŒãŠããªã„よã†ã«æ³¨æ„ãŒæ‰•ã‚れã¦ã„ã¾ã™ã€‚
ã—ã‹ã—ã€è¨å®šãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–やサードパーティ製モジュールã€CGI ã§ä½¿ç”¨ã•れる永続的ãª
ディスクを使ã£ãŸãƒãƒƒã‚¯ã‚„状態ファイルを活用ã—ã¦ã„ã‚‹å ´åˆã«ã¤ã„ã¦ã‚‚ã€
複数㮠httpd
ãŒå‹•作ã—ã¦ã„る状態ã§ã‚ã£ã¦ã‚‚ã€ãれãžã‚Œã§
ファイルを上書ãã—ãªã„よã†ã«æ³¨æ„ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
潜在的ãªç«¶åˆçŠ¶æ…‹ã«ã¤ã„ã¦ã‚‚心é…ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã§ã—ょã†ã€‚
ãŸã¨ãˆã° rotatelogs
å½¢å¼ã®ãƒ‘イプã«ã‚ˆã‚‹ãƒã‚°ãªã©ãŒè©²å½“ã—ã¾ã™ã€‚
複数㮠rotatelogs
インスタンスãŒåŒæ™‚ã«åŒã˜ãƒã‚°ãƒ•ァイルを
rotate ã—よã†ã¨ã™ã‚‹ã¨ã€ãƒã‚°ãƒ•ァイルãŒç ´å£Šã•れるã‹ã‚‚ã—れã¾ã›ã‚“。