<-
Apache > HTTP Server > Documentation > Version 2.5 > ¸ðµâ

¾ÆÆÄÄ¡ ¸ðµâ mod_unique_id

°¡´ÉÇÑ ¾ð¾î:  en  |  fr  |  ja  |  ko 

ÀÌ ¹®¼­´Â ÃÖ½ÅÆÇ ¹ø¿ªÀÌ ¾Æ´Õ´Ï´Ù. ÃÖ±Ù¿¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
¼³¸í:°¢ ¿äû¸¶´Ù À¯ÀÏÇÑ ½Äº°ÀÚ¸¦ °¡Áö´Â ȯ°æº¯¼ö¸¦ Á¦°øÇÑ´Ù
»óÅÂ:Extension
¸ðµâ¸í:unique_id_module
¼Ò½ºÆÄÀÏ:mod_unique_id.c

¿ä¾à

ÀÌ ¸ðµâÀº ¾î¶² Ưº°ÇÑ »óȲ¿¡¼­µµ "¸ðµç" ¿äûÁß¿¡¼­ À¯ÀÏÇϵµ·Ï º¸ÀåµÈ ½Äº°ÀÚ(identifier)¸¦ ¸ðµç ¿äû¿¡ Á¦°øÇÑ´Ù. ½ÉÁö¾î ÀÌ ½Äº°Àڴ Ưº°ÇÏ°Ô ±¸¼ºÇÑ Å¬·¯½ºÅÍÀÇ ¿©·¯ ÄÄÇ»Å͵é Áß¿¡¼­µµ À¯ÀÏÇÏ´Ù. °¢ ¿äû¸¶´Ù ȯ°æº¯¼ö UNIQUE_ID¸¦ ¼³Á¤ÇÑ´Ù. À¯ÀÏÇÑ ½Äº°ÀÚ´Â ¿©·¯°¡Áö ¿ëµµ·Î »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ¼³¸íÀº ÀÌ ¹®¼­ÀÇ ¹üÀ§¸¦ ³Ñ¾î¼±´Ù.

ÁÖÁ¦

Áö½Ã¾îµé

ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.

Bugfix checklist

Âü°í

top

ÀÌ·Ð

¸ÕÀú À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ ¾ÆÆÄÄ¡ ¼­¹ö°¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö °£·«È÷ »ìÆ캸ÀÚ. Windows NT´Â ÇöÀç ÀÌ ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. À¯´Ð½º¿¡¼­ ¾ÆÆÄÄ¡´Â ¿©·¯ ÀÚ½ÄÀ» ¸¸µé°í, ÀÚ½Ä ÇÁ·Î¼¼½º´Â Çѹø¿¡ ÇÑ ¿äû¾¿ ó¸®ÇÑ´Ù. ÀÚ½ÄÀº ½ÇÇàÁß¿¡ ¿©·¯ ¿äûÀ» ó¸®ÇÑ´Ù. ¿©±â¼­ Áß¿äÇÑ °ÍÀº ÀڽĵéÀÌ ¼­·Î ÀڷḦ °øÀ¯ÇÏÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. ¾ÕÀ¸·Î ÀÚ½ÄÀ» httpd ÇÁ·Î¼¼½º¶ó°í ÇÑ´Ù.

¿©·¯ ÄÄÇ»ÅÍ·Î À¥»çÀÌÆ®¸¦ ¼­ºñ½ºÇÑ´Ù¸é Ŭ·¯½ºÅÍ(cluster)¶ó°í ºÎ¸¥´Ù. °¢ ÄÄÇ»ÅÍ´Â ¿©·¯ ¾ÆÆÄÄ¡¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ÀÌµé ¸ðµÎ¸¦ "¿ìÁÖ"·Î º¸¸é, Ŭ·¯½ºÅÍ¿¡ ÀÖ´Â ÄÄÇ»Å͵鰣¿¡ ¸¹Àº Åë½Å¾øÀÌ °¢ ¿äû¸¶´Ù ¿ìÁÖ¿¡¼­ À¯ÀÏÇÑ ½Äº°ÀÚ¸¦ ¸¸µé ¼ö ÀÖ´Ù.

Ŭ·¯½ºÅÍ¿¡ ÀÖ´Â ÄÄÇ»ÅÍ´Â ´ÙÀ½ ¿ä±¸»çÇ×À» ¸¸Á·ÇØ¾ß ÇÑ´Ù. (ÄÄÇ»Å͸¦ ÇѴ븸 »ç¿ëÇÏ´õ¶óµµ ÄÄÇ»ÅÍ ½Ã°£À» NTP¿Í µ¿±âÇØ¾ß ÇÑ´Ù.)

