Apache¿¡¼­ Tomcat »ç¿ëÇϱâ

 

¿ä¾à

TomcatÀº Java Servlet 2.2 ¹× JSP 1.1À» ±¸ÇöÇÏ¿© ¾ÆÆÄÄ¡ ¹× ¿©·¯ À¥½á¹ö¿¡¼­ ÀÌ¿ëÇÏ°íÀÚ ÇÏ´Â ÇÁ·ÎÁ§Æ®ÀÌ´Ù. ÀÌ ±Û¿¡¼­´Â ¾ÆÆÄÄ¡ À¥½á¹ö¿¡¼­ Tomcat 3.1À» »ç¿ëÇϱâ À§ÇÑ °úÁ¤À» ¼³¸íÇÑ´Ù.

¼Ò°³

TomcatÀº À¥½á¹ö¿¡¼­ ÀÚ¹Ù ½áºí¸´°ú JSP¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á´Â ÇÁ·ÎÁ§Æ®ÀÌ´Ù. »ç½Ç TomcatÀº Jakarta ÇÁ·ÎÁ§Æ®¿¡ ¼ÓÇÑ ÀÛÀº ÇÁ·ÎÁ§Æ®ÀÌ°í, Jakarta´Â ÀÚ¹Ù ±â¹ÝÀÇ º¸´Ù Æ÷°ýÀûÀÎ Ç÷§ÆûÀ» Á¦°øÇÏ´Â °ÍÀ» ¸ñÇ¥·Î ÁøÇàÁßÀÌ´Ù.

ÇöÀç Tomcat ¿Ü¿¡ ¾ÆÆÄÄ¡ À¥½á¹ö¿¡¼­ ÀÚ¹Ù ½áºí¸´À» ¾²´Â ¹æ¹ý Áß °¡Àå ³Î¸® ¾²ÀÌ´Â °ÍÀº JServÀÏ °ÍÀÌ´Ù. ÇÏÁö¸¸ JServ´Â ¹Ýµå½Ã JSDK 2.0À» »ç¿ëÇØ¾ß ÇÑ´Ù´Â Á¦¾àÀÌ ÀÖ°í, JSP¸¦ ¾²±â À§Çؼ­´Â GNUJSP¿Í °°Àº º°°³ÀÇ ÇÁ·Î±×·¥À» ÇÊ¿ä·Î ÇÑ´Ù. ¹Ý¸é TomcatÀº Java Servlet 2.2¿Í JSP 1.1À» µ¿½Ã¿¡ Áö¿øÇÏ°í ÀÖÀ¸¸ç, JServÀÇ °³¹ßÀÚµéÀº ¹°·Ð SunÀ̳ª IBM°ú °°Àº ±â¾÷¿¡¼­µµ Âü¿©ÇÏ°í ÀÖÀ¸¹Ç·Î ¾ÕÀ¸·Î´Â JServº¸´Ù´Â TomcatÀ» ÇʵηΠÇÑ Jakarta°¡ ´õ¿í »¡¸® ¼ºÀåÇÒ °ÍÀÌ´Ù.

ÇÊ¿äÇÑ °Í

¾ÆÆÄÄ¡¿¡¼­ TomcatÀ» »ç¿ëÇÏ·Á¸é ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÇÊ¿äÇÏ´Ù.

ÀÌ Áß¿¡¼­ mod_jserv.so´Â ¹Ì¸® ÄÄÆÄÀÏµÈ °Í(ÀÎÅÚ ¸®´ª½º¿ë)À» ±×´ë·Î ¹Þ¾Æ ÀÌ¿ëÇصµ µÇ°í, Á÷Á¢ ÄÄÆÄÀÏÇصµ µÈ´Ù. Á÷Á¢ ÄÄÆÄÀÏÇÏ·Á¸é Tomcat source¸¦ ¹Þ¾Æ¼­ ¾Æ¹« µð·ºÅ丮¿¡¼­³ª ¾ÐÃàÀ» Ç®°í, jakarta-tomcat/src/native/apache/jserv/·Î À̵¿ÇÏ¿© ´ÙÀ½ ¸í·ÉÀ» ¼öÇàÇÏ¸é µÈ´Ù.
$ apxs -c -o mod_jserv.so *.c
¸¸ÀÏ apxs¸¦ ãÁö ¸øÇÑ´Ù¸é ¾ÆÆÄÄ¡¸¦ ¼³Ä¡ÇÑ °÷ÀÇ binµð·ºÅ丮¿¡ ÀÖÀ¸¹Ç·Î °æ·Î¸¦ ¸ðµÎ ½á ÁÖ¾î ½ÇÇà½ÃÅ°¸é µÈ´Ù.

