ÃֽŠ°Ô½Ã±Û(OS/WAS)
2019.06.04 / 19:06

(AWS) Apache(Web Server)¿Í Tomcat ¿¬µ¿Çϱâ

Źµ¹ÀÌ°³¹ßÀÚ
Ãßõ ¼ö 228

Apache Web Server¸¦ Front¿¡ µÎ°í ±× µÚ¿¡ TomcatÀ» ¿¬µ¿Çؼ­ ¼­ºñ½º¸¦ ÇÏ´Â ÇüÅ´ ½ÇÁ¦ »ó¿ë ¼­ºñ½º¿¡¼­ ¸¹ÀÌ Àû¿ëÇÏ´Â ÇüÅÂÀÌÀÌ´Ù. Áö³­ Æ÷½ºÆÿ¡¼­ Apache Web Server ¼³Ä¡ ¹æ¹ý°ú TomcatÀÇ ¼³Ä¡ ¹æ¹ýÀ» ´Ù·ç¾úÀ¸¹Ç·Î À̹ø Æ÷½ºÆÃÀº µÎ ¼­¹ö¸¦ ¿¬µ¿ÇÏ´Â ¹ýÀ» ¼³¸íÇϵµ·Ï ÇÏ°Ú´Ù.

 ºê¶ó¿ìÀú¸¦ ¶ç¿ö¼­ ÇöÀç µÎ ¼­¹ö°¡ ¼³Ä¡µÈ EC2 ÀνºÅϽºÀÇ Public IP·Î ¿¬°áÀ» Çغ¸¸é 80 Æ÷Æ®´Â ApacheÀÇ Å×½ºÆ® ÆäÀÌÁö°¡ º¸ÀÏ °ÍÀÌ°í 8080 Æ÷Æ®´Â TomcatÀÇ Å×½ºÆ® ÆäÀÌÁö°¡ º¸ÀÏ °ÍÀÌ´Ù. ÀÌÁ¦ µÎ ¼­¹öÀÇ ¿¬µ¿ ÀÛ¾÷À» ¿Ï·áÇÏ°í ³ª¸é 80Æ÷Æ®·Î Á¢¼ÓÇßÀ» ¶§ TomcatÀÇ Å×½ºÆ® ÆäÀÌÁö°¡ º¸ÀÌ°Ô µÈ´Ù.

 Apache¿Í TomcatÀ» ¿¬µ¿ÇÒ ¶§´Â mod_jk ¶ó´Â Tomcat Connector¸¦ »ç¿ëÇÑ´Ù. Tomcat Å×½ºÆ® ÆäÀÌÁö ÇÏ´Ü ¿ÞÂÊÀÇ Tomcat Connectors ¸µÅ©¸¦ ´­·¯º¸ÀÚ.


 ¸µÅ©¸¦ µû¶ó µé¾î°¡¸é ¾Æ·¡ ±×¸²°ú °°Àº ÆäÀÌÁö°¡ º¸ÀδÙ. Binary ¹èÆ÷ÀÇ ¸µÅ©¸¦ ´­·¯º¸¸é ¾Ë°ÚÁö¸¸ Binary ÇüÅÂÀÇ ¹èÆ÷´Â Windows¸¸ Áö¿øÇÑ´Ù. Áö±ÝÀº Amazon Linux¿¡ ¼³Ä¡ÇÒ °ÍÀ̹ǷΠSource ÇüÅ·Π¹Þ¾Æ¼­ ºôµåÇÒ °ÍÀÌ´Ù. tar.gz ÇüÅ·Π¹èÆ÷ÇÏ´Â ÆÄÀÏÀ» ¹Þµµ·Ï ÇÏÀÚ.


 ·ÎÄÿ¡ Source ÆÄÀÏÀ» ¹Þ¾ÒÀ¸¸é EC2 ÀνºÅϽº¿¡ º¹»çÇØ³Ö°í ºôµå¸¦ ÇØ¾ß ÇϹǷΠ¾Æ·¡ ¸í·ÉÀ¸·Î ÆÄÀÏÀ» ¼­¹ö·Î º¹»çÇØ ³Öµµ·Ï ÇÑ´Ù.

$ scp -i aws_keypair.pem tomcat-connectors-1.2.xx-src.tar.gz ec2-user@{Public IP}:~/


 º¹»ç°¡ µÇ¾úÀ¸¸é ÀÌÁ¦ SSH·Î EC2 ÀνºÅϽº¿¡ Á¢¼ÓÀ» Çϵµ·Ï ÇÏÀÚ. Á¢¼ÓÀÌ µÇ¾úÀ¸¸é ÀÚ½ÅÀÇ home Æú´õ¿¡ ¹Ù·Î À§¿¡¼­ º¹»çÇÑ ÆÄÀÏÀÌ ÀÖÀ» °ÍÀÌ´Ù. ¾Æ·¡ ¸í·ÉÀ¸·Î ¾ÐÃàÀ» Ç®¾î³õµµ·Ï ÇÑ´Ù.

$ tar xvfz tomcat-connectors-1.2.xx-src.tar.gz


 ÀÌÁ¦ mod_jk¸¦ ºôµåÇØ¾ß ÇÏÁö¸¸ Amazon Linux 2 AMI·Î »ý¼ºÇÑ ÀνºÅϽº¿¡´Â gcc ÆÐÅ°Áö°¡ ¼³Ä¡µÇ¾îÀÖÁö ¾Ê´Ù. mod_jk¸¦ ºôµåÇϴµ¥ ¹Ýµå½Ã ÇÊ¿äÇϹǷΠ¸ÕÀú gcc ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÑ´Ù. ¾Æ·¡ ¸í·ÉÀ¸·Î gcc ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.