¿î¿µÃ¼Á¦¿¡¼­ pid (ÇÁ·Î¼¼½º id)°¡ 32ºñÆ®¿¡ µé¾î°£´Ù°í °¡Á¤ÇÑ´Ù. ¿î¿µÃ¼Á¦°¡ pid·Î 32ºñÆ® ÀÌ»óÀ» »ç¿ëÇÑ´Ù¸é °£´ÜÇÏÁö¸¸ Äڵ带 ¼öÁ¤ÇØ¾ß ÇÑ´Ù.

ÀÌ·± °¡Á¤ÇÏ¿¡ ¿ì¸®´Â ¾î¶² ½ÃÁ¡¿¡¼­ Ŭ·¯½ºÅÍÀÇ ¾î¶² ÄÄÇ»ÅÍ¿¡ ÀÖ´Â ¾î¶² httpd ÇÁ·Î¼¼½º¸¦ ´Ù¸¥ ¸ðµç httpd ÇÁ·Î¼¼½ºµé°ú ±¸º°ÇÒ ¼ö ÀÖ´Ù. ÄÄÇ»ÅÍÀÇ IP ÁÖ¼Ò¿Í httpd ÇÁ·Î¼¼½ºÀÇ pid¸¸À¸·Îµµ ÃæºÐÈ÷ ±¸º°ÇÒ ¼ö ÀÖ´Ù. ±×·¡¼­ ¿äû¿¡ ´ëÇØ À¯ÀÏÇÑ ±¸º°ÀÚ¸¦ ¸¸µå·Á¸é ½Ã°£Â÷¸¦ ±¸º°ÇÒ ¼ö¸¸ ÀÖÀ¸¸é µÈ´Ù.

½Ã°£À» ±¸º°ÇϱâÀ§ÇØ À¯´Ð½º ½Ã°£(timestamp, ¼¼°è Ç¥Áؽ÷Π1970³â 1¿ù 1ÀÏ ÀÌÈÄ Áö³­ ÃÊ)°ú 16ºñÆ® Ä«¿îÅ͸¦ »ç¿ëÇÑ´Ù. À¯´Ð½º ½Ã°£Àº ÃÊ´ÜÀ§ÀÌ°í, Ä«¿îÅÍ´Â ÀÏ Ãʵ¿¾È 65536±îÁö Áõ°¡ÇÑ´Ù. ( ip_addr, pid, time_stamp, counter ) ¹­À½Àº ¾î¶² httpd ÇÁ·Î¼¼½º¿¡¼­ ÀÏ Ãʵ¿¾È 65536 ¿äûÀ» ±¸º°ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª Ä«¿îÅÍ´Â pid¸¦ Àç»ç¿ëÇÏ´Â ¹®Á¦¸¦ ÇØ°áÇØ¾ß ÇÑ´Ù.

httpd ÀÚ½ÄÀ» ¸¸µé¸é Ä«¿îÅÍ´Â ( ÇöÀç ¹Ð¸®ÃÊ ³ª´©±â 10 )À» 65536À¸·Î ³ª´« ³ª¸ÓÁö°¡ µÈ´Ù. (¸î¸î ½Ã½ºÅÛÀÇ ¹Ð¸®ÃÊ ½Ã°£¿¡¼­ ÇÏÀ§ ºñÆ®°¡ ÀÏÄ¡ÇÏÁö¾Ê´Â ¹®Á¦¶§¹®¿¡ ÀÌ °ø½ÄÀ» ¸¸µé¾ú´Ù.) À¯ÀÏÇÑ ½Äº°ÀÚ¸¦ ¸¸µé¶§ »ç¿ëÇÏ´Â ½Ã°£Àº À¥¼­¹ö°¡ ¿äûÀ» ¹ÞÀº ½Ã°£ÀÌ´Ù. Ä«¿îÅÍ´Â ½Äº°ÀÚ¸¦ ¸¸µé¶§¸¶´Ù Áõ°¡ÇÑ´Ù (±×¸®°í ´Ù½Ã ½ÃÀÛÇÑ´Ù).

