TOMCAT/APACHE
2017.05.30 / 18:39

Æ÷Æ®°¡ »ç¿ëÁßÀ̶ó ÅèĹÀÌ ½ÃÀÛµÇÁö ¾ÊÀ»¶§ ó¸® - ÅèĹ ÇÁ·Î¼¼½º ¿ì¾ÆÇÏ°Ô Á¾·á ½ÃÅ°±â

Secutiry
Ãßõ ¼ö 178

ÅèĹÀ» ±¸µ¿ÇÏ·Á¸é Java °¡ ÇÊ¿äÇÏ´Ù. ÅèĹ ÀÚü¸¦ ±¸µ¿ÇÏ·Á¸é JRE ¸¸ À־ ÃæºÐÇÏÁö¸¸ Á÷Á¢ Java ¾îÇø®ÄÉÀ̼ÇÀ» ºôµåÇÏ·Á¸é JDK °¡ ÇÊ¿äÇϹǷΠJRE ´ë½Å JDK ¸¦ ¼³Ä¡Çϵµ·Ï ÇÏÀÚ.

RHEL ¿¡´Â OpenJDK ¶ó´Â JDK ±¸Çö¹°ÀÌ Æ÷ÇԵǾî ÀÖÁö¸¸ ¾ÈÁ¤ÀûÀ¸·Î »ç¿ëÇÏ·Á¸é ¿À¶óŬÀÇ JDK ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.  

 

JDK ¼³Ä¡Çϱâ

  1. oracle java »çÀÌÆ®(java.oracle.com) ¿¡¼­ »ç¿ëÇÒ JDK¸¦ ´Ù¿î·Îµå ¹Þ´Â´Ù. ÁÖ·Â Á¦Ç°ÀÎ 7.x´ë Áß¿¡ °¡Àå ¸¶Áö¸· ¹öÀüÁß rpm ÆÐŰ¡À» ¹ÞÀ¸¸é µÈ´Ù. »ç¿ëÇÏ´Â ¸®´ª½ºÀÇ ¾ÆÅ°ÅØó¿¡ ¸Â´Â ÆÐÅ°Áö¸¦ ¹Þ´Â °É ÀØÁö ¸»ÀÚ. °ÅÀÇ ´ë´Ù¼ö°¡ 64ºñÆ®ÀÌÁö¸¸ Àß ¸ð¸£°Ú´Â µ¶Àڴ uname -m ¸í·É¾î¸¦ ½ÇÇàÇÏ¿© 64 Ç׸ñÀÌ º¸À̸é 64ºñÆ®ÀÌ´Ù.
     
  2. yum À¸·Î ´Ù¿î ·ÎµåÇÑ ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÑ´Ù. 

    yum localinstall jdk-7u*.rpm -y

  3. ÆÐÅ°Áö ÆÄÀÏÀº /usr/java/jdk-version ¸í µð·ºÅ͸®¿¡ ¼³Ä¡µÈ´Ù. jdk1.7.0_60 ÀÏ °æ¿ì /usr/java//jdk1.7.0_60/ µð·ºÅ͸®¿¡ ¼³Ä¡µÈ´Ù.
  4. JDK ´Â ÇÑ ½Ã½ºÅÛ¿¡ ¿©·¯ ¹öÀüÀÌ ¼³Ä¡µÉ ¼ö ÀÖ´Ù. RHEL Àº ÀÌ·¸°Ô ¿©·¯ ¹öÀüÀÌ ¼³Ä¡µÇ´Â ¸í·É¾îÁß Æ¯Á¤ ¹öÀüÀ» ±âº» ¸í·É¾î·Î °£´ÜÇÏ°Ô ¼³Á¤ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. 
    alternative °¡ ±× ¸í·É¾î·Î 1.7 ¹öÀüÀÇ ÀÚ¹Ù¸¦ »ç¿ëÇÏ´Ù°¡ 1.8À» »ç¿ëÇÏ°í ½ÍÀ» °æ¿ì ±âÁ¸ java ¸í·É¾î¸¦ µ¤¾î ¾²Áö ¾Ê°í °£´ÜÇÏ°Ô ½Éº¼¸¯ ¸µÅ© ¼öÁ¤À¸·Î ±³Ã¼°¡ °¡´ÉÇÏ´Ù. 
    ¸ÕÀú alternatives ¸í·É¾î¿¡ »õ·Î ¼³Ä¡ÇÑ java¸¦ µî·ÏÇØ º¸ÀÚ.

    ## ±âÁ¸ ½Éº¼¸¯ ¸µÅ©¸¦ »èÁ¦ÇÑ´Ù.
    rm -f /usr/java/jdk1.7
    # »õ·Î¿î ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÑ´Ù. ¼³Ä¡ÇÑ JDK ÀÇ ¹öÀüÀÌ ´Ù¸£¸é JDK µð·ºÅ͸®¸íÀ» ¼öÁ¤ÇÑ´Ù.
    ln -s /usr/java/jdk1.7.0_60 /usr/java/jdk1.7

    alternatives --install /usr/bin/java java /usr/java/jdk1.7/bin/java 20000
    alternatives --install /usr/bin/javac javac /usr/java/jdk1.7/bin/javac 20000
    alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.7/jre/bin/javaws 20000
    alternatives --install /usr/bin/jar jar /usr/java/jdk1.7/bin/jar 20000
    alternatives --install /usr/bin/keytool keytool /usr/java/jdk1.7/bin/keytool 20000


  5. ÀÌÁ¦ ½Ã½ºÅÛÀÇ ±âº» java ¸í·É¾î¸¦ ±³Ã¼ÇÑ´Ù. --set ¿É¼ÇÀ¸·Î ±âº» ¸í·É¾î¸¦ ¼³Á¤Çϰųª --config ¸í·É¾î·Î ´ëÈ­ÇüÀ¸·Î ÁøÇàÇÒ ¼ö ÀÖ´Ù. ¿ì¸®´Â --set ¸í·É¾î¸¦ »ç¿ëÇÏÀÚ.

    alternatives --set java /usr/java/jdk1.7/bin/java
    alternatives --set javac /usr/java/jdk1.7/bin/javac
    alternatives --set javaws /usr/java/jdk1.7/jre/bin/javaws
    alternatives --set jar /usr/java/jdk1.7/bin/jar
    alternatives --set keytool /usr/java/jdk1.7/bin/keytool


  6. java ¿¡ -version ¿É¼ÇÀ» ÁÖ°í ½ÇÇàÇؼ­ ¹öÀüÀ» È®ÀÎÇÏ¿© Á¦´ë·Î ¼³Á¤µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù.

    javac -version
    javac 1.7.0_60

    # java -version

    java version "1.7.0_60"
    Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
    Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode) 

