...¸®´ª½º¸¦ Á» ´õ Àç¹ÌÀÖ°Ô! |
By Vinayak Hegde Çѱ۹ø¿ª ÀüÁ¤È£ÀÌ ±ÛÀº Çѱ۹ø¿ªÆÇÀÔ´Ï´Ù. ¿ø¹®Àº ¿©±â¿¡¼ º¼ ¼ö ÀÖ½À´Ï´Ù. |
¸®´ª½ºÀÇ Çà¿îÀÇ ¸¶½ºÄÚÆ®ÀÎ Tux Æë±Ï¿¡ ´ëÇÑ ±ÛÀ» ±â´ëÇß´Ù¸é ½Ç¸ÁÇßÀ» °ÍÀÌ´Ù. ±×·¯³ª ±â´Ù·ÁºÁ¶ó: TUX À¥¼¹ö°¡ ¼º´É¸é¿¡¼ ¹«¾ùÀ» ÇÒ ¼ö ÀÖ´ÂÁö Àо¸é ¸¸Á·ÇÒ °ÍÀÌ´Ù. ¶Ç, ¹«¾ùÀΰ¡ ÇØÅ· ȤÀº °¡Áö°í ³î °ÍÀ» ¹ß°ßÇÏ°Ô µÉÁöµµ ¸ð¸¥´Ù. ÀÌ ±ÛÀº ¸®´ª½º Ä¿³Î¿¡ Æ÷ÇÔµÈ À¥¼¹ö TUX¿¡ ´ëÇÑ ±ÛÀÌ´Ù.
TUXÀ̶õ À̸§Àº 'Threaded linUX webserver'¿¡¼ ³ª¿Ô´Ù. TUXÀº Red Hat¿¡¼ ¸¸µé¾ú°í, Ä¿³Î 2.4¿¡ ±â¹ÝÇÑ´Ù. TUXÀº Ä¿³Î¿¡ Æ÷ÇÔµÈ HTTP ÇÏÀ§½Ã½ºÅÛÀÌ´Ù. ÁüÀÛÇßµíÀÌ TUXÀº ÇöÀç GNU GPL·Î ¹ßÇ¥µÇÀÖ´Ù. °ø°³ ¼ÒÇÁÆ®¿þ¾î ÀüÅë¿¡ µû¶ó ƯÁ¤ ¸ñÀû¿¡ ¾Ë¸Â°Ô ÀÚÀ¯·ÎÀÌ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù. TUXÀ» ¸ñÀû¿¡ ºÎÇÕÇÏ°Ô ¸¸µå´Â ¹æ¹ýÁß Çϳª´Â TUX ¸ðµâÀ» ÀÛ¼ºÇÏ´Â °ÍÀÌ´Ù. TUX ¸ðµâÀº »ç¿ëÀÚ°ø°£(user-space) ȤÀº Ä¿³Î°ø°£(kernel-space) µÑ ¸ðµÎ °¡´ÉÇÏ´Ù. TUXÀº ¸®´ª½º¿¡¼ °í¼º´É À¥¼ºñ½º¸¦ À§ÇØ ¸¸µé¾îÁ³´Ù. ¸®´ª½º°¡ À¥¼¹ö ½ÃÀå¿¡¼ ¸Å¿ì À¯¸íÇϱ⶧¹®¿¡ À̴ ƯÈ÷ Áß¿äÇÏ´Ù.
TUXÀº ¾ÆÆÄÄ¡¿Í °°ÀÌ ±â´ÉÀÌ ¸¹Áö ¾Ê°í, ÇÑ°èµµ ¸¹´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í TUXÀº HTTP/1.1 ¿¬°áÁö¼Ó (keep-alive), ÆÄÀÌÇÁ¶óÀÌ´×(pipelining), CGI ½ÇÇà, ·Î±×, °¡»óÈ£½ºÆ®, ¿©·¯ ¸ðµâ µî ¸¹Àº À¥¼¹ö ±â´ÉÀ» Áö¿øÇÏ´Â HTTP/1.1¿¡ ¿Ïº®È÷ ȣȯµÇ´Â À¥¼¹ö´Ù. ÇöÀç TUXÀº °ø½ÄÀûÀ¸·Î Red Hat Content Accelerator (RHCA)¶ó°í ¾Ë·ÁÁ®ÀÖ´Ù.
¿À´Ã³¯ À¥¿¡¼ Á¦°øµÇ´Â ¸¹Àº ³»¿ëµéÀÌ µ¿ÀûÀ¸·Î »ý¼ºµÇÁö¸¸ Á¤ÀûÀÎ °Íµµ ¸¹´Ù. Á¤ÀûÀÎ À¥ÆäÀÌÁö³ª À̹ÌÁö°¡ ±× ¿¹ÀÌ´Ù. ±×·±µ¥ ¾ÆÆÄÄ¡¿Í °°Àº »ç¿ëÀÚ°ø°£ À¥¼¹ö°¡ ÀÌ·± Á¤ÀûÀÎ ³»¿ëÀ» ¼ºñ½ºÇϱâ À§Çؼ´Â ¿©·¯ ½Ã½ºÅÛÈ£ÃâÀ» »ç¿ëÇؾßÇϹǷΠºÎ´ãÀÌ µÈ´Ù. ÇÁ·Î±×·¥ÀÌ Ä¿³Î°ø°£°ú »ç¿ëÀÚ°ø°£ »çÀÌ¿¡¼ ÀÚÁÖ ¹®¸Æº¯È¯(context switch)À» ÇÏ¸é ¼º´ÉÀÌ »ó´çÈ÷ ¶³¾îÁø´Ù. ÀÌ °æ¿ì TUXÀÌ ÇØ°áÃ¥ÀÌ´Ù. TUXÀº Ä¿³Î°ú °°ÀÌ ÄÄÆÄÀϵǰųª ¸ðµâ·Î ¸¸µé¾î µ¿ÀûÀ¸·Î ÀоîµéÀÏ ¼ö ÀÖ´Ù. ù¹ø° ¹æ¹ýÀº À¥¼ºñ½º Àü¿ë ¼¹ö¿¡ ÀûÇÕÇÏ´Ù. ¸ðµâ·Î ÄÄÆÄÀÏÇÏ¸é µ¿ÀûÀ¸·Î Áý¾î³Ö°í »©¼, ¼ºñ½º¸¦ ½ÃÀÛÇÏ°í Áß´ÜÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹æ¹ýÀº ¿©·¯ »óȲ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
TUXÀº ±âº»ÀûÀ¸·Î Á¤ÀûÀÎ ³»¿ëÀ» ¼ºñ½ºÇϱâÀ§ÇØ »ç¿ëÇÑ´Ù. µ¿ÀûÀÎ ³»¿ëÀ» »ý¼ºÇÏ°í ¼ºñ½ºÇÏ´Â ÀÏÀº ¾ÆÆÄÄ¡¿Í °°Àº µÞ´Ü(back-end) À¥¼¹ö¿¡°Ô ¸º±ä´Ù. ÇöÀç »õ·Î¿î TUX ¹öÀüÀº µ¿ÀûÀÎ ³»¿ëÀ» ij½¬ÇÒ ¼ö ÀÖ´Ù. TUX ¸ðµâÀ» °¡Áö°í ÆäÀÌÁö ij½¬¸¦ »ç¿ëÇÏ¿© ÀúÀåµÇ´Â "°´Ã¼"¸¦ ¸¸µé ¼ö ÀÖ´Ù. µ¿ÀûÀÎ ÀÚ·á¿¡ ´ëÇÑ ¿äû¿¡ ÀÀ´äÇϱâÀ§ÇØ TUX ¸ðµâÀº µ¿ÀûÀ¸·Î »ý¼ºµÈ ÀÚ·á¿Í ÀÌ¹Ì »ý¼ºÇÑ Ä³½¬µÈ °´Ã¼¸¦ ¼¯¾î¼ º¸³¾ ¼ö ÀÖ´Ù. ±×·¡¼ ¿äûÀÇ ´ëºÎºÐÀÎ ´Ü¼øÇÑ "³×Æ®¿÷-º¹»ç" ÀÛ¾÷Àº TUX°¡ È¿À²ÀûÀ¸·Î ó¸®ÇÑ´Ù. »õ·Î¿î TUX ¹öÀüÀº TUX 1.0ÀÇ Àӽà ¹öÆÛ´ë½Å º¹»ç¾ø´Â ºí·Ï ÀÔÃâ·Â(zero copy block IO)À» »ç¿ëÇÑ´Ù. ¶Ç, TUXÀÇ °¡»óÈ£½ºÆ® Áö¿øÀÌ È®ÀåµÇ¾î ¼ºñ½ºÇÒ ¼ö ÀÖ´Â °¡»óÈ£½ºÆ® °³¼ö´Â µð½ºÅ© °ø°£°ú RAM¶§¹®¿¡¸¸ Á¦ÇѵȴÙ.
ÀÌÁ¦ TUXÀÌ ¹«¾ùÀ» ÇÒ ¼ö ÀÖ´ÂÁö ¾Ë¾Ò´Ù. ÀÌÁ¦ TUXÀ» ¼³Ä¡ÇÏ°í ¼³Á¤Çغ¸ÀÚ. ´ÙÀ½¿¡ ³ª¿À´Â ¸ðµç ³»¿ëÀº Red Hat 7.2ÀÇ TUX-2.1.0-2¿¡¼ Å×½ºÆ®µÇ¾ú´Ù. ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ°í Àͼ÷Çϱ⶧¹®¿¡ »ç¿ëÀÚ°ø°£ À¥µ¥¸óÀ¸·Î ¾ÆÆÄÄ¡¸¦ »ç¿ëÇß´Ù.
´ÙÀ½ ¸í·É¾î·Î tuxÀÌ ¼³Ä¡µÇÀÖ´ÂÁö ¾Ë¾ÆºÁ¶ó :-
# rpm -q tux
¾Æ·¡¿Í ºñ½ÁÇÑ ¹®±¸Áß Çϳª°¡ Ãâ·ÂµÉ °ÍÀÌ´Ù :
# rpm -ivh tux-2.1.0-2.i386.rpm
# patch -p0 < tux2-full-2.4.10 # make oldconfig (¿©±â¼ tuxÀ» È°¼ºÈÇÏ°í, Ä¿³ÎÀ» ÀçÄÄÆÄÀÏÇÏ¿© ¼³Ä¡ÇÑ´Ù)»ç¿ëÀÚ°ø°£ µµ±¸¸¦ ¼³Ä¡ÇÑ´Ù
# tar xzvf tux-2.1.0.tar.gz # cd tux-2.0.25 # make # make install
µð·ºÅ丮 /var/www/htmlÀ» (¿øÇÑ´Ù¸é ´Ù¸¥ µð·ºÅ丮¸¦) ¸¸µé°í, /etc/sysconfig/tux¿¡¼ DOCROOT °ªÀ» ¼öÁ¤ÇÏ¿© ÀÌ µð·ºÅ丮¸¦ TUXÀÇ root µð·ºÅ丮·Î ¸¸µç´Ù. ¶Ç CGI ½ºÅ©¸³Æ®°¡ ÀúÀåµÉ °æ·Î¸¦ CGIROOT·Î ¼³Á¤ÇÑ´Ù. TUXTHREADS º¯¼öµµ ÀûÀýÇÑ ¼ö·Î ¼³Á¤ÇÑ´Ù. root µð·ºÅ丮¿¡ index.htmlÀ» ¸¸µç´Ù. ÀÌ ÆÄÀÏÀº ³ªÁß¿¡ Å×½ºÆ®¿ëÀ¸·Î »ç¿ëÇÑ´Ù.
(°ü¸®ÀÚ ±ÇÇÑÀ¸·Î) ´ÙÀ½ ¸í·É¾î´Â TUXÀ» ½ÃÀÛÇÑ´Ù.
# service tux start (Red Hat ½Ã½ºÅÛÀÇ °æ¿ì) # ./tux.init start (Red Hat ½Ã½ºÅÛÀÌ ¾Æ´Ñ °æ¿ì) # lsmod Module size Used by tux 75568 0 .... ....ÀÌÁ¦ ºê¶ó¿ìÀú·Î localhost¿¡ Á¢¼ÓÇÏ¸é ¾Õ¿¡¼ ¸¸µç index.html ÆäÀÌÁö°¡ º¸ÀÏ °ÍÀÌ´Ù. ¾Æ´Ï¶ó¸é ¹«¾ùÀΰ¡ À߸øµÇ¾ú°Å³ª ¼³Á¤ÀÌ ¿Ã¹Ù¸£Áö ¾ÊÀº °æ¿ì´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº 8´Ü°è¸¦ Âü°íÇ϶ó.
# lynx localhost
TUXÀº ±âº»ÀûÀ¸·Î ·Î±×¸¦ ³²±âÁö¾Ê´Â´Ù. ·Î±×¿Í referrer ·Î±×¸¦ ³²±â·Á¸é ¾Æ·¡ ¸í·É¾î¸¦ ½ÇÇàÇÑ´Ù.
# echo 1 > /proc/sys/net/tux/logging # echo 1 > /proc/sys/net/tux/referer_logging # cat /proc/sys/net/tux/logfile /var/log/tux (ÀÌ°ÍÀÌ ±âº» ·Î±×ÆÄÀÏ)
¸Å¿äû¸¶´Ù TUXÀº ¿äûÀÚÀÇ ÁÖ¼Ò, ÃÖ¼ÒÇÑ ÃÊ´ÜÀ§±îÁö Á¤È®ÇÑ ³¯Â¥¿Í ½Ã°£, ¿äûÇÑ ³»¿ë, Àü¼ÛÇÑ ÆÄÀÏ Å©±â, ¸¶Áö¸·À¸·Î ¿äûÀÇ »óŸ¦ ·Î±×¿¡ ³²±ä´Ù. TUXÀÇ ·Î±×ÆÄÀÏÀº (À§¿¡¼ º») /var/log/tux¿¡ ÀÌÁøÇü½ÄÀ¸·Î ÀúÀåµÈ´Ù. ÀÌÁøÇü½ÄÀÇ ·Î±×ÆÄÀÏÀº Ç¥ÁØ ASCII ·Î±×ÆÄÀϺ¸´Ù ¾à 50% Á¤µµ ÀÛ´Ù. ·Î±×ÆÄÀÏÀ» º¸·Á¸é ´ÙÀ½ ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù
# tux2w3c /var/log/tux 127.0.0.1 - - Wed Nov 20 00:22:24 2002 "GET /manual/sections.html HTTP/1.1" - 5523 200 127.0.0.1 - - Thu Nov 21 01:36:55 2002 "GET / HTTP/1.0" - 2890 200 127.0.0.1 - - Thu Nov 21 01:37:20 2002 "GET /manual/index.html HTTP/1.0" - 5557 200 127.0.0.1 - - Thu Nov 21 01:37:24 2002 "GET /manual/mod/index-bytype.html HTTP/1.0" - 6186 200tux2w3c ÇÁ·Î±×·¥Àº ÀÌÁø·Î±×ÆÄÀÏÀ» W3C Ç¥ÁØ À¥¼¹ö ·Î±×ÆÄÀÏ·Î º¯È¯ÇÑ´Ù.
ÀÌ¹Ì TUXÀÌ ÀÀ´ä½Ã°£À» ÁÙÀδٴ °ÍÀ» ¾È´Ù. Gzip ¾ÐÃàÀ» »ç¿ëÇÏ¿© ´Ù¿î·Îµå ½Ã°£À» ÁÙÀÌ°í ³×Æ®¿÷ Àü¿ë·®À» ÁÙÀÏ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÌ ±â´ÉÀ» »ç¿ëÇÏ·Á¸é Ŭ¶óÀ̾ðÆ®°¡ Gzip ¾ÐÃàÀ» Áö¿øÇØ¾ß ÇÑ´Ù. TUXÀº ±âº»ÀûÀ¸·Î ÀÚ·á ¾ÐÃàÀ» ÇÏÁö¾Ê´Â´Ù. ÀڷḦ ¾ÐÃàÇÏ·Á¸é ´ÙÀ½°ú °°´Ù:
# echo 1 > /proc/sys/net/tux/compression½ÃÀÛÇÒ ¶§¸¶´Ù Àû¿ëÇÏ·Á¸é ´ÙÀ½ ÁÙÀ» /etc/sysctl.conf¿¡ Ãß°¡ÇÑ´Ù
net.tux.compression=1¶Ç, ¼ºñ½ºÇÏ·Á´Â ÆäÀÌÁö¿Í °°Àº µð·ºÅ丮¿¡ È®ÀåÀÚ°¡ .gzÀÎ Gzip ÆÄÀÏÀÌ ÀÖ¾î¾ß ÇÑ´Ù.
¾ÆÁ÷ ¼³Á¤ÀÌ ¾È³¡³µ´Ù. ¸î¸î Èï¹Ì·Î¿î ±â´ÉµéÀÌ ³²¾ÆÀÖ´Ù. (ÀϺδ RHCA v2.2¿¡¼¸¸ °¡´ÉÇÏ´Ù.)
ÀÌ¹Ì ¸»ÇßµíÀÌ TUXÀ» Æ÷Æ® 80À» (±âº» http Æ÷Æ®) »ç¿ëÇÏ´Â ¾Õ´Ü(front-end) À¥¼¹ö·Î »ç¿ëÇÏ°í, Æ÷Æ® 8080¿¡ TUXÀÌ ÀÌÇØÇÏÁö ¸øÇÏ´Â ¿äûÀ» (º¸Åë PHP ÆäÀÌÁö¿Í °°ÀÌ µ¿ÀûÀ¸·Î »ý¼ºÇÏ´Â ³»¿ë) ó¸®ÇÒ µÞ´Ü À¥¼¹ö¸¦ (¿©±â¼´Â ¾ÆÆÄÄ¡¸¦ ¿¹·Î µç´Ù) »ç¿ëÇϱæ ÃßõÇÑ´Ù. ÀÌ °æ¿ì ¾ÆÆÄÄ¡ À¥¼¹öÀÇ httpd.conf ÆÄÀÏÀ» ¼öÁ¤ÇØ¾ß ÇÑ´Ù.
´ÙÀ½ ÁÙÀ» Port 80 ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù Port 8080 (¾ÆÆÄÄ¡°¡ ±â´Ù¸± Æ÷Æ®)¶Ç, »ç¿ëÀÚ°¡ TUXÀ» ÇÇÇØ Á÷Á¢ ¾ÆÆÄÄ¡¿¡ Á¢±ÙÇÏ´Â °ÍÀ» ¸·À¸·Á¸é ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù. º¸¾È»ó ÀÌÀ¯·Î ÇÊ¿äÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½ ÁÙÀ» BindAddress * ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù BindAddress 127.0.0.1 (loopback ÁÖ¼Ò)¸¶Áö¸·À¸·Î httpd¸¦ Àç½ÃÀÛÇÑ´Ù
# service httpd restart
´ÙÀ½ ¸í·É¾î·Î TUXÀ» Áß´ÜÇÏ°í Àç½ÃÀÛÇÒ ¼ö ÀÖ´Ù:
# service tux stop (Red Hat ½Ã½ºÅÛÀÇ °æ¿ì) ȤÀº # ./tux-init stop (Red Hat ½Ã½ºÅÛÀÌ ¾Æ´Ñ °æ¿ì) # service tux restart ȤÀº # ./tux-init restartµð¹ö±ëÀ» À§ÇØ /usr/share/doc/tux-version/ µð·ºÅ丮¿¡ ÀÖ´Â gettuxconfig ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. SMP ½Ã½ºÅÛÀ» »ç¿ëÇÑ´Ù¸é ¸ðµç ³×Æ®¿÷ ÀÎÅÍÆäÀ̽º°¡ checkbindings ½ºÅ©¸³Æ®¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤µÇÀÖ´ÂÁö È®ÀÎÇ϶ó. ÀÌ ÆÄÀϵµ °°Àº µð·ºÅ丮¿¡ ÀÖ´Ù.
ÀÌ¹Ì ¸»ÇßµíÀÌ TUXÀº µ¿ÀÛÀÇ ÀϺθ¦ »ç¿ëÀÚ°ø°£ ´ë½Å Ä¿³Î°ø°£¿¡ µÎ¾î¼ À¥¼¹öÀÇ È¿À²¼ºÀ» ³ôÀδÙ. ±×·¡¼ ´õ ³ªÀº ¼º´ÉÀ» ¾ò°í, ¼¹ö ÀÚ¿øÀ» ´õ Àß È°¿ëÇÏ°Ô µÈ´Ù. TUXÀº ¸¹Àº ºÎºÐÀ» ¼³Á¤ÇÒ ¼ö ÀÖ°í, Èï¹Ì·Î¿î ±â´ÉÀÌ ¸¹´Ù. ÀÌ ±ÛÀÌ Àç¹ÌÀÖ¾ú±æ ¹Ù¶õ´Ù. Áñ°Å¿î ÇØÅ·!!