Ä¿³ÎÀº ÇÁ·Î¼¼½º¸¦ Æ÷Å©ÇÒ¶§(fork) °¢ ÇÁ·Î¼¼½º¿¡ pid¸¦ ÇÒ´çÇÏ°í, pid´Â ´Ù½Ã ½ÃÀÛÇÒ ¼ö ÀÖ´Ù. (pid´Â ¸¹Àº À¯´Ð½º¿¡¼­ 16ºñÆ®ÀÌÁö¸¸, ÃÖ±Ù ½Ã½ºÅÛÀº 32ºñÆ®·Î È®ÀåÇß´Ù.) ±×·¡¼­ ½Ã°£ÀÌ Áö³ª¸é °°Àº pid¸¦ Àç»ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª °°Àº ½Ã°£¿¡ pid¸¦ Àç»ç¿ëÇÏÁö ¾Ê´Â´Ù¸é À§ÀÇ ¹­À½Àº À¯ÀÏÇÏ´Ù. Áï, ¿ì¸®´Â ½Ã½ºÅÛÀÌ ÀÏÃʵ¿¾È ÇÁ·Î¼¼½º¸¦ 65536°³ ÀÌ»ó ¸¸µéÁö ¾Ê´Â´Ù°í °¡Á¤ÇÑ´Ù. (¾î¶² À¯´Ð½º¿¡¼­´Â 32768°³ ÀÌ»ó ÇÁ·Î¼¼½º¸¦ ¸¸µé¸é pid Àç»ç¿ë ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖÁö¸¸, ÀÌ°ÍÁ¶Â÷µµ ÀϾ °Í°°Áö ¾Ê´Ù.)

½Ã°£ÀÌ ¾î¶² ÀÌÀ¯¿¡¼­°Ç ¹Ýº¹µÈ´Ù°í °¡Á¤Çغ¸ÀÚ. Áï, ½Ã½ºÅÛ ½Ã°è°¡ ²¿¿©¼­ ½Ã°£ÀÌ °ú°Å·Î µ¹¾Æ°¡´Â (ȤÀº ½Ã°è°¡ ³Ê¹« ¾Õ¼­°¡¼­ ¿Ã¹Ù·Î Àç¼³Á¤ÇÑÈÄ ¹Ì·¡¿¡ °°Àº ½Ã°£ÀÌ µÇ´Â) °æ¿ì´Ù. ÀÌ °æ¿ì pid¿Í ½Ã°£À» ¸ðµÎ Àç»ç¿ëÇÒ ¼ö ÀÖ´Ù. Ä«¿îÅÍÀÇ ÃʱâÈ­ °ø½ÄÀº ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á°í °í¾ÈµÇ¾ú´Ù. ¿ì¸®´Â ½ÇÁ¦ ¹«ÀÛÀ§ ¼ýÀÚ·Î Ä«¿îÅ͸¦ ÃʱâÈ­ÇÏ±æ ¿øÇÏÁö¸¸, ¸¹Àº ½Ã½ºÅÛ¿¡¼­ ÀÌ·± ¼ö¸¦ ½±°Ô ¾òÀ» ¼ö ¾ø´Ù. (¿¹¸¦ µé¾î, seed°¡ ÇÊ¿äÇϱ⶧¹®¿¡ rand()¸¦ »ç¿ëÇÒ ¼ö ¾ø°í, ½Ã°£Àº ÃÖ¼ÒÇÑ ÀÏÃÊ ´ÜÀ§À̱⶧¹®¿¡ ½Ã°£À¸·Î seed·Î »ç¿ëÇÒ ¼ö ¾ø´Ù.) Áï ¿Ïº®ÇÑ ÇØ°áÃ¥ÀÌ ¾ø´Ù.