¾ÆÆÄÄ¡´Â DSO¸¦ Áö¿øÇϵµ·Ï ÄÄÆÄÀϵǾî¾ß mod_jserv.soÀ» µ¿ÀûÀ¸·Î ·ÎµåÇÒ ¼ö ÀÖ´Ù. ¹èÆ÷º»¿¡ Æ÷ÇÔµÈ °ÍÀ̶ó¸é ´ëºÎºÐ DSO¸¦ Áö¿øÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î ¹®Á¦°¡ ¾øÀ¸³ª Á÷Á¢ ÄÄÆÄÀÏÀ» ÇÏ´Â °æ¿ì¶ó¸é configure ½ÇÇà½Ã¿¡ ¹Ýµå½Ã --enable-module=so ¿É¼ÇÀ» ÁÖ¾î¾ß ÇÑ´Ù.

¼³Ä¡

TomcatÀ» »ç¿ëÇÏ·Á¸é ¸ÕÀú ¾ÆÆÄÄ¡°¡ Á¦´ë·Î ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ ±Û¿¡¼­´Â ¾ÆÆÄÄ¡°¡ /usr/local/apache¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÏ°Ú´Ù.

TomcatÀº ÀÚ¹Ù·Î ÀÛ¼ºµÇ¾î À־ ÀÌ¹Ì ÄÄÆÄÀÏ µÈ »óÅ·Π¹èÆ÷µÇ¹Ç·Î µû·Î ÄÄÆÄÀÏ °úÁ¤À» °ÅÄ¡Áö ¾Ê¾Æµµ µÈ´Ù. Àû´çÇÑ °÷¿¡ jakarta-tomcat.tar.gzÀÇ ¾ÐÃàÀ» Ǫ´Â °Í¸¸À¸·Î ¼³Ä¡°¡ ³¡³­´Ù. /usr/local¿¡¼­ ¾ÐÃàÀ» Ç®¾ú´Ù¸é /usr/local/jakarta-tomcatÀ̶õ µð·ºÅ丮°¡ »ý°åÀ» °ÍÀÌ´Ù.

Tomcat°ú ¾ÆÆÄÄ¡°¡ ¼­·Î Åë½ÅÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÖ´Â ¸ðµâÀÌ mod_jserv.soÀÌ´Ù. ÀÌ ÆÄÀÏÀ» ¾ÆÆÄÄ¡ÀÇ µ¿Àû ¸ðµâÀ» ÀúÀåÇÏ´Â µð·ºÅ丮·Î º¹»çÇÏ°í ¾ÆÆÄÄ¡¸¦ ´Ù½Ã ½ÇÇà½ÃÅ°¸é ÀÚµ¿À¸·Î ¸ðµâÀ» ÀоîµéÀÌ°Ô µÈ´Ù. µ¿Àû ¸ðµâÀ» ÀúÀåÇÏ´Â µð·ºÅ丮´Â ¾ÆÆÄÄ¡°¡ ¼³Ä¡µÈ °÷ ¹Ø¿¡ ÀÖ´Â libexecÀ̶õ µð·ºÅ丮ÀÌ´Ù. /usr/local/apache¿¡ ¾ÆÆÄÄ¡¸¦ ¼³Ä¡Çß´Ù¸é /usr/local/apache/libexecÀÌ ¿©±â¿¡ ÇØ´çÇÑ´Ù. ¹èÆ÷º»¿¡ Æ÷ÇÔµÈ °ÍÀº ´Ù¸¥ µð·ºÅ丮¸¦ »ç¿ëÇϱ⵵ ÇϹǷΠ¾Ë¸ÂÀº µð·ºÅ丮¸¦ ã¾Æ¾ß ÇÑ´Ù. /usr/lib/apache°¡ ÀÖ´Ù¸é ÀÌ°÷À» ÀÌ¿ëÇÏ°í, ±×·¸Áö ¾Ê´Ù¸é mod_*.so ÇüÅÂÀÇ ÆÄÀϵéÀÌ ÀÖ´Â °÷À» ãµµ·Ï ÇÑ´Ù.

ÀÌÁ¦ ¼³Á¤ ÆÄÀÏÀ» Ãß°¡ÇÒ Â÷·ÊÀÌ´Ù. TomcatÀÇ ¼³Á¤ ÆÄÀÏÀº TomcatÀ» ¼³Ä¡ÇÑ °÷ÀÇ conf µð·ºÅ丮 ¾È¿¡ ÀÖ´Ù. tomcat.conf´Â ¾ÆÆÄÄ¡¸¦ À§ÇÑ °ÍÀÌ°í, server.xmlÀÌ TomcatÀ» À§ÇÑ °ÍÀÌ´Ù. tomcat.conf´Â ¾ÆÆÄÄ¡ÀÇ httpd.confÀÇ ¸Ç ³¡¿¡¼­ ´ÙÀ½°ú °°ÀÌ ºÒ·¯µéÀÌ¸é µÈ´Ù.

Include /usr/local/jakarta/jakarta-tomcat/conf/tomcat.conf