$ sudo yum install gcc


 ±× ´ÙÀ½ mod_jk¸¦ ºôµåÇÏ·Á¸é httpd-devel ÆÐÅ°Áö°¡ ¼³Ä¡ µÇ¾îÀÖ¾î¾ß ÇÑ´Ù. ¸¸¾à ¼³Ä¡ÇÏÁö ¾Ê¾Ò´Ù¸é Áö³­ Æ÷½ºÆÃÀ» Âü°íÇÏ±æ ¹Ù¶õ´Ù. ¾Æ·¡ ¸í·ÉÀ¸·Î ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.

$ sudo yum install httpd-devel


 httpd-devel ÆÐÅ°Áö¸¦ ¼³Ä¡Çϸé apxs°¡ ¼³Ä¡µÈ´Ù. ´ÙÀ½ ¸í·ÉÀ¸·Î apxsÀÇ À§Ä¡¸¦ ¾Ë¾Æº¸ÀÚ.

$ which apxs
/usr/bin/apxs


 È­¸é¿¡ Ãâ·ÂµÈ apxsÀÇ À§Ä¡¸¦ Àß ±â¾ïÇÑ ÈÄ ¼Ò½º Æú´õ ¾ÈÀÇ native Æú´õ·Î À̵¿ÇÏ¿© ºôµå & ¼³Ä¡¸¦ Çغ¸µµ·Ï ÇÏÀÚ. ¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇϵµ·Ï ÇÑ´Ù.

$ cd tomcat-connectors-1.2.xx-src
$ cd native
$ ./configure --with-apxs=/usr/bin/apxs
$ make
$ sudo make install


 configure¸¦ ½ÇÇàÇÒ ¶§ apxsÀÇ À§Ä¡¸¦ Á¤È®È÷ ÁöÁ¤Çϵµ·Ï ÇÏ°í ¸¶Áö¸· make install ¸í·ÉÀº root ±ÇÇÑÀ¸·Î ½ÇÇàµÇ¾î¾ß Á¤»óÀûÀ¸·Î ¼³Ä¡°¡ µÇ¹Ç·Î ÁÖÀÇÇϵµ·Ï ÇÑ´Ù.

 º° ¹®Á¦°¡ ¾ø´Ù¸é mod_jk ¸ðµâÀÇ ¼³Ä¡´Â ¿Ï·á°¡ µÇ¾ú´Ù. ȨÆú´õ¿¡ ÀÖ´Â mod_jkÀÇ ¼Ò½º ÆÄÀϵéÀº ÀÌÁ¦ »èÁ¦Çصµ ¹«¹æÇÏ´Ù.

 ÀÌÁ¦ mod_jkÀÇ ¼³Ä¡°¡ ¿Ï·áµÇ¾úÀ¸´Ï Apache¿Í TomcatÀÇ ¼³Á¤À» ¼öÁ¤ÇÒ Â÷·ÊÀÌ´Ù. TomcatÂÊ ¼³Á¤À» ¸ÕÀú º¸µµ·Ï ÇÏ°Ú´Ù. TomcatÀÇ ±âº» ¼³Ä¡ »óÅ¿¡¼­ ÀÌ¹Ì AJP/1.3 ¿äûÀº 8009 Æ÷Æ®·Î ¹Þµµ·Ï µÇ¾î ÀÖÀ» °ÍÀÌ´Ù. /etc/tomcat/server.xml ÆÄÀÏÀ» ¿­¾î¼­ AJP/1.3 Æ÷·ÎÅäÄÝÀ» ó¸®ÇÏ´Â Connector ¼³Á¤ÀÌ µÇ¾îÀÖ´Â Áö È®ÀÎÀ» Çغ¸°í ¾ÈµÇ¾îÀÖÀ¸¸é ¼³Á¤ÇØ ÁÖµµ·Ï ÇÏÀÚ.

...
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectport="8443">
...


 Ãß°¡ÀûÀÎ ¼³Á¤ÀÌ µÇ¾îÀְųª ´Ù¸¥ ¼³Á¤ÀÌ ÇÊ¿äÇÑ °æ¿ì¶ó¸é À§ ¿¹¿Í ´Ù¸¦ ¼ö ÀÖ´Ù. ±×·¯ÇÑ °æ¿ì¶ó¸é Connector ¼³Á¤¿¡ ´ëÇؼ­´Â ¾î´À Á¤µµ Àß ¾Ë°í ÀÖÀ» °ÍÀ̶ó°í »ý°¢µÈ´Ù. À§ ¿¹´Â ¼³Ä¡ Á÷ÈÄÀÇ µðÆúÆ® »óÅÂÀ̹ǷΠÂü°íÇϱ⠹ٶõ´Ù.

 TomcatÂÊ ¼³Á¤ÀÌ È®ÀÎ ¹× ¼öÁ¤µÇ¾úÀ¸¸é ÀÌÁ¦ ApacheÂÊ ¼³Á¤À» º¸µµ·Ï ÇÏÀÚ. Apache ¼³Á¤ ÆÄÀÏÀÎ /etc/httpd/conf/httpd.confÀ» ¿­¾î¼­ ¾Æ·¡ DSO ¼³Á¤ ºÎºÐÀ» »ìÆ캸ÀÚ.