±×·³ ÀÌ ¹æ¹ýÀº ¾ó¸¶³ª ±¦ÂúÀ»±î? ÄÄÇ»ÅÍÁß Çϳª°¡ ¿äûÀ» ÃÊ´ç ÃÖ´ë 500°³ (½Ã½ºÅÛÀº ÀϹÝÀûÀ¸·Î Á¤ÀûÀÎ ÆÄÀÏÀ» Àü¼ÛÇÏ´Â °Í ÀÌ»óÀÇ ÀÛ¾÷À» ÇϹǷΠÀÌ ±ÛÀ» ¾²´Â ½ÃÁ¡¿¡¼­ »ó´çÈ÷ ³ôÀº °ªÀÌ´Ù.) ¼­ºñ½ºÇÑ´Ù°í °¡Á¤ÇÏÀÚ. µ¿½Ã¿¡ ¾ó¸¶¸¸Å­ÀÇ Å¬¶óÀ̾ðÆ®¸¦ ó¸®Çϴ°¡¿¡ µû¶ó ÀÚ½ÄÀÇ °³¼ö°¡ °áÁ¤µÈ´Ù. ±×·¯³ª ¿ì¸®´Â ºñ°üÀûÀ¸·Î ÇÑ ÀÚ½ÄÀÌ ¿äûÀ» ÃÊ´ç 500°³ ó¸®ÇÒ ¼ö ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. Àç»ç¿ëÇÑ pid¸¦ °¡Áø ÀÚ½ÄÀÇ 500°³ ¿äû°ú ÀÌÀü ÀÚ½ÄÀÇ 500°³ ¿äûÀÇ Ä«¿îÅÍ°ªÀÌ °ãÄ¥ ¼ö ÀÖ´Â Ä«¿îÅÍ ½ÃÀÛ°ª °æ¿ì¼ö´Â 1000°³ÀÌ´Ù. ±×·¡¼­ (ÃÊ´ÜÀ§¿¡¼­) ÀÚ½ÄÀÌ Ä«¿îÅÍ°ªÀ» ¹Ýº¹ÇÏ¿© À¯ÀϼºÀÌ ±úÁú È®·üÀº 1.5%ÀÌ´Ù. ÀÌ°ÍÀº ¸Å¿ì ºñ°üÀûÀÎ °¡Á¤À̸ç, ½ÇÁ¦ ÀÌ·² °æ¿ì´Â »ó´çÈ÷ ´õ ³·´Ù. ±×·¡µµ ½Ã½ºÅÛ¿¡¼­ ÀÌ·± ÀÏÀÌ ¹ß»ýÇÒ °Í °°´Ù¸é (¼Ò½º¸¦ ¼öÁ¤ÇÏ¿©) Ä«¿îÅ͸¦ 32ºñÆ®·Î ¸¸µé¾î¶ó.

¼¶¸ÓŸÀÓ¶§¹®¿¡ ½Ã°è°¡ "µÚ·Î °¡´Â" °ÍÀ» °ÆÁ¤ÇÒÁöµµ ¸ð¸¥´Ù. ±×·¯³ª ¿©±â¼­ »ç¿ëÇÏ´Â ½Ã°£Àº ±¹Á¦ Ç¥ÁؽÃ(UTC), Áï ½Ã°£ÀÌ "Ç×»ó" ¾ÕÀ¸·Î °¡¹Ç·Î ¹®Á¦°¡ ¾ø´Ù. x86±â¹Ý À¯´Ð½º¿¡¼­´Â ÀûÀýÇÑ ¼³Á¤ÀÌ ÇÊ¿äÇÏ´Ù. ¸ÞÀκ¸µå ½Ã°è°¡ UTC¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤ÇØ¾ß ÇÑ´Ù. ±×·¯³ª NTP¸¦ »ç¿ëÇÑ´Ù¸é Àç½ÃÀÛÈÄ Á¶±Ý Áö³ª¸é UTC ½Ã°£¿¡ ¿Ã¹Ù·Î ¸ÂÃá´Ù.

ȯ°æº¯¼ö UNIQUE_ID´Â MIME base64 ÀÎÄÚµù°ú ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î 112ºñÆ® (32ºñÆ® IP ÁÖ¼Ò, 32ºñÆ® pid, 32ºñÆ® ½Ã°£, 16ºñÆ® Ä«¿îÅÍ) ¹­À½À» ¾ËÆĺª [A-Za-z0-9@-]·Î Ç¥ÇöÇÑ´Ù. ½ÇÁ¦ MIME base64 ¾ËÆĺªÀº [A-Za-z0-9+/]ÀÌÁö¸¸ +¿Í /´Â URL¿¡¼­ Ưº°ÇÑ Àǹ̷Π»ç¿ëÇϹǷΠÁ¦¿ÜÇß´Ù. ¸ðµç °ªÀ» ³×Æ®¿÷ ¹ÙÀÌÆ®¼ø¼­·Î ÀÎÄÚµùÇϱ⶧¹®¿¡ ´Ù¸¥ ¹ÙÀÌÆ®¼ø¼­¸¦ »ç¿ëÇÏ´Â ¾ÆÅ°ÅØÃÄ°£¿¡ °ªÀÌ °°´Ù. ½ÇÁ¦ ÀÎÄÚµù ¼ø¼­´Â ½Ã°£, IP ÁÖ¼Ò, pid, Ä«¿îÅÍ ¼ø¼­ÀÌ´Ù. ÀÌ ¼ø¼­¿¡´Â ¾î¶² ¸ñÀûÀÌ ÀÖÁö¸¸, ÇÁ·Î±×·¥Àº ÀÎÄÚµù ¼ø¼­¿¡ ÀÇÁ¸ÇÏ¿© °ªµéÀ» ºÐ¼®ÇÏ¸é ¾ÈµÊÀ» °­Á¶ÇÑ´Ù. ÇÁ·Î±×·¥Àº ÀÎÄÚµùµÈ UNIQUE_ID Àüü¸¦ ÇÑ ´ÜÀ§·Î »ý°¢ÇÏ°í, ´Ù¸¥ UNIQUE_ID¿Í µ¿ÀÏÇÑÁö¸¸ ºñ±³ÇÒ ¼ö ÀÖ´Ù.