Tomcat°ú ¾ÆÆÄÄ¡ÀÇ Åë½ÅÀ» À§Çؼ­´Â º°°³ÀÇ Æ÷Æ®°¡ ÇÊ¿äÇѵ¥, ÀÌ Æ÷Æ® ¹øÈ£´Â tomcat.conf¿Í server.xml ¾çÂÊ¿¡ ¸í½ÃÇØ ÁÖ¾î¾ß ÇÑ´Ù. tomcat.conf¿¡´Â

ApJServDefaultPort 8007
°ú °°ÀÌ µÇ¾î ÀÖ°í, server.xml¿¡´Â
<Parameter name="handler" value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter name="port" value="8007"/>
°ú °°ÀÌ µÇ¾î ÀÖ´Ù. ¿©±â¼­ 8007ÀÌ Æ÷Æ® ¹øÈ£À̸ç, ÀÌ °ªÀ» º¯°æÇÒ °æ¿ì µÎ ÆÄÀÏÀÇ °ªÀÌ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. ÀÌ ¿Ü¿¡ server.xml¿¡´Â Æ÷Æ® ¹øÈ£¸¦ Àû´Â °÷ÀÌ Çϳª ´õ ÀÖ´Ù.
<Parameter name="handler" value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter name="port" value="8080"/>
ÀÚ¼¼È÷ º¸¸é ù ÁÙÀÇ value ºÎºÐÀÌ ´Ù¸¥ °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ Æ÷Æ®´Â TomcatÀÌ ÀÚüÀûÀ¸·Î °®°í ÀÖ´Â HTTP ½á¹ö¸¦ À§ÇÑ °ÍÀÌ´Ù. ÀÌ °ªÀº ¾Õ¿¡¼­ Á¤ÇØÁØ Æ÷Æ® ¹øÈ£´Â ¹°·Ð ¾ÆÆÄÄ¡ÀÇ Æ÷Æ® ¹øÈ£¿Íµµ ´Þ¶ó¾ß ÇÑ´Ù.

½ÃÇè

¸ÕÀú ¾ÆÆÄÄ¡¸¦ ´Ù½Ã ½ÇÇà½ÃÅ°°í, ¾ÆÆÄÄ¡ ÀÚüÀÇ µ¿ÀÛ¿¡ ¾Æ¹« ¹®Á¦°¡ ¾ø´Â°¡¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù. ¾ÆÆÄÄ¡°¡ ¹®Á¦¾øÀÌ ½ÇÇàµÈ´Ù¸é TomcatÀ» ½ÇÇà½Ãų ¼ö ÀÖ´Ù. TomcatÀ» ¼³Ä¡ÇÑ °÷ÀÇ bin µð·ºÅ丮¿¡ º¸¸é startup.shÀ̶õ ÆÄÀÏÀÌ Àִµ¥, ÀÌ°ÍÀÌ TomcatÀ» ½ÇÇà½ÃÅ°´Â ÆÄÀÏÀÌ´Ù. ±× Àü¿¡ µÎ °¡Áö ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇØ ÁÖ¾î¾ß Çϴµ¥, Çϳª´Â TomcatÀÌ ¼³Ä¡µÈ °÷À» °¡¸®Å°´Â TOMCAT_HOMEÀÌ°í, ¶Ç Çϳª´Â ÀÚ¹Ù°¡ ¼³Ä¡µÈ °÷À» °¡¸®Å°´Â JAVA_HOMEÀÌ´Ù. TomcatÀ» /usr/local/jakarta¿¡¼­ ¾ÐÃàÀ» Ç®¾ú´Ù¸é ±× ¹Ø¿¡ »ý±ä jakarta-tomcatÀÌ TOMCAT_HOMEÀÌ µÈ´Ù. JAVA_HOMEÀº ÀÚ¹Ù ½ÇÇà ȯ°æÀÌ ¼³Ä¡µÈ µð·ºÅ丮À̸ç, ½ÇÇà ÆÄÀÏÀÌ /usr/local/jdk/bin/java¶ó¸é /usr/local/jdk°¡ ±× °ªÀÌ µÈ´Ù.

¸ðµç ¼³Á¤ÀÌ ³¡³ª°í startup.shÀ» ½ÇÇà½ÃÄ×´Ù¸é À¥ºê¶ó¿ìÁ®·Î ´ÙÀ½ URLÀ» ¹æ¹®Çغ¸¶ó.