¼º°øÀûÀ¸·Î JDK ¼³Ä¡°¡ ³¡³µÀ¸¸é ÅèĹÀ» ¼³Ä¡ÇÒ Â÷·ÊÀÌ´Ù. 

ÅèĹ ¼³Ä¡Çϱâ

ÅèĹÀº 1024 ÀÌÈÄÀÇ Æ÷Æ®¸¦ »ç¿ëÇϹǷΠÀÏ¹Ý »ç¿ëÀÚ·Î ±¸µ¿ÇÏ´Â °Ô ¹Ù¶÷Á÷ÇÏ´Ù. JDK ´Â ·çÆ®·Î ÀÛ¾÷ÇßÁö¸¸ ÅèĹ ¼³Ä¡´Â ±¸µ¿ÇÒ »ç¿ëÀÚ °èÁ¤À¸·Î su ¸¦ ÇÏ¿© ÀÏ¹Ý »ç¿ëÀÚ·Î ÀÛ¾÷ÇÏÀÚ.

  1. ÅèĹ °ø½Ä »çÀÌÆ®(http://tomcat.apache.org/download-70.cgi)¿¡¼­ 7.x ¹öÀüÀÇ ¸¶Áö¸· ¹öÀüÀ» ´Ù¿î·ÎµåÇÑ´Ù. ÇöÀç ¹öÀüÀº 7.0.54 ÀÌ´Ù.

    wget http://mirror.apache-kr.org/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat-7.0.54.tar.gz

  2. ´Ù¿î·Îµå ¹ÞÀº ÅèĹÀÇ ¾ÐÃàÀ» ÇØÁ¦ÇÑ´Ù.

    tar zxvf apache-tomcat-7.0.54.tar.gz

  3. ¾ÐÃàÀÌ ÇØÁ¦µÈ µð·ºÅ͸®·Î À̵¿ÇÑ´Ù.

    cd apache-tomcat-7.0.54

µð·ºÅ͸® ±¸¼º

ÅèĹÀº ´ÙÀ½°ú °°Àº ÆÄÀÏ°ú µð·ºÅ͸® ±¸¼ºÀ» °®°í ÀÖ´Ù. °¢ µð·ºÅ͸®º° ¿ëµµ¸¦ »ìÆì º¸ÀÚ.

  • bin: ÅèĹÀÇ ¹ÙÀ̳ʸ®¿Í ½ÇÇà ½ºÅ©¸³Æ®°¡ ÀÖ´Â µð·ºÅ͸®ÀÌ´Ù. ÀÌÁß¿¡¼­ Áß¿äÇÑ ¿ëµµÀÇ ÆÄÀϵéÀ» Á¤¸®ÇØ º¸ÀÚ.

    ÆÄÀϸí
    ¿ëµµ
    startup.shÅèĹ ±¸µ¿ ½ºÅ©¸³Æ®
    shutdown.shÅèĹ Á¾·á ½ºÅ©¸³Æ® 
    version.sh ÅèĹÀÇ ¹öÀü°ú OS, JDK Á¤º¸¸¦ Ãâ·ÂÇÏ´Â ½ºÅ©¸³Æ® 
    configtest.sh ¼³Á¤ÀÇ ÀÌ»ó À¯¹«¸¦ Å×½ºÆ®ÇÒ ¼ö ÀÖ´Â ½ºÅ©¸³Æ®.
    setenv.shÅèĹ ½ÇÇà½Ã JVM ¿¡ ³Ñ°ÜÁÙ ¿É¼ÇÀ» ¼³Á¤ÇÏ´Â ÆÄÀÏ. Æ÷ÇԵǾî ÀÖÁö ¾ÊÀ¸¹Ç·Î º°µµ·Î »ý¼ºÇØ¾ß ÇÑ´Ù
    ÅèĹ ½ºÅ©¸³Æ®º° ¿ëµµ
  • conf: ÅèĹÀÇ ¼³Á¤ ÆÄÀÏÀÌ À§Ä¡ÇÑ´Ù. global configuration applicable to all the webapps. The default installation provides:

    ÆÄÀϸí
    ¿ëµµ
    server.xml°¡Àå Áß¿äÇÑ ¼³Á¤ ÆÄÀÏ·Î ÅèĹÀÇ ¼­ºñ½º, ¿£Áø, È£½ºÆ®µîÀÇ Áß¿ä ¼³Á¤À» ÇÑ´Ù. ÅèĹÀÇ ¾ÆÅ°ÅØó¿Í µ¿ÀÏÇÑ ±¸Á¶¸¦ °¡Áö¹Ç·Î ¾ÆÅ°ÅØó¸¦ ÀÌÇØÇß´Ù¸é ¼³Á¤ ÆÄÀϵµ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
    tomcat-users.xml¿ªÇÒ¿¡ ±â¹ÝÇÑ »ç¿ëÀÚ ±ÇÇÑ°ú ÀÎÁõ Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù. º¸¾È¶§¹®¿¡ ±âº»ÀûÀ¸·Î´Â ÁÖ¼®À¸·Î ¸·Çô ÀÖ´Ù.
    web.xml¸ðµç À¥ ¾îÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷ÇÒ ¶§ »ç¿ëÇÒ ±âº» ¼³Á¤À» ÁöÁ¤ÇÑ´Ù.
    context.xml¼¼¼Ç ÄíÅ° ÀúÀå °æ·Îµî ÅèĹ ÀÇÁ¸ÀûÀÎ ¼³Á¤À» ÇÏ´Â ÆÄÀÏÀÌ´Ù.
    ÅèĹ ¼³Á¤ ÆÄÀÏ ¿ëµµ
  • lib: ¸ðµç webapps ¿¡¼­ »ç¿ë °¡´ÉÇÑ JAR ÆÄÀϵéÀÌ À§Ä¡ÇÑ´Ù. ±âº»ÀûÀ¸·Î ÀÚ¹Ù ¼­ºí¸´À» ±¸ÇöÇÑ servlet-api.jar¿Í JSP ¸¦ ±¸ÇöÇÑ jasper.jar ÆÄÀÏÀÌ ÀÖ´Ù. JDBC µî Àü¿ªÀûÀ¸·Î »ç¿ëÇÒ jar ÆÄÀϵ鵵 ¿©±â¿¡ ³Ö¾î ÁÖ¸é µÈ´Ù.
  • logs: ±âº» ·Î±× ÆÄÀÏÀÌ ÀúÀåµÇ´Â µð·ºÅ͸®ÀÌ´Ù. Ä«Å»¸®³ª ¿£ÁøÀº catalina.{yyyy-mm-dd}.log ÆÄÀÏ¿¡ ·Î±×¸¦ ³²±â°í server.xml ¿¡ È£½ºÆ®ÀÇ ·Î±×´Â localhost.{yyyy-mm-dd}.log  Çü½ÄÀ¸·Î ³²°Ô µÈ´Ù.
  • webapps: À¥ ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÖ´Â µð·ºÅ͸®ÀÌ´Ù. ÅèĹÀ» ¼³Ä¡ÇÏ¸é ±âº»ÀûÀ¸·Î docs, examples, host-manager , manager ³× °³ÀÇ ¾îÇø®ÄÉÀ̼ÇÀÌ Æ÷ÇԵǾî ÀÖ´Ù. 
  • work: ¼­ºí¸´À̳ª JSP ÆÄÀÏÀ» ÄÄÆÄÀÏ ÇÑ ¼Ò½º¿Í Ŭ·¡½º ÆÄÀÏÀÌ À§Ä¡ÇÑ´Ù. ¿£Áø À̸§(Catalina) µð·ºÅ͸® ¹Ø¿¡ È£½ºÆ® À̸§(localhost)  ¹Ø¿¡ À¥ ¾îÇø®ÄÉÀ̼ǸíÀ¸·Î °èÃþÀûÀ¸·Î µð·ºÅ͸®°¡ ±¸¼ºµÈ´Ù. myapp ¶ó´Â À¥ ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÖÀ» °æ¿ì work/Catalina/localhost/myapp/ µð·ºÅ͸®°¡ »ý¼ºµÈ´Ù.
  • temp: Àӽà ÆÄÀϵéÀ» ÀúÀåÇÏ´Â µð·ºÅ͸®ÀÌ´Ù.

ÅèĹÀº bin µð·ºÅ͸®¿¡ ¿©·¯ °¡Áö ½© ½ºÅ©¸³Æ®¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌÁß¿¡¼­ Áß¿äÇÑ ¿ëµµÀÇ ÆÄÀϵéÀ» Á¤¸®ÇØ º¸ÀÚ.

 

JVM ¿É¼Ç ¼³Á¤

±âº» ÅèĹ ¼³Á¤Àº ¸Þ¸ð¸®°¡ ÀÛ°Ô ¼³Á¤µÇ¾î ÀÖÀ¸´Ï Ä¿½ºÅÒ setenv.sh À» ¸¸µé°í JVM ¼³Á¤À» ÃÖÀûÈ­ÇÏÀÚ. ¿¡µðÅͷΠbin/setenv.sh ¸¦ ¿­¾î¼­ ´ÙÀ½ ³»¿ëÀ» Ãß°¡ÇÑ´Ù.

#!/bin/sh
  
MIN_MEMORY="128m"
MAX_MEMORY="512m"
MAX_PERM_SIZE="256m"
SERVICE_NAME="myWebApp"
JAVA_OPTS="-Dcom.example.servicename=${SERVICE_NAME} -Xms${MIN_MEMORY} -Xmx${MAX_MEMORY} -XX:MaxPermSize=${MAX_PERM_SIZE} ${JAVA_OPTS}"

 

ÀÚ¹ÙÀÇ °¡»ó ¸Ó½Å¿¡ Àü´ÞÇÒ ¸Þ¸ð¸® °ü·Ã ¿É¼Ç¿¡ ÆĶó¹ÌÅÍ·Î Àü´ÞÇÒ ¼³Á¤À¸·Î °¢°¢ÀÇ Àǹ̴ ´ÙÀ½°ú °°´Ù.

  • MIN_MEMORY : ÀÚ¹ÙÀÇ °¡»ó ¸Ó½ÅÀÇ Ãʱâ ÇÒ´çµÇ´Â ¸Þ¸ð¸® Ç®ÀÇ Å©±â. -Xms ¿É¼ÇÀÇ ÆĶó¹ÌÅÍ·Î Àü´ÞµÈ´Ù.
  • MAX_MEMORY: °¡»ó ¸Ó½Å¿¡ ÇÒ´çµÇ´Â ¸Þ¸ð¸®ÀÇ  ÃÖ´ë Å©±â. Å« ¾îÇø®ÄÉÀ̼ÇÀ» ±¸µ¿Çϰųª ½Ã½ºÅÛ¿¡ ¸Þ¸ð¸® ¿©À¯°¡ ÀÖ´Ù¸é ´Ã¸®´Â °ÍÀ» ±ÇÀåÇÑ´Ù.
  • MAX_PERM_SIZE :  °¡»ó ¸Ó½ÅÀÇ PermGen(Permanent Generation) ¿µ¿ªÀÇ Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. Ŭ·¡½º³ª ¸Þ¼Òµå, ±âŸ °´Ã¼°¡ ÀúÀåµÇ´Â ¿µ¿ªÀ¸·Î ºÎÁ·ÇÒ °æ¿ì OutOfMemoryError ¸¦ ¸¸³¯ ¼ö ÀÖ´Ù. ƯÈ÷ ÅèĹÀÇ manager ¸¦ ÀÌ¿ëÇÏ¿© ÇÖ µðÇ÷ÎÀÌ(Hot deploy) ¸¦ ÇÑ´Ù¸é Å©±â¸¦ ´õ ´Ã·Á¾ß ÇÑ´Ù.
  • SERVICE_NAME : ps ¸í·É¾î·Î ÇöÀç ±¸µ¿µÈ ÅèĹ ¾îÇø®ÄÉÀÌ¼Ç À̸§À» °¡Á®¿Ã °æ¿ì ¿©·¯ °³ÀÇ JVM ÀÌ ±¸µ¿µÇ¾î ÀÖÀ¸¸é grep java ·Î ãÀ» °æ¿ì ¿øÇÏÁö ¾Ê´Â JVM ÇÁ·Î¼¼½º°¡ Ãâ·ÂµÉ ¼ö ÀÖ´Ù. À̸¦ ¹æÁöÇÏ°í ÇöÀç ÅèĹÀÇ ÀνºÅϽº¸¦  ¸íÈ®È÷ ½Äº°Çϱâ À§ÇØ ±¸µ¿½Ã¿¡ ¼­ºñ½º¸íÀ» ÁöÁ¤Çϸé grep À» ÀÌ¿ëÇÏ¿© ¼Õ½±°Ô ÇÁ·Î¼¼½º Á¤º¸¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù. 

 

½ÃÀÛ°ú Á¾·á

setenv.sh ´Â  catalina.sh ¿¡¼­ Âü°íÇϹǷΠchmod ·Î ½ÇÇà ¼Ó¼ºÀ» ÁÖÁö ¾Ê¾Æµµ µÈ´Ù.. ÀÌÁ¦ JVM ÀÇ ¿É¼Çµµ ¼³Á¤ÇßÀ¸´Ï ÅèĹÀ» ±¸µ¿ÇØ º¸ÀÚ.

±¸µ¿Àº startup.sh ¸¦ ½ÇÇàÇÏ¸é ±¸µ¿ÀÌ µÈ´Ù.

./bin/startup.sh


Using CATALINA_BASE: /home/lesstif/apache-tomcat-7.0.54
Using CATALINA_HOME: /home/lesstif/apache-tomcat-7.0.54
Using CATALINA_TMPDIR: /home/lesstif/apache-tomcat-7.0.54/temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/lesstif/apache-tomcat-7.0.54/bin/bootstrap.jar:/home/lesstif/apache-tomcat-7.0.54/bin/tomcat-juli.jar
Tomcat started.

ÅèĹÀÌ Á¤»óÀûÀ¸·Î ±¸µ¿µÇ¸é À§¿Í °°Àº ¸Þ½ÃÁö°¡ Ç¥½ÃµÈ´Ù. ´õ ÀÚ¼¼ÇÑ ¸Þ½ÃÁö´Â logs/catalina.out ¿¡¼­ º¼ ¼ö ÀÖ´Ù. ÀÌÁ¦ ºê¶ó¿ìÀú¸¦ ÅëÇØ ÅèĹ¿¡ ¿¬°áÇØ º¸ÀÚ.

ÅèĹÀº ±âº»ÀûÀ¸·Î HTTP Æ÷Æ®·Î 8080 À» »ç¿ëÇÑ´Ù. ºê¶ó¿ìÀúÀÇ ÁÖ¼Òâ¿¡ ÅèĹÀÌ ¼³Ä¡µÈ ¼­¹öÀÇ IP¿Í ÅèĹÀÌ »ç¿ëÇÏ´Â Æ÷Æ®ÀÎ 8080 À» ³ÖÀ¸¸é ¿¬°áµÇÁö¸¸ »çÀü¿¡ ¸ÕÀú ÇؾßÇÒ ÀÛ¾÷ÀÌ ÀÖ´Ù.

º¸Åë ÅèĹ ¾Õ¿¡ À¥¼­¹ö¸¦ À§Ä¡½ÃÅ°°í ¿ÜºÎ¿¡¼­´Â  80À̳ª 443 Æ÷Æ®¸¦ ÀÌ¿ëÇؼ­ ¿¬°áÇÏ°Ô µÈ´Ù. 

 

ÇÏÁö¸¸ ¾ÆÁ÷ ¿ì¸®´Â ¾ÆÆÄÄ¡ À¥¼­¹ö ¼³Á¤À» ÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î URL ¿¡ ÅèĹÀÇ ¼­ºñ½º Æ÷Æ®ÀÎ 8080À¸·Î ¹Ù·Î ¿¬°áÇØ¾ß ÇÏÁö¸¸ iptables ¹æÈ­º® Á¤Ã¥¶§¹®¿¡ 8080 Æ÷Æ®´Â ¹Ù·Î ¿¬°áÇÒ ¼ö ¾ø´Ù.

ÅèĹÀÇ Á¤»ó ±¸µ¿ Å×½ºÆ®¸¦ À§ÇØ Àá½Ã 8080 Æ÷Æ®¸¦ ¿­µµ·Ï ÇÏÀÚ. /etc/sysconfig/iptables ÆÄÀÏÀ» ¿¡µðÅÍ·Î ¼öÁ¤ÇÏ°í iptables ¼­ºñ½º¸¦ À籸µ¿Çصµ µÇÁö¸¸ Áß¿ä ¸í·É¾î¿Í À¯Æ¿¸®Æ¼ Àå¿¡¼­ ÀÍÈù lokkit ÅøÀ» »ç¿ëÇØ º¸ÀÚ.

´ÙÀ½ ¸í·É¾î·Î 8080 Æ÷Æ®¸¦ ¿­¼ö ÀÖ´Ù. lokkit ¸í·É¾î´Â iptables ¼­ºñ½º¸¦ À籸µ¿ÇϹǷΠ¹Ù·Î ¼³Á¤ÀÌ ¹Ý¿µµÈ´Ù. 

lokkit -p 8080:tcp

 

ÀÌÁ¦ ºê¶ó¿ìÀú·Î ¿¬°áÇÏ¸é ´ÙÀ½°ú °°Àº ÅèĹÀÇ ±âº» À¥ ¾îÇø®ÄÉÀ̼ÇÀÌ Ç¥½ÃµÉ °ÍÀÌ´Ù.

ÅèĹ Ãʱâ È­¸é

 

ÅèĹÀÇ Á¾·á´Â bin/shutdown.bat ¸¦ ½ÇÇàÇÏ¸é µÈ´Ù.

./bin/shutdown.sh

Using CATALINA_BASE: /home/lesstif/apache-tomcat-7.0.54
Using CATALINA_HOME: /home/lesstif/apache-tomcat-7.0.54
Using CATALINA_TMPDIR: /home/lesstif/apache-tomcat-7.0.54/temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/lesstif/apache-tomcat-7.0.54/bin/bootstrap.jar:/home/lesstif/apache-tomcat-7.0.54/bin/tomcat-juli.jar

 

Æ÷Æ®°¡ »ç¿ëÁßÀ̶ó ÅèĹÀÌ ½ÃÀÛµÇÁö ¾ÊÀ»¶§ ó¸®

ÅèĹÀº ³»ºÎÀûÀ¸·Î °ü¸®¿ëÀ¸·Î TCP Æ÷Æ®¸¦ Çϳª »ç¿ëÇÑ´Ù. °¡²û ÅèĹÀÌ Á¦´ë·Î Á¾·áµÇÁö ¾Ê¾Æ °ü¸®¿ë Æ÷Æ®´Â ´ÝÈ÷°í ¼­ºñ½º Æ÷Æ®´Â ¿­¸° »óÅ·ΠJava VMÀÌ ¶° ÀÖ´Â °æ¿ì°¡ ÀÖ´Ù.

shutdown.sh ´Â °ü¸®¿ë Æ÷Æ®¿¡ ¿¬°áÇÏ¿© ¼­ºñ½º Á¾·á¸¦ ½ÃµµÇϹǷΠÀ§¿Í °°Àº »óȲ¿¡¼­´Â shutdown.sh ·Î Á¾·á¸¦ ÇÒ ¼öµµ ¾ø°í startup.sh ¸¦ Çصµ ÀÌ¹Ì ±âÁ¸ ÇÁ·Î¼¼½º°¡ ¼­ºñ½º Æ÷Æ®¸¦ »ç¿ëÇϹǷΠ½ÃÀÛµµ ÇÒ ¼ö ¾ø´Ù.

ÇÁ·Î¼¼½º ¹× ÆÄÀÏÀ» º¸´Â ¸í·É¾îÀÎ lsof ¸¦ »ç¿ëÇϸé Æ÷Æ®¸¦ »ç¿ëÁßÀÎ ÇÁ·Î¼¼½ºÀÇ Á¤º¸¸¦ °¡Á®¿Ã ¼ö ÀÖÀ¸¹Ç·Î PID ¸¦ ¾Ë¾Æ ³»¾î kill ¸í·É¾î·Î Á¾·áÇÒ ¼ö ÀÖ´Ù.

$ lsof -i TCP:8005,8080,8009

 

À§ È­¸éÀ» º¸¸é tomcat À» ±¸µ¿ÇÑ JVM ÀÇ ÇÁ·Î¼¼½º id °¡ 7011 À̹ǷΠkill 7011 ·Î Á¾·áÇÒ ¼ö ÀÖ´Ù.

ÇÁ·Î¼¼½º¸¦ Á¾·áÇÒ ¶§ kill -9 ·Î Á¾·áÇÏ´Â °Ç ÁÁÁö ¾Ê´Ù. -9 ´Â KILL ½Ã±×³Î·Î STOP ½Ã±×³Î°ú ÇÔ²² ÇÁ·Î¼¼½º°¡ Àâ°Å³ª ¹«½ÃÇÒ ¼ö ¾ø´Â ½Ã±×³ÎÀ̹ǷΠÇÁ·Î¼¼½º°¡ Áï½Ã Á¾·áµÇ¹Ç·Î ³»ºÎ¿¡¼­ »ç¿ëÁßÀÎ ÀÚ¿øÀ» Á¦´ë·Î Á¤¸®ÇÏ°í Á¾·áÇÏÁö ¸øÇÒ ¼ö ÀÖ´Ù.

kill ¸í·É¾î¿¡ ½Ã±×³ÎÀ» »ý·«Çϸé TERM(inate) ½Ã±×³ÎÀÌ Àü¼ÛµÇ¸ç ÀÌ ½Ã±×³ÎÀº Çڵ鷯¸¦ µî·ÏÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¾ÈÀüÇÏ°Ô Á¾·áµÉ ¼ö ÀÖ´Ù.

 

¿ìÃøÀÇ NAME ºÎºÐ¿¡¼­ mxi, webcache·Î Ç¥½ÃµÇ´Â °Ç /etc/service ÆÄÀÏ¿¡ Æ÷Æ®°¡ ÇØ´ç ¼­ºñ½º¸íÀ¸·Î µî·ÏµÇ¾î Àֱ⠶§¹®ÀÌ´Ù. º¸±â ºÒÆíÇϸé /etc/service ÀÇ ¼­ºñ½º¸íÀ» ¼öÁ¤ÇÏ¸é µÇ¸ç »ç¿ë¿¡´Â ¹®Á¦°¡ ¾ø´Ù.

 

ÅèĹ ÇÁ·Î¼¼½º ¿ì¾ÆÇÏ°Ô Á¾·á½ÃÅ°±â

ÅèĹÀÌ Á¦´ë·Î Á¾·áµÇÁö ¾Ê¾ÒÀ» °æ¿ì À§¿¡¼­ ¼³¸íÇÑ´ë·Î lsof ¸¦ »ç¿ëÇÏ¿© PID ¸¦ ¾ò¾î ¿Â ÈÄ¿¡ kill ·Î Á¾·á ½Ãų ¼ö ÀÖÁö¸¸ lsof ÀÇ Ãâ·Â¹°À» °¡°øÇØ¾ß ÇϹǷΠÀÚµ¿È­°¡ ¾î·Á¿î ´ÜÁ¡ÀÌ ÀÖ´Ù.

"Áß¿ä ¸í·É¾î¿Í À¯Æ¿¸®Æ¼" ¿¡¼­ ´Ù·é ½ºÅ©¸³Æ®¸¦ È°¿ëÇÏ¿© ÅèĹÀÇ PID ¸¦ ¾ò¾î¼­ Á¾·á½ÃÅ°´Â ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇØ º¸ÀÚ.

#!/bin/sh
  
## ÇÁ·Î¼¼½º À̸§°ú »ç¿ëÀÚ¸íÀ¸·Î pid ¸¦ ã¾Æ¼­ Á¾·á½ÃÅ°´Â ÇÔ¼ö
killproc() {
    local prog=$1
    local user=$2
    local signal="TERM"
  
    if "$#" 0 ] ; then
        echo $"Usage: killproc {program} {user} {signal}"
        return 1
    fi
  
    if "$#" 3 ]; then
        signal=$3
    fi
    PID=`ps -eaf|grep ${prog}|grep -v grep|grep ${user}|awk '{print $2}'`
    ## process still running..
    if [ ! -z ${PID} ] && [ ${PID} -gt 0 ];then
        echo "kill -${signal} ${PID}"
        kill -${signal} ${PID};
        return 1;
    else
         return 0;
    fi
}
  