...

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
Include conf.modules.d/*.conf

...


 conf.modules.d Æú´õ¿¡ ÀÖ´Â ¸ðµç .conf ÆÄÀÏÀ» include ÇÏ°í ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. conf.modules.d Æú´õ¿¡ mod_jk¿ë .conf ÆÄÀÏÀ» ¸¸µé¾î¼­ ³Ö¾î ³õÀ¸¸é ¿©±â¼­ include °¡ µÉ °ÍÀ̶ó´Â °É ¿¹»óÇÒ ¼ö ÀÖ´Ù. ±×·¯¸é conf.modules.d Æú´õ·Î À̵¿ÇÏ¿© ÆÄÀÏ ¸ñ·ÏÀ» º¸ÀÚ. ¿©·¯ °³ÀÇ .conf ÆÄÀÏ°ú README ÆÄÀÏÀÌ ÀÖÀ¸¹Ç·Î README ÆÄÀÏÀ» Àо±â ¹Ù¶õ´Ù.

This directory holds configuration files for the Apache HTTP Server;
any files in this directory which have the ".conf" extension will be
processed as httpd configuration files.  This directory contains
configuration fragments necessary only to load modules.
Administrators should use the directory "/etc/httpd/conf.d" to modify
the configuration of httpd, or any modules.

Files are processed in alphanumeric order.


 ³»¿ëÀ» º¸¸é conf.modules.d Æú´õ¿¡ ¸ðµâ¿ë .conf ÆÄÀÏÀ» ³Ö¾î ³õÀ¸¸é µÈ´Ù´Â °Í°ú alphanumeric ¼ø¼­´ë·Î 󸮰¡ µÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. mod_jk´Â µüÈ÷ ·Îµù¼ø¼­°¡ Áß¿äÇÏÁö´Â ¾ÊÁö¸¸ ¾ðÁ¨°¡ ÇÊ¿äÇÏ´Ù¸é ÆÄÀÏ À̸§À» Àû´çÈ÷ Á¶ÀýÇؼ­ ¼ø¼­¸¦ ¹Ù²Ü ¼ö ÀÖ´Ù´Â °Í Á¤µµ¸¸ ¾Ë¾ÆµÎµµ·Ï ÇÏÀÚ. ½ÇÁ¦·Î conf.modules.d Æú´õÀÇ ÆÄÀÏ ¸ñ·ÏÀ» º¸¸é "00-", "01-", "10-" µîÀÇ Á¢µÎ»ç¸¦ »ç¿ëÇؼ­ ¼ø¼­¸¦ ÁöÁ¤ÇÏ°í ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¿ì¸®´Â ¼ø¼­°¡ »ó°üÀÌ ¾øÀ¸¹Ç·Î ±×³É ¾Ë¾Æº¸±â ½±µµ·Ï "mod_jk.conf" ¶ó°í ¸í¸íÇÒ °ÍÀÌ´Ù.

 ±×·³ conf.modules.d Æú´õ¿¡ mod_jk.conf ÆÄÀÏÀ» ¸¸µé¾î¼­ ¾Æ·¡ ³»¿ëÀ» ³Öµµ·Ï ÇÏÀÚ.

# Load mod_jk module
LoadModule jk_module modules/mod_jk.so

# Where to find workers.properties
JkWorkersFile conf/workers.properties

# Where to put jk shared memory file
JkShmFile run/mod_jk.shm

# Where to put jk logs
JkLogFile logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Send all requests to worker named ajp13
JkMount /* ajp13worker


 ÁÖ¼®À» º¸¸é ´ëÃæ ¾î¶² ³»¿ëÀÎÁö ¾Ë ¼ö ÀÖ°ÚÁö¸¸ ÇÑ °¡Áö ¤°í ³Ñ¾î°¡¾ß ÇÒ °Ô ÀÖ´Ù. JkShmFileÀÇ °ªÀ¸·Î run/mod_jk.shmÀÌ ¾Æ´Ï¶ó logs/mod_jk.shmÀ» ¼³Á¤ÇÏ´Â °æ¿ì°¡ ¸¹Àºµ¥ logs/´Â selinux°¡ È°¼ºÈ­µÈ »óÅ¿¡¼­´Â shmÆÄÀÏÀ» accessÇÒ ¼ö ¾ø±â ¶§¹®¿¡ Apache°¡ ½ÃÀÛµÉ ¶§ ¿¡·¯°¡ ¹ß»ýÇÏ¸ç ½ÃÀÛµÇÁö ¾Ê´Â´Ù. ±×·¡¼­ ¹Ýµå½Ã run/mod_jk.shmÀ¸·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ±×¸®°í JkWorkersFile, JkMount¸¸ °£´ÜÈ÷ µ¡ºÙÀÌÀÚ¸é JkWorkersFileÀº ApacheÀÇ worker ¼³Á¤ ÆÄÀÏÀ» ÁöÁ¤ÇÑ °ÍÀε¥ ¾ÆÁ÷ ÆÄÀÏÀ» ¸¸µéÁö´Â ¾Ê¾ÒÀ¸¹Ç·Î ¾Æ·¡·Î °è¼Ó ÁøÇàÇϸ鼭 ¸¸µé ¿¹Á¤ÀÌ´Ù. ±×¸®°í JkMount´Â ¸ðµç ¿äûÀ» ajp13worker·Î º¸³½´Ù´Â °ÍÀε¥ ajp13workerµµ ¿ª½Ã worker ¼³Á¤ ÆÄÀÏÀÇ ³»¿ë¿¡¼­ ¼³Á¤ÇÒ °ÍÀ̹ǷΠÂ÷Â÷ ¾Ë°ÔµÉ °ÍÀÌ´Ù.

 ÀÌÁ¦ workers.properties ÆÄÀÏÀ» ¸¸µé Â÷·ÊÀÌ´Ù. À§¿¡¼­ ¼³¸íÇÑ mod_jk.conf ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÑ ´ë·Î  /etc/httpd/conf Æú´õ·Î °¡¼­ workers.properties ÆÄÀÏÀ» ¸¸µé°í ¾Æ·¡ ³»¿ëÀ» ³Öµµ·Ï ÇÑ´Ù.

# the list of workers
worker.list=ajp13worker

worker.ajp13worker.type=ajp13
worker.ajp13worker.host=localhost
worker.ajp13worker.port=8009
worker.ajp13worker.connection_pool_timeout=600
worker.ajp13worker.socket_keepalive=1


 mod_jk.conf ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ JkMount¿¡¼­ ajp13worker ¶ó°í ¼³Á¤Çß¾ú´Âµ¥ ±× °ªÀÌ ¹Ù·Î ¿©±â¼­ ±½Àº ±Û¾¾·Î Ç¥½ÃÇÑ °ªÀÌ´Ù. °¢ ÇʵåÀÇ À̸§¸¸ ºÁµµ ¾î¶² ¿ëµµÀÎÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 ÀÌÁ¦ ¸ðµç ¼³Á¤ÀÌ ³¡³µ´Ù. ¾Æ·¡ ¸í·ÉÀ¸·Î Apache¸¦ Àç½ÃÀÛÇÏÀÚ.

$ sudo service httpd restart


 Àç½ÃÀÛÀÌ µÇ°í³ª¸é ºê¶ó¿ìÀú¸¦ ¶ç¿ö¼­ ÁÖ¼Òâ¿¡ EC2 ÀνºÅϽºÀÇ Public IP¸¸ (Æ÷Æ®´Â ¾øÀÌ) ³Ö°í ÆäÀÌÁö¸¦ ·ÎµùÇغ¸ÀÚ. Æ÷Æ®¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î ±âº» Æ÷Æ®ÀÎ 80 Æ÷Æ®·Î ¿äûÀ» ÇßÀ» °ÍÀÌ´Ù. ¿©±â¼­ ºê¶ó¿ìÀú¿¡´Â ApacheÀÇ Å×½ºÆ® ÆäÀÌÁö°¡ ¾Æ´Ï¶ó TomcatÀÇ Å×½ºÆ® À¥¾Û ÆäÀÌÁö°¡ º¸¿©¾ß ÇÑ´Ù.

 TomcatÀÇ Å×½ºÆ® À¥¾Û ÆäÀÌÁö°¡ Á¤»óÀûÀ¸·Î ·ÎµùÀÌ µÇ¾ú´Ù¸é ±âº»ÀûÀÎ ¿¬µ¿Àº ³¡³µ´Ù. ÀÌÁ¦ Ãß°¡·Î ÇÑ °¡Áö¸¸ ´õ ¼³Á¤Çϵµ·Ï ÇÏÀÚ. mod_jk.conf ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¶§ JkMount¿¡ ´ëÇؼ­ °£´ÜÈ÷ ¾ð±ÞÇÏ°í Áö³ª°¬¾ú´Âµ¥ ¿©±â¼­ Á» ´õ »ó¼¼ÇÏ°Ô ¼³¸íÀ» ÇÏ·Á°í ÇÑ´Ù.

 ÀϹÝÀûÀ¸·Î Apache¿Í TomcatÀ» ¿¬µ¿ÇÒ ¶§ À̹ÌÁö ÆÄÀÏ °°Àº °ÍµéÀº Tomcat±îÁö ¿äûÀÌ Àü´ÞµÉ ÇÊ¿ä°¡ ¾ø°í ¹Ù·Î Apache¿¡¼­ 󸮰¡ °¡´ÉÇÏ´Ù. ÀÌ·± Á¤Àû(static)ÀÎ ¸®¼Ò½ºµéÀº ´ç¿¬È÷ Apache ¼­¹ö°¡ ´õ ºü¸£°í È¿À²ÀûÀ¸·Î ó¸®ÇÒ ¼ö Àֱ⠶§¹®¿¡ TomcatÀ¸·Î Àü´ÞµÇÁö ¾Ê´Â°Ô ´õ ºü¸£°í È¿À²ÀûÀÌ´Ù. ÇÏÁö¸¸ mod_jk.conf ÆÄÀÏÀ» ¼³Á¤ÇÒ ¶§ JkMount ¼³Á¤¿¡¼­ ¸ðµç ¿äûÀ» ajp13worker·Î º¸³»µµ·Ï Ç߱⠶§¹®¿¡ Áö±ÝÀº ¸ðµç ¿äûÀÌ TomcatÀ¸·Î Àü´ÞµÈ´Ù. ƯÁ¤ ÆÄÀÏ¿¡ ´ëÇÑ ¿äûÀ» TomcatÀ¸·Î Àü´ÞÇÏÁö ¾Ê°í Apache¿¡¼­ Á÷Á¢ ó¸®ÇÏ°í ½Í´Ù¸é ¾î¶»°Ô ÇؾßÇÒ±î? ¹æ¹ýÀº °£´ÜÇÏ´Ù. ¾Æ·¡¿Í °°ÀÌ mod_jk.conf ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ JkUnMount ¼³Á¤À» Ãß°¡ÇÔÀ¸·Î½á ƯÁ¤ ÆÐÅÏÀÇ urlÀº TomcatÀ¸·Î Àü´ÞÇÏÁö ¾Ê°í ¹Ù·Î Apache¿¡¼­ 󸮰¡ µÇµµ·Ï ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

...

# Send all requests to worker named ajp13worker
JkMount /* ajp13worker

# do not send image requests to ajp13worker
JkUnMount /*.gif ajp13worker
JkUnMount /*.jpg ajp13worker
JkUnMount /*.png ajp13worker
JkUnMount /*.svg ajp13worker


 ÁüÀÛÇÑ ´ë·Î .gif, .jpg, .png, .svg ÆÄÀϵéÀº ¸ðµÎ TomcatÀ¸·Î ¿äûÇÏÁö ¾Êµµ·Ï ¼³Á¤ÇÑ °ÍÀÌ´Ù. ÀÌ·¸°Ô ¼³Á¤À» ÇØ ³õ°í ºê¶ó¿ìÀúÀÇ Ä³½¬¸¦ ¸ðµÎ »èÁ¦ÇÑ ÈÄ¿¡ ¿äûÀ» Çغ¸¸é À̹ÌÁö ÆÄÀÏ ¿äûµéÀÌ TomcatÀ¸·Î Àü´ÞµÇÁö ¾Ê°ÔµÈ´Ù. JkUnMount ¼³Á¤ Àü°ú ÈÄÀÇ TomcatÀÇ access ·Î±×¸¦ »ìÆ캸¸é ¾Æ·¡¿Í °°ÀÌ ´Ù¸£°Ô ³ª¿Â´Ù´Â °É ¾Ë ¼ö ÀÖ´Ù. Âü°í·Î Å×½ºÆ® Àü¿¡´Â Ç×»ó ij½¬¸¦ »èÁ¦ÇØ¾ß Á¤È®È÷ ¾Ë ¼ö ÀÖ´Ù.

  • JkUnMount ¼³Á¤ Àü


  • JkUnMount ¼³Á¤ ÈÄ


 JkUnMount¸¦ ¼³Á¤Çϱâ Àü¿¡´Â .png, .svg ÆÄÀϵ鿡 ´ëÇÑ ¿äûÀÌ TomcatÀ¸·Î ¸ðµÎ µé¾î¿ÔÁö¸¸ ¼³Á¤ ÈÄ¿¡´Â .png, .svg ÆÄÀϵ鿡 ´ëÇÑ ¿äûÀº ¸ðµÎ »ç¶óÁ³À½À» ¾Ë ¼ö ÀÖ´Ù. ÀÚ ±×·¸´Ù¸é ÆäÀÌÁö°¡ Á¤»óÀûÀ¸·Î Ç¥½Ã°¡ µÇ¾úÀ»±î? »ç½Ç ¿äûÀÌ TomcatÀ¸·Î Àü´ÞµÇÁö´Â ¾Ê¾ÒÁö¸¸ Apache¿¡¼­µµ Á¦´ë·Î ó¸®ÇÏÁö ¸øÇÏ°í Àֱ⠶§¹®¿¡ ÆäÀÌÁöÀÇ À̹ÌÁöµéÀº ¸ðµÎ Ç¥½ÃµÇÁö ¾Ê°í ÀÖ´Ù. ¾Æ·¡ µÎ ±×¸²¿¡¼­ »¡°£»ö ¹Ú½º ºÎºÐÀ» ºñ±³ÇØ º¸¸é JkUnMount°¡ ¼³Á¤µÈ ÈÄ¿¡ ·ÎµùµÈ ÆäÀÌÁö´Â ·Î°í³ª ¹è°æ À̹ÌÁö°¡ ¸ðµÎ Ç¥½ÃµÇÁö ¾Ê°í ÀÖ´Ù. (Á¤È®ÇÑ Å×½ºÆ®¸¦ À§Çؼ­ Ç×»ó ij½¬¸¦ »èÁ¦ÇÏ°í Å×½ºÆ®ÇÏ±æ ¹Ù¶õ´Ù.)

 


 
<80Æ÷Æ® ¿äû>                                                     <8080Æ÷Æ® ¿äû>


 ¿ÞÂÊÀÇ À̹ÌÁöµéÀº 80Æ÷Æ®(Apache)¸¦ ÅëÇؼ­ ¿äûÇÑ °ÍÀÌ°í ¿À¸¥ÂÊÀÇ À̹ÌÁöµéÀº 8080Æ÷Æ®(Tomcat)·Î Á÷Á¢ ¿äûÇÑ °ÍÀÌ´Ù. ÁÖ¼Òâ¿¡ ÀÔ·ÂµÈ ³»¿ëÀ» º¸¸é ¾Ë°ÚÁö¸¸ À§ ÂÊ ÆäÀÌÁö´Â Tomcat À¥¾ÛÀÇ ¸ÞÀÎ ÆäÀÌÁöÀÌ°í ¾Æ·¡ ÂÊÀÇ À̹ÌÁö´Â ¸ÞÀÎ ÆäÀÌÁö¿¡¼­ Manager App ¹öÆ°À» Ŭ¸¯ÇÏ°í µé¾î°¡¸é ³ª¿À´Â ÆäÀÌÁöÀÌ´Ù. 80 Æ÷Æ®¸¦ ÅëÇؼ­ ¿äûÇÑ ÆäÀÌÁöµéÀº À̹ÌÁö°¡ Ç¥½ÃµÇÁö ¾Ê°í ÀÖ´Ù.

 ÀÌ·¸°Ô À̹ÌÁöµéÀÌ Ç¥½ÃµÇÁö ¾Ê´Â ÀÌÀ¯´Â ¿äûµÈ À̹ÌÁöµéÀÇ ½ÇÁ¦ °æ·Î°¡ ApacheÀÇ DocumentRoot°¡ ¾Æ´Ñ TomcatÀÇ webapps °æ·Î¾È¿¡ À§Ä¡ÇÏ°í Àֱ⠶§¹®¿¡ Apache¿¡¼­ ¿äûµÈ À̹ÌÁö ÆÄÀϵéÀ» ãÀ» ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. ÇöÀç ApacheÀÇ DocumentRoot´Â "/var/www/html"ÀÌ°í TomcatÀÇ webapps °æ·Î´Â "/var/lib/tomcat/webapps"À̱⠶§¹®¿¡ TomcatÀÇ °ü¸®¿ë À¥¾Û ÆäÀÌÁöÀÇ À̹ÌÁöµéÀ» DocumentRoot¿¡¼­ ãÀ¸·Á°í ½ÃµµÇÏ´Ù°¡ 404 󸮸¦ Çعö¸®´Â °ÍÀÌ´Ù.

 ±×·¸´Ù¸é ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­´Â ¾î¶»°Ô ÇؾßÇÒ±î? ÀÌ ¹®Á¦¿¡ ´ëÇÑ ÇØ°áÃ¥Àº µÎ °¡Áö°¡ ÀÖ´Ù. ÁüÀÛÇÑ´ë·Î °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ApacheÀÇ DocumentRoot¸¦ tomcatÀÇ webapps °æ·Î·Î ¹Ù²ãÁÖ´Â °ÍÀÌ´Ù. ApacheÀÇ ¼³Á¤ ÆÄÀÏÀÎ /etc/httpd/conf/httpd.conf ÆÄÀÏÀ» ¿­¾î¼­ ¾Æ·¡ ±×¸²°ú °°ÀÌ "/var/www/html"·Î ¼³Á¤µÈ ºÎºÐÀ» "/var/lib/tomcat/webapps"·Î ¹Ù²Ù°í ºê¶ó¿ìÀú¿¡¼­ ij½¬¸¦ »èÁ¦ ÈÄ ´Ù½Ã ½ÃµµÇغ¸µµ·Ï ÇÏÀÚ.

# httpd.conf

...
DocumentRoot "/var/lib/tomcat/webapps"

...

<Directory "/var/lib/tomcat/webapps">
  ...
</Directory>
...


 À§¿Í °°ÀÌ ¼öÁ¤ ÈÄ ¼­¹ö¸¦ Àç½ÃÀÛÇÏ°í ºê¶ó¿ìÀúÀÇ Ä³½¬¸¦ »èÁ¦ÇÑ ÈÄ ÆäÀÌÁö¸¦ ´Ù½Ã ·ÎµùÇغ¸¸é ¾Æ·¡¿Í °°ÀÌ ³ª¿Â´Ù. 

 


 
<80 Æ÷Æ®>                                                         <8080 Æ÷Æ®>


 ¸ðµç À̹ÌÁö°¡ Á¤»óÀûÀ¸·Î Ç¥½ÃµÉ °ÍÀ̶ó´Â ¿¹»ó°ú ´Þ¸® ¹º°¡ À߸øµÈ °Í °°´Ù. 80Æ÷Æ®¸¦ ÅëÇؼ­ ¿äûµÈ ¸ÞÀÎ ÆäÀÌÁöÀÇ À̹ÌÁö°¡ ¿©ÀüÈ÷ Á¤»óÀûÀ¸·Î Ç¥½ÃµÇÁö ¾Ê°í ÀÖ´Ù. Manager AppÀ̳ª Server Status µîÀÇ À¥¾Û¿¡¼­ Ç¥½ÃµÇ´Â À̹ÌÁö´Â ¸ðµÎ Àß Ç¥½Ã°¡ µÇ´Âµ¥ ¸ÞÀÎ ÆäÀÌÁö¿ë À¥¾ÛÀÇ À̹ÌÁöµéÀº ¸ðµÎ Ç¥½Ã°¡ µÇÁö ¾Ê´Â´Ù. Á» ´õ ÀÚ¼¼È÷ °üÂûÇغ¸¸é À̹ÌÁöÀÇ ¿äû URL¿¡¼­ Path°¡ root(/)ÀÎ À̹ÌÁöµéÀº Ç¥½Ã°¡ µÇÁö ¾Ê´Â´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. Manager AppÀÇ °æ¿ì /manager °æ·Î¸¦ ÀÌ¿ëÇÏ°í Àֱ⠶§¹®¿¡ ¸ðµç À̹ÌÁö°¡ Á¤»óÀûÀ¸·Î Ç¥½Ã°¡ µÈ´Ù. ÀÌ·± Çö»óÀÌ ³ª¿À´Â ÀÌÀ¯´Â TomcatÀÇ webapps Æú´õÀÇ ³»¿ëÀ» º¸¸é ¾Ë ¼ö ÀÖ´Ù.


 À§ ±×¸²À» º¸¸é webapps Æú´õ ¾È¿¡´Â ROOT¶ó´Â Æú´õ°¡ º¸ÀδÙ. TomcatÀº ±âº»ÀûÀ¸·Î À¥¾ÛÀÇ context °æ·Î°¡ rootÀÎ °æ¿ì¿¡ webapps Æú´õ ¾Æ·¡ "ROOT" Æú´õ¸¦ µÎ°í ±× °æ·Î¸¦ root·Î »ç¿ëÇÑ´Ù. Áï webapps Æú´õ ¾È¿¡ ÀÖ¾î¾ßÇÒ À̹ÌÁöµéÀÌ webapps/ROOT ¾È¿¡ Àֱ⠶§¹®¿¡ Apache¿¡¼­´Â ãÁö ¸øÇÏ°í 404 󸮸¦ Çعö¸®´Â °ÍÀÌ´Ù. webapps/ROOT ¾È¿¡ ÀÖ´Â À̹ÌÁö ÆÄÀϵéÀ» webapps Æú´õ·Î ¿Å±â¸é ¸ðµÎ Á¤»óÀûÀ¸·Î Ãâ·ÂµÉ °ÍÀÌ´Ù.

 root °æ·Î¿¡ ´ëÇÑ ¹®Á¦´Â Apache ¼³Á¤À» º¯°æÇÏ´Â ¹æ¹ýÀ¸·Î´Â ÇØ°áÃ¥ÀÌ ¾ø´Ù. ÇÏÁö¸¸ ´ëºÎºÐÀÇ °æ¿ì À̹ÌÁö°°Àº Á¤ÀûÀÎ ¸®¼Ò½º¸¦ root¿¡ ¸ð¾Æ³õ°í °ü¸®ÇÏ´Â °æ¿ì´Â ¾øÀ» °ÍÀÌ´Ù. ´ëºÎºÐ image, css, js µîÀÇ ÇÏÀ§ Æú´õ¸¦ µÎ°í µû·Î ¸ð¾Æ¼­ °ü¸®Çϰųª ÇϳªÀÇ webappÀ» À§ÇÑ ÇÏÀ§Æú´õ¸¦ µÎ°í ±× ¾È¿¡ °¢Á¾ ¸®¼Ò½ºµéµµ °°ÀÌ °ü¸®Çϱ⠶§¹®¿¡ ÀÌ ¹®Á¦´Â ´ëºÎºÐ ÀÚ¿¬½º·´°Ô ÇÇÇØ°¥ ¼ö ÀÖ´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ÀÌ·± ¹®Á¦°¡ ÀÖÀ½À» Àß ±â¾ïµÎ°í ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇÒ ¶§ ÀÌ ¹®Á¦¸¦ °¨¾ÈÇؼ­ °¢Á¾ °æ·Î¸¦ ¼³°èÇÏ´Â °Ô ÁÁÀ» °ÍÀÌ´Ù.

 ±×·³ ÀÌÁ¦ ApacheÀÇ DocumentRoot¸¦ ÀçÁ¤ÀÇÇÏ´Â ¹æ¹ý¸»°í ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ´Â µÎ ¹ø° ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ. µÎ ¹ø° ¹æ¹ýÀº mod_jk ¼³Á¤¿¡¼­ JkAutoAlias¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀÌ´Ù. ApacheÀÇ httpd.conf ÆÄÀÏÀ» ¿­¾î¼­ DocumentRoot ¼³Á¤(/var/www/html)À» ´Ù½Ã ¿ø·¡´ë·Î º¹±¸ÇÏ°í mod_jkÀÇ ¼³Á¤ ÆÄÀÏ(mod_jk.conf)ÀÇ ¸¶Áö¸·¿¡ ¾Æ·¡ ³»¿ëÀ» Ãß°¡Çϵµ·Ï ÇÏÀÚ.

...

# Automatically Alias webapp context directories into the Apache document space.
JkAutoAlias /var/lib/tomcat/webapps

<Directory "/var/lib/tomcat/webapps">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>


 Ãß°¡µÈ ³»¿ëÀ» °£´ÜÈ÷ ¼³¸íÇϵµ·Ï ÇÏ°Ú´Ù. JkAutoAlias Áö½ÃÀÚ´Â ÁöÁ¤µÈ webapps °æ·Î¸¦ ApacheÀÇ Document °ø°£À¸·Î ÀνÄÇϵµ·Ï ÇÏ´Â ±â´ÉÀ» ÇÑ´Ù. ±×·¡¼­ JkAutoAlias¿¡ Tomcat webapps Æú´õ¸¦ ÁöÁ¤Çϸé TomcatÀ¸·Î Àü´ÞµÇÁö ¾Ê´Â ¿äûµéÀ» ApacheÀÇ DocumentRoot°¡ ¾Æ´Ñ TomcatÀÇ webapps Æú´õ¿¡¼­µµ ã°ÔµÇ´Â °ÍÀÌ´Ù.

 ±×¸®°í <Directory> ¼³Á¤À» Ãß°¡ÇÏ´Â ÀÌÀ¯´Â ApacheÀÇ httpd.conf ÆÄÀÏ¿¡¼­ DocumentRoot¿¡ ÁöÁ¤µÈ Æú´õ¸¦ Á¦¿ÜÇÏ°í ¸ðµç ÆÄÀÏ ½Ã½ºÅÛÀ» Á¢±ÙÇÏÁö ¸øÇϵµ·Ï ¼³Á¤ÇÏ°í Àֱ⠶§¹®ÀÌ´Ù. ÀÌ ¼³Á¤À» Ãß°¡ÇÏÁö ¾ÊÀ¸¸é JkAutoAlias¸¦ ÁöÁ¤Çß´Ù ÇÏ´õ¶óµµ 403 Forbidden ¿¡·¯¸¦ ¹ÝȯÇÏ°Ô µÈ´Ù. ÀÎÅͳÝÀÇ ¸¹Àº ±ÛµéÀ» º¸¸é JkAutoAlias¸¸ ÁöÁ¤ÇÏ°í <Directory> ¼³Á¤¿¡ ´ëÇÑ ¾ð±ÞÀº ¾ø´Â °æ¿ì°¡ ´ëºÎºÐÀε¥ ¹Ýµå½Ã <Directory> ¼³Á¤À» Ãß°¡ÇØÁÖ¾î¾ß Á¤»óµ¿ÀÛÇϹǷΠ²À Ãß°¡ÇØÁÖ±æ ¹Ù¶õ´Ù. ÀÏ´Ü <Directory> ¼³Á¤ ¿É¼ÇÀº DocumentRoot¿ë ¼³Á¤°ú °°Àº °ªÀ¸·Î ÇØÁÖ¸é µÈ´Ù. ³ªÁß¿¡ ¼öÁ¤ÀÌ ÇÊ¿äÇÏ´Ù¸é ±× ¶§ ¸ÂÃç¼­ ¹Ù²ãÁÖ¸é µÈ´Ù.

 ÀÛ¾÷À» ¿Ï·áÇßÀ¸¸é ÀÌÁ¦ ¾ÆÆÄÄ¡¸¦ Àç½ÃÀÛÇÏ°í ´Ù½Ã ºê¶ó¿ìÀúÀÇ Ä³½¬¸¦ ºñ¿ì°í ´Ù½Ã ÆäÀÌÁöµéÀ» ¿äûÇØ º¸µµ·Ï ÇÏÀÚ. ÆäÀÌÁöÀÇ À̹ÌÁö°¡ ¸ðµÎ Àß Ç¥½ÃµÇ´Â°¡? ¾Æ¸¶µµ DocumentRoot¸¦ ÀçÁ¤ÀÇÇÏ´Â ¹æ¹ý°ú ¶È°°ÀÌ ¸ÞÀÎ ÆäÀÌÁöÀÇ À̹ÌÁöµéÀº Ç¥½ÃµÇÁö ¾Ê¾ÒÀ» °ÍÀÌ´Ù. È­¸é ĸÃÄ´Â ¾îÂ÷ÇÇ À§ÀÇ À̹ÌÁöµé°ú ¶È°°±â ¶§¹®¿¡ ÇÏÁö ¾Ê¾Ò´Ù.

 root¿¡ ÀÖ´Â À̹ÌÁö ¿äûµéÀ» ó¸®ÇÏÁö ¸øÇÏ°í 404¸¦ ¸®ÅÏÇÏ´Â ¹®Á¦°¡ ¿©ÀüÈ÷ Á¸ÀçÇÏÁö¸¸ ¿øÀÎÀº ¾à°£ ´Ù¸£´Ù. ÀÌ ¹æ¹ýÀ¸·Î´Â ù ¹ø° ¹æ¹ý°ú´Â ´Þ¸® webapps/ROOT¿¡ ÀÖ´Â À̹ÌÁö¸¦ webapps Æú´õ·Î ¿Å°Ü³õ¾Æµµ À̹ÌÁö¸¦ ãÁö ¸øÇÑ´Ù. ÇØ°á ¹æ¹ýÀº webapps/ROOT¿¡ ÀÖ´Â À̹ÌÁöµéÀ» DocumentRoot(/var/www/html)·Î ¿Å°Ü³õ´Â °ÍÀÌ´Ù. root¿¡ ÀÖ´Â ¸®¼Ò½º¸¦ ¿äûÇϸé DocumentRoot¸¸ Ž»öÀ» ÇÏ°í webapps Æú´õ´Â Ž»öÇÏÁö ¾Ê±â ¶§¹®¿¡ ³ª¿À´Â Çö»óÀε¥ ÀÌ°ÍÀÌ ÀǵµµÈ °ÍÀÎÁö ¹ö±×ÀÎÁö´Â ¸ð¸£°Ú´Ù. ÇÏÁö¸¸ À̰͵µ ù ¹ø° ¹æ¹ý°ú ¸¶Âù°¡Áö ÀÌÀ¯·Î ÀÚ¿¬½º·´°Ô ÇÇÇØ°¥ ¼ö ÀÖ´Â ¹®Á¦ÀÌ´Ù.

 ÀÌ ¹æ¹ýÀº ApacheÀÇ ¿ø·¡ DocumentRoot ¼³Á¤À» À¯ÁöÇϸ鼭 mod_jk¸¦ ÅëÇÏ´Â ¿äû¿¡ ´ëÇؼ­¸¸ TomcatÀÇ webapps Æú´õ¸¦ ÀÌ¿ëÇÏ´Â ¼³Á¤ÀÌ °¡´ÉÇϱ⠶§¹®¿¡ ApacheÀÇ DocumentRoot¸¦ Á÷Á¢ º¯°æÇÏ´Â ¹æ¹ýº¸´Ù´Â ´õ ¼¼·ÃµÈ ¹æ¹ýÀ̸ç ÇÊÀÚ°¡ ¼±È£ÇÏ´Â ¹æ¹ýÀÌ´Ù.

 µ¶Àںе鲲¼­ ¿©±â¼­ ¼³¸íÇÑ ÀÏ·ÃÀÇ ¹®Á¦Á¡°ú ¿øÀÎ ¹× ÇØ°á¹æ¹ý¿¡ ´ëÇؼ­ Á¦´ë·Î ÀÌÇØÇß´Ù¸é ¾î¶² ½ÄÀ¸·Î ¼³Á¤À» Çϵç ÀûÀýÇÑ ÇعýÀ» ¸¶·ÃÇÒ ¼ö ÀÖÀ» °ÍÀ¸·Î »ý°¢µÈ´Ù. ÇÏÁö¸¸ ½É°¢ÇÏ°Ô °í¹ÎÇØ¾ß ÇÒ °ÍÀÌ Çϳª ÀÖ´Ù. Á¤Àû ¸®¼Ò½ºµé¸¸ Apache¿¡°Ô ¼­ºñ½º¸¦ Çϵµ·Ï ¼³Á¤ÇÏ´Â °Ç ½ÇÁ¦ Àû¿ëÀ» ´Ù½Ã »ý°¢ÇغÁ¾ß ÇÒ Á¤µµ·Ï ±î´Ù·Î¿î ÀÛ¾÷µéÀ» ¾ß±â½ÃŲ´Ù. Á÷Á¢ Çغ¸¸é ¾Ë°ÚÁö¸¸ ³» °æÇè»óÀ¸·Î´Â War ÆÄÀÏ¿¡ Æ÷ÇÔµÈ À̹ÌÁö °°Àº Á¤Àû ¸®¼Ò½ºµéÀ» µû·Î º¹»çÇؼ­ ÀûÀýÇÑ À§Ä¡·Î ¿Å±â´Â ÀÛ¾÷ÀÌ °ÅÀÇ Ç×»ó ÇÊ¿äÇß´Ù. ¹°·Ð ¼Ò±Ô¸ðÀÇ ÇÁ·ÎÁ§Æ®¿¡¼­´Â ±×·¸Áö ¾ÊÀ» ¼öµµ ÀÖÁö¸¸ ¾ïÁö·Î ¸ÂÃß´Ù º¸¸é ¶Ç ´Ù¸¥ Á¦¾à »çÇ×µéÀÌ »ý±â°Ô µÇ°í °á±¹ ±×³É Tomcat¿¡¼­ ¸ðµÎ ó¸®Çϵµ·Ï ÇÏ´Â °Ô ´äÀ̶ó´Â »ý°¢À» ÇÏ°Ô µÈ´Ù. °³¹ßÀÌ ¿Ï·áµÇ¾î ´õ ÀÌ»óÀÇ ¹èÆ÷°¡ ¾ø´Ù¸é ¸ð¸¦±î ¹èÆ÷ÇÒ ¶§ ¸¶´Ù ¼ÕÀÌ ¸¹ÀÌ °¡°Ô µÇ°í À¯Áöº¸¼öÇÏ´Â µ¿¾È ½Å°æ¾µ°Ô ¸¹¾ÆÁ®¼­ À¯Áöº¸¼ö Àü´ã ÀηÂÀÌ »ý°Ü¾ß ÇÒ Á¤µµ·Î ÇÇ°ïÇÑ ÇÁ·ÎÁ§Æ®°¡ µÉ °ÍÀÌ´Ù. Apache¿Í TomcatÀÌ ¹°¸®ÀûÀ¸·Î ºÐ¸®µÇ¾î ´Ù¸¥ Àåºñ¿¡ ¼³Ä¡°¡ µÇ´Â ȯ°æÀ̶ó¸é ´õ ¸»ÇÒ °Íµµ ¾øÀÌ Á¤¸» ÇÇ°ïÇØÁø´Ù. ¾î¶² °Ô ´õ ³ªÀº ¼±ÅÃÀÎÁö´Â ¿©·¯ ºÐÀÇ ÆÇ´Ü¿¡ ¸Ã±âµµ·Ï ÇÏ°Ú´Ù.