Apache HTTP Server Version 2.1
¼³¸í: | ¸Þ¸ð¸®¿¡ Á¤Àû ÆÄÀϵéÀ» ij½¬ |
---|---|
»óÅÂ: | Experimental |
¸ðµâ¸í: | file_cache_module |
¼Ò½ºÆÄÀÏ: | mod_file_cache.c |
mod_file_cache
¸¦
»ç¿ëÇÏ¿© »çÀÌÆ®¸¦ ¾û¸ÁÀ¸·Î ¸¸µé±â ½±±â¶§¹®¿¡ ÀÌ ¹®¼¸¦
²Ä²ÄÈ÷ ÀÐ±æ ¹Ù¶õ´Ù.
°ÅÀÇ º¯ÇÏÁö ¾Ê°í ÀÚÁÖ ¿äûµÇ´Â ÆÄÀÏÀ» ij½¬¿¡
ÀúÀåÇÏ¿© ¼¹ö ºÎÇϸ¦ ÁÙÀÏ ¼ö ÀÖ´Ù. mod_file_cache
´Â
ÀÚÁÖ ¿äûµÇ´Â Á¤Àû ÆÄÀÏÀ» µÎ°¡Áö ¹æ½ÄÀ¸·Î ij½¬¿¡
ÀúÀåÇÑ´Ù. ¼³Á¤ Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© mod_file_cache
°¡
ÆÄÀÏÀ» ¿°í(open) mmap()
ÇÒÁö ¾Æ´Ï¸é ÆÄÀÏÀ»
¿°í ÆÄÀÏ ÇÚµéÀ» ÀúÀåÇÒÁö °áÁ¤ÇÑ´Ù. µÎ ¹æ½Ä ¸ðµÎ
ÆÄÀÏÀ» ¼ºñ½ºÇϱâÀ§ÇØ ÇÊ¿äÇÑ ÀÛ¾÷ÀÇ ÀϺθ¦ (ƯÈ÷ ÆÄÀÏ ÀÔÃâ·Â
ÀÛ¾÷) ÆÄÀÏÀ» ¿äûÇÒ ¶§¸¶´Ù ¸Å¹ø ÇÏ´Â ´ë½Å ¼¹ö°¡ ½ÃÀÛÇÒ¶§
Çѹø¸¸ ÇÏ¿© ¼¹ö ºÎÇÏ°¡ °¨¼ÒÇÑ´Ù.
ÁÖÀÇ: ÀÌ ¹æ¹ýÀº CGI ÇÁ·Î±×·¥À̳ª Ưº°ÇÑ ³»¿ëÇڵ鷯¸¦ ÅëÇØ ¼ºñ½ºÇÏ´Â ÆÄÀÏÀÇ ¼ºñ½º ¼Óµµ¸¦ ³ôÀÏ ¼ö ¾ø´Ù. ÀÌ ¹æ¹ýÀº º¸Åë ¾ÆÆÄÄ¡ core ³»¿ëÇڵ鷯°¡ ¼ºñ½ºÇÏ´Â ÀϹÝÆÄÀÏ¿¡¸¸ Àû¿ëµÈ´Ù.
ÀÌ ¸ðµâÀº ¾ÆÆÄÄ¡ 1.3¿¡ ÀÖ´Â mod_mmap_static
¸ðµâÀÇ ±â´ÉÀ» È®ÀåÇÑ °á°ú´Ù.
mod_file_cache
´Â ÁÖ¼¹ö ¼³Á¤¿¡¼ MMapFile
°ú CacheFile
Áö½Ã¾î¸¦ »ç¿ëÇÏ¿©
¼³Á¤ÇÑ Á¤Àû ÆÄÀϵéÀ» ij½¬¿¡ ÀúÀåÇÑ´Ù.
¸ðµç Ç÷¡ÆûÀÌ µÎ Áö½Ã¾î¸¦ ¸ðµÎ Áö¿øÇÏ´Â °ÍÀº ¾Æ´Ï´Ù.
¿¹¸¦ µé¾î, À©µµ¿ìÁî¿ë ¾ÆÆÄÄ¡´Â ÇöÀç MMapStatic
Áö½Ã¾î¸¦
Áö¿øÇÏÁö ¾ÊÁö¸¸, AIX °°Àº ´Ù¸¥ Ç÷¡ÆûÀº µÑ ¸ðµÎ¸¦ Áö¿øÇÑ´Ù.
Áö¿øÇÏÁö¾Ê´Â Áö½Ã¾î¸¦ »ç¿ëÇÒ °æ¿ì ¼¹ö ¿À·ù ·Î±×¿¡ ¿À·ù¹®À»
³²±ä´Ù. Áö¿øÇÏÁö¾Ê´Â Áö½Ã¾î¸¦ »ç¿ëÇصµ ¼¹ö´Â µ¿ÀÛÇÏÁö¸¸
ÆÄÀÏÀ» ij½¬¿¡ ÀúÀåÇÏÁö ¾Ê´Â´Ù. µÎ Áö½Ã¾î¸¦ ¸ðµÎ Áö¿øÇÏ´Â
Ç÷¡ÆûÀ» »ç¿ëÇÑ´Ù¸é ¾î¶² ¹æ½ÄÀÌ ´õ ÁÁÀºÁö ½ÇÇèÇغ¸¶ó.
mod_file_cache
ÀÇ MMapFile
Áö½Ã¾î´Â
¼³Á¤ÇÑ Á¤Àû ÆÄÀϵéÀ» mmap()
½Ã½ºÅÛÈ£ÃâÀ»
»ç¿ëÇÏ¿© ¸Þ¸ð¸®¿¡ ´ëÀÀÇÑ´Ù. ÃֽŠÀ¯´Ð½º·ù ¿î¿µÃ¼Á¦¶ó¸é
º¸Åë ÀÌ ½Ã½ºÅÛÈ£ÃâÀÌ ÀÖÁö¸¸, ¾ø´Â ¿î¿µÃ¼Á¦µµ ÀÖ´Ù. ¶Ç,
mmap()
ÇÒ ¼ö ÀÖ´Â ÆÄÀÏ Å©±â¿Í °³¼ö¸¦ ½Ã½ºÅÛÀÌ
Á¦ÇÑÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¹Ì¸® ½ÇÇèÇغ¸´Â °ÍÀÌ ÁÁ´Ù.
¼¹ö´Â ½ÃÀÛÇÒ¶§¿Í Àç½ÃÀÛÇÒ¶§¸¸ mmap()
ÇÑ´Ù.
±×·¡¼ ÆÄÀϽýºÅÛ¿¡¼ ÇØ´ç ÆÄÀÏÁß Çϳª¶óµµ º¯°æµÇ¸é ¼¹ö¸¦
Àç½ÃÀÛÇØ¾ß ÇÑ´Ù (Áß´Ü°ú
Àç½ÃÀÛ ¹®¼ Âü°í). ´Ù½Ã ¸»Çؼ ÆÄÀÏÀÌ º¯°æµÇ¾ú´Âµ¥
¼¹ö¸¦ Àç½ÃÀÛÇÏÁö ¾ÊÀ¸¸é ¿ÏÀüÈ÷ ÀÌ»óÇÏ°Ô ¿äûÀ» ¼ºñ½ºÇÒÁöµµ
¸ð¸¥´Ù. ÀÌÀü ÆÄÀÏÀ» Áö¿ì°í(unlink) ±× ÀÚ¸®¿¡ »õ·Î¿î ÆÄÀÏÀ»
¸¸µé´Â ¹æ½ÄÀ¸·Î ÆÄÀÏÀ» ¼öÁ¤ÇØ¾ß ÇÑ´Ù. rdist
³ª
mv
¿Í °°Àº ´ë´Ù¼öÀÇ µµ±¸°¡ ÀÌ·± ¹æ½ÄÀ¸·Î µ¿ÀÛÇÑ´Ù.
¸Å¹ø Ãß°¡·Î ºÒÇÊ¿äÇÑ stat()
°Ë»ç°¡ ÇÊ¿äÇÏ°í
ÀÔÃâ·Â °¨¼Ò¶ó´Â ¿ø·¡ Àǵµ¿¡ ¹ÝÇϱ⶧¹®¿¡ ÀÌ ¸ðµâÀº ÆÄÀÏÀÇ
º¯È¸¦ ¹«½ÃÇÑ´Ù.
mod_file_cache
ÀÇ CacheFile
Áö½Ã¾î´Â
¼³Á¤ Áö½Ã¾î¿¡ ¿°ÅÇÑ ÆÄÀÏ(°ú ÆÄÀϵé)À» ¿¾î¼ ÆÄÀÏÀÇ
ÇÚµé(handle) ȤÀº ÆÄÀÏ ±â¼úÀÚ(file descriptor)¸¦
ij½¬¿¡ ÀúÀåÇÑ´Ù. ÆÄÀÏÀ» ¿äûÇÏ¸é ¼¹ö´Â ij½¬¿¡¼ ÇÚµéÀ»
ã¾Æ¼ ¼ÒÄÏ API sendfile()
¿¡ (À©µµ¿ìÁî¿¡¼´Â
TransmitFile()
) ³Ñ±ä´Ù.
¼¹ö´Â ½ÃÀÛÇÒ¶§¿Í Àç½ÃÀÛÇÒ¶§¸¸ ÆÄÀÏ ÇÚµéÀ» ij½¬ÇÑ´Ù.
±×·¡¼ ÆÄÀϽýºÅÛ¿¡¼ ij½¬ÇÑ ÆÄÀÏÁß Çϳª¶óµµ º¯°æµÇ¸é
¼¹ö¸¦ Àç½ÃÀÛÇØ¾ß ÇÑ´Ù (Áß´Ü°ú Àç½ÃÀÛ ¹®¼ Âü°í).
´Ù½Ã ¸»Çؼ ÆÄÀÏÀÌ º¯°æµÇ¾ú´Âµ¥ ¼¹ö¸¦ Àç½ÃÀÛÇÏÁö ¾ÊÀ¸¸é
¿ÏÀüÈ÷ ÀÌ»óÇÏ°Ô ¿äûÀ» ¼ºñ½ºÇÒÁöµµ ¸ð¸¥´Ù. ÀÌÀü ÆÄÀÏÀ»
Áö¿ì°í(unlink) ±× ÀÚ¸®¿¡ »õ·Î¿î ÆÄÀÏÀ» ¸¸µå´Â ¹æ½ÄÀ¸·Î
ÆÄÀÏÀ» ¼öÁ¤ÇØ¾ß ÇÑ´Ù. rdist
³ª mv
¿Í
°°Àº ´ë´Ù¼öÀÇ µµ±¸°¡ ÀÌ·± ¹æ½ÄÀ¸·Î µ¿ÀÛÇÑ´Ù.
µð·ºÅ丮ÀÇ ¸ðµç ÆÄÀÏÀ» Àç±ÍÀûÀ¸·Î ij½¬¿¡ ÀúÀåÇÏ´Â Áö½Ã¾î´Â
¾ø´Ù. ´ë½Å ´ÙÀ½°ú °°ÀÌ Çغ¸¶ó... Include
Áö½Ã¾î¸¦ Âü°íÇÏ¿© ´ÙÀ½°ú
°°Àº ¸í·É¾î¸¦ ½ÇÇàÇÑ´Ù:
find /www/htdocs -type f -print \
| sed -e 's/.*/mmapfile &/' > /www/conf/mmap.conf
¼³¸í: | ½ÃÀ۽à ¿©·¯ ÆÄÀÏ ÇÚµéÀ» ij½¬ÇÑ´Ù |
---|---|
¹®¹ý: | CacheFile file-path [file-path] ... |
»ç¿ëÀå¼Ò: | ÁÖ¼¹ö¼³Á¤ |
»óÅÂ: | Experimental |
¸ðµâ: | mod_file_cache |
CacheFile
Áö½Ã¾î´Â ¼¹ö°¡ ½ÃÀÛÇÒ¶§
¿©·¯ ÆÄÀÏÀ» ¿°í(open) ÆÄÀϵéÀÇ ÇÚµéÀ» ij½¬¿¡ ÀúÀåÇÑ´Ù.
¼¹ö Á¾·á½Ã ÀÚµ¿À¸·Î ij½¬ÇÑ ÆÄÀÏÀÇ ÇÚµéÀ» ´Ý´Â´Ù(close).
ÆÄÀϽýºÅÛ¿¡¼ ÆÄÀÏÀÌ º¯°æµÇ¸é ÆÄÀÏÀ» ´Ù½Ã ij½¬ÇϱâÀ§ÇØ
¼¹ö¸¦ Àç½ÃÀÛÇØ¾ß ÇÑ´Ù.
file-path ¾Æ±Ô¸ÕÆ®¸¦ Á¶½ÉÇضó. ¾Æ±Ô¸ÕÆ®´Â
¾ÆÆÄÄ¡ÀÇ URL-ÆÄÀÏ¸í º¯È¯ Çڵ鷯°¡ ¸¸µç ÆÄÀϽýºÅÛ °æ·Î¿Í
Á¤È®È÷ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. Çѹø ´õ ºÒÇÊ¿äÇÑ stat()
½Ã½ºÅÛÈ£ÃâÀÌ ÇÊ¿äÇϱ⶧¹®¿¡ inode³ª ½Éº¼¸µÅ© µîÀ»
°æ·Î¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. ÀÌ ¸ðµâÀº mod_alias
³ª
mod_rewrite
·Î ÀçÀÛ¼ºÇÑ ÆÄÀϸíÀ» ´Ù·ê ¼ö
Àֱ⵵ ¾ø±âµµ ÇÏ´Ù.
CacheFile /usr/local/apache/htdocs/index.html
¼³¸í: | ½ÃÀ۽à ¿©·¯ ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡ ´ëÀÀÇÑ´Ù |
---|---|
¹®¹ý: | MMapFile file-path [file-path] ... |
»ç¿ëÀå¼Ò: | ÁÖ¼¹ö¼³Á¤ |
»óÅÂ: | Experimental |
¸ðµâ: | mod_file_cache |
MMapFile
Áö½Ã¾î´Â ¼¹ö°¡ ½ÃÀÛÇÒ¶§
(°ø¹éÀ¸·Î ±¸ºÐÇÑ ¾Æ±Ô¸ÕÆ®·Î ÁöÁ¤ÇÑ) ¿©·¯ ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡
´ëÀÀÇÑ´Ù(map). ¼¹ö Á¾·á½Ã ÀÚµ¿À¸·Î ´ëÀÀÀ» Ǭ´Ù(unmap).
ÆÄÀϽýºÅÛ¿¡¼ ÆÄÀÏÀÌ º¯°æµÇ¸é ÆÄÀϵéÀ» ´Ù½Ã
mmap()
ÇϱâÀ§ÇØ ÃÖ¼ÒÇÑ ¼¹ö¿¡ HUP
À̳ª
USR1
½Ã±×³ÎÀ» º¸³»¾ß ÇÑ´Ù.
file-path ¾Æ±Ô¸ÕÆ®¸¦ Á¶½ÉÇضó. ¾Æ±Ô¸ÕÆ®´Â
¾ÆÆÄÄ¡ÀÇ URL-ÆÄÀÏ¸í º¯È¯ Çڵ鷯°¡ ¸¸µç ÆÄÀϽýºÅÛ °æ·Î¿Í
Á¤È®È÷ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. Çѹø ´õ ºÒÇÊ¿äÇÑ stat()
½Ã½ºÅÛÈ£ÃâÀÌ ÇÊ¿äÇϱ⶧¹®¿¡ inode³ª ½Éº¼¸µÅ© µîÀ»
°æ·Î¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. ÀÌ ¸ðµâÀº mod_alias
³ª
mod_rewrite
·Î ÀçÀÛ¼ºÇÑ ÆÄÀϸíÀ» ´Ù·ê ¼ö
Àֱ⵵ ¾ø±âµµ ÇÏ´Ù.
MMapFile /usr/local/apache/htdocs/index.html