## ÅèĹ ÀνºÅϽº À̸§. grep À¸·Î ÇÁ·Î¼¼½º ãÀ» ¶§ java ³ª tomcat À¸·Î ãÀ¸¸é ¿©·¯ °³ÀÇ ÇÁ·Î¼¼½º°¡ ³ª¿Ã ¼ö ÀÖÀ¸¹Ç·Î ÀÌ À̸§À¸·Î ã´Â°Ô ÁÁ´Ù. 
## setenv.sh ¿¡ SERVICE_NAME ÇÁ·ÎÆÛƼ¿¡ ÁöÁ¤ÇÑ À̸§À» Àû¾îÁÖÀÚ.
 
SERVICE_NAME="servicename=myWebApp"
  
## ÅèĹ Ȩ. ¼³Ä¡ À§Ä¡¿¡ ¸Â°Ô ¼öÁ¤ÇÏÀÚ. µð·ºÅ͸®°¡ ¾ø´Ù¸é ½ºÅ©¸³Æ®¸¦ È£ÃâÇÑ À§Ä¡¸¦ ÅèĹ ȨÀ¸·Î »ç¿ëÇÑ´Ù.
TC_HOME=/var/tomcat/tomcat-7.0.55
if [ ! -d ${TC_HOME} ];then
        TC_HOME=`pwd`