¹°·Ð <hostname>Àº ¾Ë¸ÂÀº À̸§À¸·Î ¹Ù²ã ÁÖ¾î¾ß ÇÏ°í, ¸¸ÀÏ À¥½á¹ö¸¦ 80¹ø Æ÷Æ®°¡ ¾Æ´Ñ ´Ù¸¥ Æ÷Æ®¿¡¼­ ½ÇÇà½ÃÄ×´Ù¸é Æ÷Æ® ¹øÈ£µµ ¸í½ÃÇØ ÁÖ¾î¾ß ÇÑ´Ù. Tomcat¿¡¼­ ÀÚüÀûÀ¸·Î Á¦°øÇÏ´Â HTTP ½á¹ö¸¦ ÀÌ¿ëÇÏ¿© Å×½ºÆ®Çغ¸·Á¸é 8080¹ø Æ÷Æ®·Î Á¢¼ÓÇغ¸¸é µÈ´Ù. ¿©·¯ ¿¹Á¦µéÀ» ½ÇÇàÇØ º¼ ¼ö ÀÖ´Â È­¸éÀÌ ³ª¿À°í, °¢ ¿¹Á¦µéÀÌ ¹®Á¦¾øÀÌ ½ÇÇàµÈ´Ù¸é TomcatÀÌ Á¦´ë·Î µ¿ÀÛÇÏ°í ÀÖ´Â °ÍÀÌ´Ù.

°¡»ó È£½ºÆ® ¼³Á¤

Çö ¹öÁ¯ÀÇ TomcatÀº °¡»ó È£½ºÆ® ±â´ÉÀ» Á¦°øÇÏÁö ¾Ê´Â´Ù. ¾ÆÆÄÄ¡ÀÇ °¡»ó È£½ºÆ® ±â´ÉÀ» ÀÌ¿ëÇؼ­ aa.webdox.co.kr°ú bb.webdox.co.krÀ» ¾²°í ÀÖ´Ù°í Çصµ TomcatÀº http://aa.webdox.co.kr/hello.jsp¿Í http://bb.webdox.co.kr/hello.jsp¸¦ ¸ðµÎ °°Àº ÆÄÀÏ·Î °£ÁÖÇÑ´Ù. À̸¦ ±Øº¹ÇÏ´Â ¹æ¹ýÀº °¢ °¡»ó È£½ºÆ®¸¶´Ù º°°³ÀÇ TomcatÀ» ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. ±×·± ´ÙÀ½ ¾ÆÆÄÄ¡¿¡¼­ °¡»ó È£½ºÆ®¿¡ µû¶ó ´Ù¸¥ TomcatÀ¸·Î Á¢¼ÓÇÏ°Ô ÇÏ¸é ¸¶Ä¡ TomcatÀÌ °¡»ó È£½ºÆ®¸¦ Áö¿øÇÏ´Â °Í°ú °°Àº È¿°ú¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù. ¹°·Ð ÀÌ ¹æ¹ýÀº °¡»ó È£½ºÆ® ¼ö ¸¸Å­ÀÇ process°¡ ÇÊ¿äÇϹǷΠ±× ¼ö°¡ ³Ê¹« ¸¹´Ù¸é ¹®Á¦°¡ µÇ°ÚÁö¸¸ È£½ºÆà ¾÷ü°¡ ¾Æ´Ï¶ó¸é ±×·¸°Ô ¸¹Àº ¼öÀÇ °¡»ó È£½ºÆ®°¡ ÇÊ¿äÇÒ ÀÏÀº ¾øÀ¸¹Ç·Î ´ëºÎºÐÀÇ °æ¿ì ¹«³­ÇÒ °ÍÀÌ´Ù. ±×¸®°í Tomcat °³¹ßÀڵ鵵 ÇϳªÀÇ Tomcat process¿¡¼­ ¿©·¯ °¡»ó È£½ºÆ®¸¦ Áö¿øÇÏ´Â °ÍÀ» °í·ÁÇÏ°í ÀÖÀ¸¹Ç·Î Á¶¸¸°£ ÀÌ ±â´ÉÀÌ Tomcat¿¡ Æ÷ÇԵǸ®¶ó »ý°¢ÇÑ´Ù.

¿ì¼± ¾ÆÆÄÄ¡¿¡¼­ °¡»ó È£½ºÆ® ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ­´Â °¡»ó È£½ºÆ®ÀÇ ¼ö¸¸Å­ TomcatÀ» ÀνºÅçÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, aa.webdox.co.kr°ú bb.webdox.co.krdÀÇ µÎ °¡»ó È£½ºÆ®¸¦ À§ÇØ /usr/local/tomcats µð·ºÅ丮 ¾Æ·¡¿¡ µÎ °³ÀÇ TomcatÀ» ¾ÐÃà ÇØÁ¦ÇÏ°í µð·ºÅ丮 À̸§ Ãæµ¹À» ¸·±â À§ÇØ tomcat_aa, tomcat_bb½ÄÀ¸·Î À̸§À» ¹Ù²Û´Ù. ÀÌÁ¦, aa.webdox.co.krÀ» À§Çؼ­´Â /usr/local/tomcats/tomcat_aa¸¦, bb.webdox.co.krÀ» À§Çؼ­´Â /usr/local/tomcats/tomcat_bb¸¦ »ç¿ëÇϵµ·Ï ÇÏ°í Çϳª¾¿ ¼³Á¤ÇØ º¸ÀÚ.