¼ø¼­´Â ¾ÕÀ¸·Î ±âÁ¸ÀÇ UNIQUE_ID µ¥ÀÌÅͺ£À̽º¿Í Ãæµ¹À» ¿°·ÁÇÏÁö¾Ê°í ÀÎÄÚµùÀ» º¯°æÇÒ ¼ö ÀÖµµ·Ï °í¾ÈÇß´Ù. »õ·Î¿î ÀÎÄÚµùÀº ù Ç׸ñÀ¸·Î ½Ã°£À» »ç¿ëÇϰųª, °°Àº ¾ËÆĺª°ú ºñÆ® ±æÀ̸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ½Ã°£ÀÌ ±âº»ÀûÀ¸·Î Áõ°¡ÇÏ´Â °ªÀ̹ǷΠŬ·¯½ºÅÍ¿¡ ÀÖ´Â ¸ðµç ÄÄÇ»ÅÍ°¡ ¿äû ¼­ºñ½º¸¦ Áß´ÜÇÏ°í ÀÌÀü ÀÎÄÚµù Çü½ÄÀ» ±×¸¸ »ç¿ëÇϱâÀ§ÇØ ±âÁØ ÃÊ(flag second)¸¸À¸·Î ÃæºÐÇÏ´Ù. ÀÌÈÄ ¿äûÀ» Àç°ÔÇÏ°í »õ·Î¿î ÀÎÄÚµùÀ» ½ÃÀÛÇÒ ¼ö ÀÖ´Ù.

¿ì¸®´Â ÀÌ ¹æ¹ýÀÌ ÀÌ ¹®Á¦¿¡ ´ëÇÏ¿© »ó´ëÀûÀ¸·Î Æ÷Æð¡´ÉÇÑ ÇØ°áÃ¥À̶ó°í ¹Ï´Â´Ù. ÀÌ ¹æ¹ýÀº Windows NT¿Í °°Àº ¸ÖƼ¾²·¹µå ½Ã½ºÅÛÀ¸·Î È®ÀåÇÒ ¼ö ÀÖ°í, ¾ÕÀ¸·Î ¿ëµµ¿¡ µû¶ó È®ÀåÇÒ ¼ö ÀÖ´Ù. ¹Ì·¡¿¡ ÇÊ¿äÇѸ¸Å­ ´õ ±ä ½Äº°ÀÚ¸¦ ¸¸µé ¼ö Àֱ⶧¹®¿¡ »ý¼ºÇÑ ½Äº°ÀÚ´Â ±âº»ÀûÀ¸·Î ¿µ¿øÇÑ ¼ö¸íÀ» °¡Áø´Ù. ±âº»ÀûÀ¸·Î Ŭ·¯½ºÅÍÀÇ ÄÄÇ»ÅÍµé »çÀÌ¿¡ Åë½ÅÀÌ ÇÊ¿ä¾ø°í (ºÎÇÏ°¡ ÀÛÀº NTP µ¿±â¸¸ ÇÊ¿äÇÏ´Ù), httpd ÇÁ·Î¼¼½º »çÀÌ¿¡ Åë½Åµµ ÇÊ¿ä¾ø´Ù (Ä¿³ÎÀÌ ºÎ¿©ÇÏ´Â pid°ªÀÌ ¾Ï¹¬ÀûÀÎ Åë½ÅÀÌ´Ù). ¸Å¿ì ƯÀÌÇÑ »óȲÀ̶ó¸é ÀνÄÀÚ Å©±â¸¦ ÁÙÀÏ ¼ö ÀÖÁö¸¸ ´õ ¸¹Àº Á¤º¸¸¦ °¡Á¤ÇØ¾ß ÇÑ´Ù. (¿¹¸¦ µé¾î, ¾î¶² »çÀÌÆ®¿¡¼­ 32ºñÆ® IP ÁÖ¼Ò ±¸ºÐÀº ºÒÇÊ¿äÇÏ°Ô Å©Áö¸¸, À̸¦ ÁÙÀÌ´Â ¹æ¹ýÀº »óȲ¿¡ µû¶ó ´Ù¸£´Ù.)

°¡´ÉÇÑ ¾ð¾î:  en  |  fr  |  ja  |  ko 

top

Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.