fi
  
## »ç¿ëÀÚ º°·Î ÅèĹÀÌ ¶° ÀÖÀ»¼ö ÀÖÀ¸¹Ç·Î ÇÁ·Î¼¼½º ¼ÒÀ¯ÀÚ ¸íÀ¸·Îµµ ÇÊÅ͸µÇÑ´Ù.
USER=`whoami`
  
cd ${TC_HOME}
./bin/shutdown.sh >& /dev/null
sleep 1 # ÅèĹ Á¤»ó Á¾·á¸¦ À§ÇØ 1ÃÊ ´ë±â
  
## ·çÇÁ¸¦ 2¹ø ½ÇÇà
for i in 1 2;do
    killproc ${SERVICE_NAME} ${USER}
    RET=$?
    if [ $RET = 0 ];then
        break;
    fi;
    sleep $i;
done
  
## ¾ÆÁ÷µµ Á¾·áµÇÁö ¾Ê¾Ò´Ù¸é KILL ½Ã±×³ÎÀ» Àü¼Û
killproc "${SERVICE_NAME}" "${USER}" "KILL"
ÅèĹ Á¾·á ½ºÅ©¸³Æ®

À§ ½ºÅ©¸³Æ®¸¦ Àû´çÇÑ À̸§À¸·Î ÀúÀåÇÑ ÈÄ¿¡ (¿¹: shutdown_graceful.sh) chmod +x ·Î ½ÇÇà ¼Ó¼ºÀ» ºÎ¿©ÇÏÀÚ.

±×¸®°í ÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϸé ÅèĹÀÌ Á¦´ë·Î Á¾·áµÇÁö ¾Ê¾Æ ¼­ºñ½º ¾²·¹µå°¡ »ì¾Æ ÀÖ´Â °æ¿ì¿¡µµ Á¾·á½Ãų ¼ö ÀÖÀ¸¸ç ÅèĹ¿¡ ¾îÇø®ÄÉÀ̼ÇÀ» µðÇ÷ÎÀÌÇÒ °æ¿ì À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.

 

tomcat °ú vfablic ÀÇ Â÷ÀÌÁ¡

Architecture