°¢°¢ÀÇ Tomcat¿¡´Â conf µð·ºÅ丮 ¹Ø¿¡ tomcat.conf ÆÄÀÏÀÌ ÀÖ´Ù. °³º° È£½ºÆ® ¸¶´Ù tomcat.conf¸¦ ¼³Á¤ÇÒ ÇÊ¿ä°¡ ¾ø°í ¿ÀÁ÷ Çϳª¸¸ ¼³Á¤ÇÏ¸é µÈ´Ù. ¿©±â¼­´Â tomcat_aa/conf/tomcat.conf ¸¦ ¼³Á¤Çϱâ·Î ÇÏÀÚ. ÀØÁö¸»¾Æ¾ß ÇÒ °ÍÀº ¼³Á¤Çϱâ·Î °áÁ¤ÇÑ ÇϳªÀÇ tomcat.conf ÆÄÀÏÀ» ²À ¾ÆÆÄÄ¡ ½á¹öÀÇ httpd.conf ÆÄÀÏ¿¡¼­ ºÒ·¯µéÀÌ´Â °ÍÀÌ´Ù. ´ÙÀ½Ã³·³ ÇÑ´Ù.

Include /usr/local/tomcats/tomcat_aa/conf/tomcat.conf

ÀÌÁ¦ tomcat_aa/conf/tomcat.conf¿¡ °¡»ó È£½ºÆ® ȯ°æÀ» ´ÙÀ½Ã³·³ ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

###############################################################################
#                    Apache-Tomcat °¡»ó È£½ºÆ® ¼³Á¤ ÆÄÀÏ                        #
###############################################################################

LoadModule jserv_module libexec/mod_jserv.so

<IfModule mod_jserv.c>
ApJServManual on
ApJServDefaultProtocol ajpv12
ApJServSecretKey DISABLED
ApJServMountCopy on
ApJServLogLevel notice

### Change if you run tomcat on a different host
#ApJServDefaultHost localhost
#ApJServDefaultPort 8007


### Virual Hosts
NameVirtualHost 211.53.212.40

<VirtualHost 211.53.212.40>
ServerName aa.webdox.co.kr
DocumentRoot /home/httpd/aa/html

ApJServDefaultPort 8007
ApJServMount default ajpv12://localhost:8007/root
ApJServMount /servlet ajpv12://localhost:8007/servlet
AddType text/jsp .jsp
AddHandler jserv-servlet .jsp
</VirtualHost>

<VirtualHost 211.53.212.40>
ServerName bb.webdox.co.kr
DocumentRoot /home/httpd/bb/html

ApJServDefaultPort 8008
ApJServMount default ajpv12://localhost:8008/root
ApJServMount /servlet ajpv12://localhost:8008/servlet
AddType text/jsp .jsp
AddHandler jserv-servlet .jsp
</VirtualHost>

</IfModule>
°¡»ó È£½ºÆ® ¼³Á¤ÀÌ httpd.conf°¡ ¾Æ´Ï¶ó ¿©±â¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù. À§¿¡ ÀûÀº °ÍÀº ¿¹·Î µç °ÍÀ̹ǷΠ°¢ °¡»ó È£½ºÆ®¿¡ ÇÊ¿äÇÑ ³»¿ëµéÀ» httpd.conf¿¡¼­Ã³·³ Àû¾îÁÖ¸é µÈ´Ù. ´Ü, °¢ °¡»ó È£½ºÆ® ¼³Á¤ÀÇ ¸¶Áö¸· ´Ù¼¸ ÁÙÀº JSP ÆÄÀÏ°ú ½áºí¸´À» ¼­·Î ´Ù¸¥ TomcatÀ¸·Î º¸³»±â À§ÇÑ °ÍÀ̹ǷΠJSP¸¦ »ç¿ëÇÏ´Â °¡»ó È£½ºÆ®¿¡´Â ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. À§¿¡¼­ ¿¹·Î µç µÎ °æ¿ì¿¡¼­ Æ÷Æ® ¹øÈ£°¡ ´Ù¸§¿¡ ÁÖ¸ñÇϱ⠹ٶõ´Ù. ÀÌÁ¦ TomcatÀ» 8007¹ø Æ÷Æ®¿Í 8008¹ø Æ÷Æ®¸¦ ¾²µµ·Ï ÇÏ¸é µÈ´Ù.

µÎ TomcatÀ» ½ÇÇà½ÃÅ°·Á¸é server.xmlÀ» ¼öÁ¤ÇØ¾ß ÇÑ´Ù. tomcat_aa/conf/server.xml°ú tomcat_bb/conf/server.xmlÀÇ Æ÷Æ® ¹øÈ£¸¦ À§ÀÇ tomcat.conf ¿¡¼­ Á¤ÇØÁØ °ª°ú ÀÏÄ¡½ÃÄÑ¾ß ÇÑ´Ù. tomcat_aa/conf/server.xml À» »ìÆ캸¸é ´ÙÀ½°ú °°Àº ºÎºÐÀÌ ÀÖ´Ù.

<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter name="handler"
           value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter name="port" value="8080"/>
</Connector>

<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter name="handler"
           value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter name="port" value="8007"/>
</Connector>
¾ÕÀÇ °ÍÀº TomcatÀÌ ÀÚüÀûÀ¸·Î °®°í ÀÖ´Â À¥½á¹öÀÇ Æ÷Æ®¹øÈ£Àε¥, ¾ÆÆÄÄ¡¸¦ ¾²°í ÀÖÀ¸¹Ç·Î ±»ÀÌ ´Ù¸¥ À¥½á¹ö¸¦ ¶Ç ¶ç¿ï ÀÌÀ¯°¡ ¾ø´Ù. ±×·¯¹Ç·Î ¾ÕÀÇ ³× ÁÙÀº ¸ðµÎ »èÁ¦Çϱ⠹ٶõ´Ù. µÚÀÇ ³× ÁÙÀÌ ¾ÆÆÄÄ¡¿Í TomcatÀÌ Åë½ÅÇÏ´Â Æ÷Æ®Àε¥ ÀÌ °ªÀ» tomcat.conf¿¡¼­ Á¤ÇØÁØ °ª°ú °°Àº 8007·Î Àû¾îÁÖ¸é µÈ´Ù. tomcat_bb/conf/server.xml¿¡´Â ´ÙÀ½°ú °°ÀÌ 8008¹øÀ¸·Î Àû¾îÁØ´Ù.
<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter name="handler"
           value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter name="port" value="8008"/>
</Connector>

´ÙÀ½À¸·Î ¼öÁ¤ÇÒ °ÍÀº JSP ÆÄÀÏ¿¡ ´ëÇÑ ¿äûÀÌ µé¾î¿ÔÀ» ¶§ À̸¦ ¾î¶² µð·ºÅ丮¿¡¼­ ãÀ» °ÍÀΰ¡¸¦ ÁöÁ¤ÇØÁÖ´Â ºÎºÐÀÌ´Ù. Æ÷Æ®¹øÈ£¸¦ Àû¾îÁØ ¾Æ·¡¿¡ º¸¸é <Context> űװ¡ Àִµ¥, ÀÌ Å±װ¡ TomcatÀ¸·Î µé¾î¿À´Â ¿äû°ú ½ÇÁ¦ µð·ºÅ丮¸¦ ´ëÀÀ½ÃÄÑÁÖ´Â ±¸½ÇÀ» ÇÑ´Ù. ¼³Ä¡ ÈÄ ¼öÁ¤ÇÑ °ÍÀÌ ¾ø´Ù¸é example°ú test¸¦ Á¤ÀÇÇÏ°í ÀÖÀ»ÅÙµ¥, ÀÌ µÎ ÁÙÀ» »èÁ¦ÇÏ°í ´ÙÀ½°ú °°ÀÌ ÇϳªÀÇ <Context>¸¸À» ³²°Ü ³õÀ¸¸é µÈ´Ù.

<Context path="" docBase="webapps/ROOT" debug="0" reloadable="true">
</Context>
tomcat_bb/conf/server.xmlµµ ¸¶Âù°¡ÁöÀÌ´Ù.

À§ÀÇ ¹æ¹ýÀº DocumentRoot ÀÌÇÏÀÇ ¾î´À °÷¿¡¼­µµ JSP¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ¸»ÇÏÀÚ¸é Àüü°¡ ÇϳªÀÇ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î µ¿ÀÛÇÏ´Â ¼ÀÀÌ´Ù. À̸¦ À§ÇØ, ¸¶Áö¸·À¸·Î webapps/ROOT°¡ ½ÇÁ¦ DocumentRoot¸¦ °¡¸®Å°µµ·Ï ÇØ¾ß ÇÑ´Ù. Áï, °¢ TomcatÀÇ TOMCAT_HOME ¾Æ·¡¿¡ ÀÖ´Â webapps/ROOT¸¦ »èÁ¦ÇÏ°í, ´ë½Å DocumentRoot¸¦ °¡¸®Å°´Â ½Éº¼¸¯ ¸µÅ©·Î ´ëüÇÑ´Ù. º» ¿¹¿¡¼­´Â aa.webdox.co.krÀÇ DocumentRoot °ªÀÌ /home/httpd/aa/htmlÀ̹ǷÎ, ´ÙÀ½Ã³·³

ln -s /home/httpd/aa/html /usr/local/tomcats/tomcat_aa/webapps/ROOT
½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µç´Ù. ÀÌ·¸°Ô ÇØ µÎ¸é Tomcat ½ÇÇà½Ã¿¡ DocumentRoot ÀÌÇϸ¦ °Ë»öÇÏ¿© CLASSPATH¸¦ Ãß°¡ÇÏ´Â µîÀÇ ÃʱâÈ­ ÀÛ¾÷À» ÇÏ°Ô µÈ´Ù. ¸¸ÀÏ JSPÆÄÀÏ µî¿¡¼­ ºÒ·¯ ¾²°í ½ÍÀº class°¡ ÀÖ´Ù¸é .class ÆÄÀÏ·Î ¸¸µé¾î¼­ DocumentRoot ¹Ø¿¡ WEB-INF/classes¶ó´Â µð·ºÅ丮¿¡ ³Ö¾î µÎ¸é µÈ´Ù. tomcat_bbÀÇ °æ¿ìµµ ¸¶Âù°¡Áö´Ù

ƯÁ¤ µð·ºÅ丮 ÀÌÇÏ¿¡¼­¸¸ ¾²µµ·Ï ÇÏ°í ½Í´Ù¸é º¸´Ù ³ªÀº ÇØ°áÃ¥ÀÌ ÀÖ´Ù. À§ÀÇ ¿¹¿¡¼­ path="" ºÎºÐ¿¡ ±× °ªÀ» ¸í½ÃÇÏ¸é µÈ´Ù. ¿¹¸¦ µé¾î http://aa.webdox.co.kr/java/ ÀÌÇÏ¿¡¸¸ JSP³ª servletÀ» ³Ö°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

<Context path="/java" docBase="webapps/java" debug="0" reloadable="true">
</Context>
¹°·Ð, webapps/javaÀº ½ÇÁ¦ ÆÄÀϵéÀÌ Á¸ÀçÇÏ´Â /home/httpd/aa/html/javaÀ¸·ÎÀÇ ½Éº¼¸¯ ¸µÅ©ÀÌ´Ù. docBase´Â ´Ù¸¥ ¿øÇÏ´Â µð·ºÅ丮·Î ´ëüÇصµ ¹«¹æÇÏ´Ù. ±×·± ´ÙÀ½ /home/httpd/aa/html/java ¹Ø¿¡ ¸¶Âù°¡Áö·Î WEB-INF/classes µð·ºÅ丮¸¦ ¸¸µé°í °Å±â¿¡ ÇÊ¿äÇÑ .class ÆÄÀϵéÀ» ³ÖÀ¸¸é µÈ´Ù.

¸ðµç ¼³Á¤ÀÌ ³¡³µÀ¸¸é ¾ÆÆÄÄ¡¸¦ ´Ù½Ã ½ÇÇàÇÏ°í, °¢°¢ÀÇ °¡»ó È£½ºÆ®¸¶´Ù TomcatÀ» µû·ÎÀÌ ½ÇÇà½ÃŲ´Ù. ¿©±â¼­´Â ´ÙÀ½Ã³·³ ÇÏ¸é µÈ´Ù.

# /usr/local/tomcats/tomcat_aa/bin/tomcat.sh start
# /usr/local/tomcats/tomcat_bb/bin/tomcat.sh start
ÀÌ¹Ì ½ÇÇàÁßÀÎ TomcatÀÌ ÀÖ´Ù¸é ±×°É ¸ÕÀú Á¾·áÇÏ´Â °ÍÀ» ÀØÁö ¸»ÀÚ. ÀÌÁ¦ µÎ °¡»ó È£½ºÆ®·Î Á¢¼ÓÇؼ­ ½ÇÇà ¿©ºÎ¸¦ È®ÀÎÇÏ¸é µÈ´Ù.


ÇÑ±Û ÄÚµå ¹®Á¦¿Í ÇØ°á¹æ¹ý

Tomcat¿¡¼­ ÇѱÛÀ» ¹Ù·Î »ç¿ëÇϱâ À§Çؼ­´Â ¸ðµç JSP ÆäÀÌÁö¿Í ½áºí¸´¿¡¼­ ¹®ÀÚ¼ÂÀ» EUC_KR·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ½áºí¸´¿¡¼­´Â HttpServletResponse Ŭ·¡½ºÀÇ setContentType() ¸Þ½îµå¿¡ ÀÎÀÚ·Î "text/html; charset=EUC_KR"¸¦ ³Ñ°ÜÁÖ¸é µÇ°í JSP¿¡¼­´Â ÆäÀÌÁö »ó´ÜÀÇ <%@ page> ű׾ȿ¡ ´ÙÀ½Ã³·³ ÇÏ¸é µÈ´Ù.


<%@ page contentType="text/html; charset=EUC_KR" %>

±×·±µ¥, TomcatÀº ÇÑ±Û Ã³¸®¿¡ À־ ÇÑ °¡Áö ¹®Á¦Á¡ÀÌ ÀÖ´Ù. GETÀ̳ª POST ¸¦ ÅëÇØ À̵¿µÇ´Â °ªÀÌ Cp1252·Î º¯È¯µÈ´Ù´Â Á¡ÀÌ´Ù. µû¶ó¼­, request.getParameter() ¸Þ½îµå¸¦ »ç¿ëÇÒ ¶§ ²À EUC_KR·Î ´Ù½Ã º¯È¯ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½Ã³·³ ÄÚµùÇÏ¸é µÈ´Ù.


<%@ page contentType="text/html; charset=EUC_KR" %>

...

<%
    String userId = new String(request.getParameter("id").getBytes("Cp1252"), "EUC_KR");

...

»ç¿ëÀÇ ÆíÀǸ¦ À§ÇØ ÄÚµå º¯È¯À» ÇØ Áִ Ŭ·¡½º¸¦ Çϳª ¸¸µé¸é ÁÁ°Ú´Ù.

request.getParameter() ¸Þ½îµå¸¦ »ç¿ëÇÏ¿© GET ȤÀº POST·Î ³Ñ¾î¿À´Â °ªÀ» EUC_KR·Î º¯È¯ÇÏ´Â °ÍÀº Àû´çÈ÷ Ŭ·¡½º¸¸ ¸¸µé¾î ³õÀ¸¸é ¹ø°Å·ÓÁö ¾ÊÀ¸³ª, ¹®Á¦´Â <jsp:setProperty>¸¦ »ç¿ëÇÏ´Â µ¥ ÀÖ´Ù. Beans¸¦ »ç¿ëÇϸé <jsp:setProperty>¸¦ ÅëÇØ formÀÇ °¢ ÇʵåÀÇ À̸§°ú beansÀÇ setXXX() ¸Þ½îµåÀÇ À̸§À» ÂüÁ¶ÇÏ¿© formÀÇ ÇÊµå °ª°ú set ÀÌÈÄ°¡ °°Àº À̸§ÀÇ setXXX() ¸Þ½îµå¸¦ »ç¿ëÇÏ¿© ÀÚµ¿ÀûÀ¸·Î beansÀÇ ÇÊµå °ªÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. (BeansÀÇ °³³ä°ú <jsp:setProperty> ±¸¹®¿¡ ´ëÇÑ ¼³¸íÀº JSP¿¡¼­ Beans »ç¿ëÇϱ⸦ Âü°íÇÏ¸é µÈ´Ù) ±×·±µ¥, ÀÌ·¸°Ô ÀÚµ¿ÀûÀ¸·Î beansÀÇ Çʵ尡 ¼³Á¤µÉ ¶§ ¿ª½Ã Cp1252·Î ÀÎÄÚµùµÇ±â ¶§¹®¿¡, beansÀÇ ÇÊµå °ªÀ» <jsp:setProperty>·Î ÀÚµ¿ ¼³Á¤ÇÑ ÈÄ¿¡ ²À ´Ù½Ã ¸ðµç Çʵ带 EUC_KR·Î º¯È¯ÇØ¾ß ÇÑ´Ù. ÀÌÇظ¦ µ½±â À§ÇØ ¿¹¸¦ µé¾î º¸°Ú´Ù.



JSP ¹®¼­ 

<jsp:useBean id="user" class="User" scope="page"/>
<jsp:setProperty name="user" property="*"/>
<% user.toKorean(); %>

User Bean (User.java)

import java.io.*;
import CharacterSet;

public class User {
    private String id;
    private String password;

    public void setId(String str) {
	id = str;
    }

    public void setPassword(String str) {
	password = str;
    }

    public String getId() {
	return id;
    }

    public String getPassword() {
	return password;
    }

    public void toKorean() {
	id = CharacterSet.toKorean(id);
    }
}

CharacterSet Ŭ·¡½º (CharacterSet.java)

import java.lang.*;
import java.io.*;

public class CharacterSet {
    public static String toKorean(String str) {
        try {
            return new String(str.getBytes("Cp1252"), "EUC_KR");
        } catch (UnsupportedEncodingException e) {
            return null;
        }
    }
}

CharacterSet Ŭ·¡½º´Â ÄÚµå º¯È¯À» ½±µµ·Ï ¸¸µç °ÍÀÌ°í, User.java¿¡¼­ ÀÌ Å¬·¡½º¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. User bean¿¡ form¿¡¼­ ÀԷ¹ÞÀº ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ ÀÚµ¿À¸·Î ¼³Á¤ÇÏ°í ³ª¼­ User beanÀÇ ¸Þ½îµå´Â toKorean()À» »ç¿ëÇÏ¿© EUC_KR·Î º¯È¯ÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.

ÇÑ±Û ÄÚµå ¹®Á¦´Â form¿¡¼­ Àü´Þ¹ÞÀº °ªÀ» beans¿¡ ÀÚµ¿ ¼³Á¤ÇÒ ¶§¸¸ »ý±â´Â °ÍÀ¸·Î¼­, Á÷Á¢ beans¿¡ °ªÀ» ¼³Á¤ÇÒ ¶§´Â ¹®Á¦°¡ ¾ø´Ù.