ÃֽŠ°Ô½Ã±Û(OS/WAS)
2018.07.30 / 11:23

[Ubuntu] ¾ÆÆÄÄ¡(Apache) ¼³Ä¡ ¹× ÅèĹ(Tomcat8) ¿¬µ¿

summerman
Ãßõ ¼ö 157

¾ÆÆÄÄ¡¿Í ÅèĹÀ» ¿¬µ¿ÇÏ´Â ÀÌÀ¯´Â?



ÅèĹÀº WASÀÌÁö¸¸ Web ¼­¹öÀÇ ±â´Éµµ °®°í ÀÖ´Ù. ±×·¯³ª ÅèĹÀÇ Web ¼­¹ö ±â´ÉÀº ¾ÆÆÄÄ¡º¸´Ù ó¸® ¼Óµµ°¡ ´À¸®±â ¶§¹®¿¡ Á¤ÀûÀÎ ÆäÀÌÁö´Â ¾ÆÆÄÄ¡°¡ ó¸®ÇÏ°í, µ¿ÀûÀÎ ÆäÀÌÁö´Â ÅèĹÀÌ Ã³¸®Çϵµ·Ï ÇÑ´Ù. ÀÌ·¸°Ô ÇϹǷΠºÎÇϸ¦ ºÐ»ê½Ãų ¼ö ÀÖ´Ù.




¿ìºÐÅõ ¼­¹ö¿¡ ¾ÆÆÄÄ¡(Apache) ¼³Ä¡Çϱâ



¼³Ä¡ Àü ÆÐÅ°Áö ¾÷µ¥ÀÌÆ®¸¦ ¸ÕÀú ÇÑ´Ù. ±×¸®°í ¾ÆÆÄÄ¡¸¦ ¼³Ä¡ÇÑ´Ù.


[mgt@localserver: ~$sudo apt-get update
[mgt@localserver: ~$sudo apt-get install apache2




¾ÆÆÄÄ¡ ¼³Ä¡´Â Á¤¸» °£´ÜÇÏ´Ù. ¼³Ä¡°¡ µÇ¾úÀ¸¸é È®ÀÎÀ» Çغ¸ÀÚ.


[mgt@localserver: ~$] apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
Server built:   2017-07-27T14:34:01



[mgt@localserver: ~$sudo netstat -ntlp | grep apache2
tcp6       0      0 :::80         :::*          LISTEN      2260/apache2




´ÙÀ½À¸·Î ¾ÆÆÄÄ¡ Æ÷Æ®·Î Á¢¼ÓÇÒ ¼ö ÀÖµµ·Ï ¹æÈ­º®¿¡ µî·ÏÀ» ÇÑ´Ù. (80Àº ¾ÆÆÄÄ¡ÀÇ ±âº» Æ÷Æ®ÀÌ´Ù.)


[mgt@localserver: ~$sudo ufw allow 80/tcp




±×·¯¸é ¾ÆÆÄÄ¡¸¦ ½ÇÇàÇØ º¸ÀÚ.


[mgt@localserver: ~$sudo /etc/init.d/apache2 start
[ ok ] Starting apache2 (via systemctl): apache2.service.
 
¶Ç´Â
 
[mgt@localserver: ~$sudo service apache2 start




¾ÆÆÄÄ¡°¡ ½ÇÇàµÇ¸é ºê¶ó¿ìÀú ÁÖ¼Òâ¿¡ IP ÁÖ¼Ò¸¦ ÀÔ·ÂÇÑ´Ù. ¼­¹ö°¡ ¾Æ´Ñ ·ÎÄÿ¡ ¼³Ä¡ÇßÀ» °æ¿ì http://localhost ¸¦ ÀÔ·ÂÇÑ´Ù.





À§¿Í °°Àº È­¸éÀÌ ³ªÅ¸³ª¸é Á¤»óÀûÀ¸·Î ¼³Ä¡°¡ ¿Ï·áµÈ °ÍÀÌ´Ù.




¾ÆÆÄÄ¡(Apache2) ¿Í ÅèĹ(Tomcat8) ¿¬µ¿Çϱâ



1. ¿¬µ¿ Ä¿³ØÅÍ mod_jk ¼³Ä¡


ÅèĹ°úÀÇ ¿¬µ¿À» À§ÇØ mod_jk¸¦ ¼³Ä¡ÇÑ´Ù.


[mgt@localserver: ~$sudo apt-get install libapache2-mod-jk





2. workers.properties ÆÄÀÏ »ý¼º


´ÙÀ½À¸·Î /etc/apache2/ °æ·Î¿¡ properties ÆÄÀÏÀ» »ý¼ºÇÑ´Ù. (¾Æ·¡ ¸í·É¾î ÀԷ½à workers.properties ÆÄÀÏ »ý¼ºµÊ)


[mgt@localserver: ~$sudo nano /etc/apache2/workers.properties




»ý¼ºÇÑ workers.properties¿¡ ¾Æ·¡ÀÇ ³»¿ëÀ» ÀÔ·ÂÇÑ´Ù.


workers.tomcat_home=ÅèĹ ¼³Ä¡°æ·Î
workers.java_home=jdk ¼³Ä¡°æ·Î
 
# Define 1 real worker ajp13
worker.list=ÀÓÀÇÀÇ À̸§
 
# Set properties for tomcat1 (ajp13)
worker.ÀÓÀÇÀÇ À̸§.port = Æ÷Æ®      # tomat server.xml ÆÄÀÏ AJP/1.3 ConnectorÀÇ Port ÀÔ·Â
worker.ÀÓÀÇÀÇ À̸§.host = ÅèĹ¼­¹ö ¾ÆÀÌÇÇ ÁÖ¼Ò
worker.ÀÓÀÇÀÇ À̸§.type = ajp13     # apache + tomcat Åë½Å ÇÁ·ÎÅäÄÝ
worker.ÀÓÀÇÀÇ À̸§.lbfactor = 1




workers.tomcat_home=/usr/share/tomcat8
workers.java_home=/usr/lib/jvm/java-8-openjdk-amd64
# oracle jdk »ç¿ë½Ã
# workers.java_home=/usr/lib/jvm//java-8-oracle/
 
# Define 1 real worker ajp13
worker.list=tomcat1
 
# Set properties for tomcat1 (ajp13)
worker.tomcat1.port = 8009
worker.tomcat1.host = 192.168.123.120 
# ·ÎÄÃÀÏ °æ¿ì
# worker.tomcat1.host = localhost
worker.tomcat1.type = ajp13
worker.tomcat1.lbfactor = 20




ÀÔ·Â ³»¿ëÀ» º¸¸é ÅèĹ°ú jdk ¼³Ä¡ °æ·Î¸¦ ÀÔ·ÂÇÏ´Â tomcat_home°ú java_home ºÎºÐÀÌ ÀÖ´Ù. º°µµ·Î °æ·Î¸¦ º¯°æÇÏÁö ¾Ê¾Ò´Ù¸é À§ÀÇ °æ·Î¸¦ ±×´ë·Î »ç¿ëÇÏ¸é µÈ´Ù.


¸¸¾à ÀÚ¹Ù ¼³Ä¡ ½Ã openjdk°¡ ¾Æ´Ï¶ó oracle jdk¸¦ ¼³Ä¡Çß´Ù¸é #À¸·Î µÈ ÁÖ¼® ºÎºÐÀ» »ç¿ëÇÏ¸é µÈ´Ù.



workers.properties ÆÄÀÏ ¼³Á¤ ¿¹½Ã



´ÙÀ½À¸·Î worker.list ºÎºÐ¿¡´Â ¿¬µ¿ÇÒ ÅèĹÀÇ À̸§À» ÀÓÀÇ·Î ÁöÁ¤ÇÏ¸é µÈ´Ù. ¿©±â¿¡¼­´Â tomcat1·Î ÁöÁ¤ÇÏ¿´´Ù. ¸¸¾à 1°³ÀÇ ¾ÆÆÄÄ¡¿¡ ¿©·¯ °³ÀÇ ÅèĹÀ» ¿¬µ¿ÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÏ¸é µÈ´Ù.


worker.list= tomcat1, tomcat2 # À̸§Àº ÀÓÀǷΠ¼³Á¤
 
worker.tomcat1.type=ajp13
worker.tomcat1.host=ÅèĹ¼­¹ö IP
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1
 
 
worker.tomcat2.type=ajp13
worker.tomcat2.host=ÅèĹ¼­¹ö IP
# Æ÷Æ®¸¦ º¯°æÇØÁØ´Ù. µÎ¹ø° ÅèĹÀÇ server.xml ÀÇ AJP/1.3 ConnectorÀÇ Port ¼öÁ¤ÇÑ´Ù.
worker.tomcat2.port=8010   
worker.tomcat2.lbfactor=2
 





3.  jk.conf  ÆÄÀÏ ¼öÁ¤


¸í·É¾î¸¦ ½ÇÇàÇÏ¿© jk.conf ÆÄÀÏÀ» ¿¬´Ù.


[mgt@localserver: ~$sudo nano /etc/apache2/mods-available/jk.conf 






jk.conf ÆÄÀÏ¿¡¼­ »¡°£»öÀ¸·Î Ç¥½ÃµÈ ºÎºÐÀ» ã¾ÆÁØ´Ù.





±× ºÎºÐÀ» ÁÖ¼®(#)À¸·Î ¸·¾ÆÁÖ°í ¹Ù·Î ¾Æ·¡, À§ÀÇ ³»¿ëÀ» ÀÔ·ÂÇÑ´Ù. ÀÌ·¸°Ô ÇÏ´Â °ÍÀº /etc/apache2/ °æ·Î¿¡ »ý¼ºÇÑ workers.properties·ÎºÎÅÍ ¼³Á¤ Á¤º¸¸¦ °¡Á®¿À±â À§ÇÑ °ÍÀÌ´Ù.




4.  000-default.conf ÆÄÀÏ ¼öÁ¤


¸í·É¾î¸¦ ½ÇÇàÇÏ¿© 000-default.conf ÆÄÀÏÀ» ¿¬´Ù


[mgt@localserver: ~$sudo nano /etc/apache2/sites-available/000-default.conf






000-default.conf ÆÄÀÏÀ» º¸¸é DocumentRoot /var/www ¶ó°í ÀûÈù ºÎºÐÀÌ ÀÖ´Ù. ÀÌ ºÎºÐ¿¡ #À» Àû¾î ÁÖ¼®À¸·Î º¯°æÇÑ´Ù. ±×¸®°í ¾Æ·¡¿¡ ÅèĹÀÇ webapps ¾Æ·¡ ½ÇÇàÇÒ À¥ÇÁ·ÎÁ§Æ® °æ·Î¸¦ Àû¾îÁØ´Ù.


À§¿¡¼­´Â DocumentRoot /var/lib/tomcat8/webapps/ROOT/ ·Î ÇÏ¿´´Âµ¥ webapps ¾Æ·¡¿¡ ±âº»ÀûÀ¸·Î ÀÖ´Â ROOT Æú´õ°¡ À¥ÇÁ·ÎÁ§Æ®°¡ ÀÖ´Â °æ·ÎÀ̱⠶§¹®¿¡ ÀÌ·¸°Ô ÇÏ¿´´Ù.


¸¸¾à webapps ¾Æ·¡¿¡ project ¶ó´Â Æú´õ¿¡ ÇÁ·ÎÁ§Æ®¸¦ ¹èÆ÷ÇÑ´Ù¸é DocumentRoot /var/lib/tomcat8/webapps/project ¶ó°í ÀÔ·ÂÇØÁÖ¸é µÈ´Ù.


JkMount /* tomcat1 ºÎºÐÀº ¸ðµç URL ( /* )À» ÅèĹ¿¡°Ô ¹ÙÀεù ÇÏ´Â ºÎºÐÀÌ´Ù. tomcat1Àº workers.properties¿¡ ÀÔ·ÂÇÑ ¿¬µ¿ÇÒ ÅèĹÀÇ À̸§ÀÌ´Ù. 


¸¸¾à ÅèĹ¿¡ ¹èÆ÷µÈ ÇÁ·ÎÁ§Æ®°¡ ¿©·¯ °³ÀÌ°í ƯÁ¤ ÇÁ·ÎÁ§Æ®¸¸ URLÀ» ¹ÙÀεù ÇØ¾ß ÇÑ´Ù¸é /* ºÎºÐÀ» ¼öÁ¤ÇØ ÁÖ¸é µÈ´Ù. ¿¹¸¦ µé¾î  ¹èÆ÷µÈ ÇÁ·ÎÁ§Æ®°¡ project1, project2 ÀÌ·¸°Ô Àִµ¥ project1¸¸ ¹ÙÀεù ÇÏ·Á¸é JkMount /project1/* tomcat1 ÀÌ·¸°Ô ¼öÁ¤ÇÏ¸é µÈ´Ù.



¡Ø ƯÁ¤ À¯ÇüÀÇ ÆÄÀϸ¸ ¾ÆÆÄÄ¡¿¡¼­ ó¸®ÇÒ °æ¿ì


SetEnvIf Request_URI "/*.js$" no-jk 
JkMount /* tomcat1



À§´Â ¸ðµç À¯Çü(JkMount /*)Àº ÅèĹ¿¡¼­ ó¸®ÇÏÁö¸¸ .js ÆÄÀϸ¸ ¾ÆÆÄÄ¡¿¡¼­ ó¸®ÇÏ°Ú´Ù´Â ¼³Á¤ÀÌ´Ù. À§ ¼³Á¤¿¡¼­ .js µÚ¿¡ $°¡ ¾øÀ» °æ¿ì .jspµµ ¾ÆÆÄÄ¡¿¡¼­ ó¸®ÇÏ°Ô µÇ¹Ç·Î $¸¦ ºÙ¿© ¹®ÀÚÀÇ ³¡À» ÁöÁ¤ÇÑ °ÍÀÌ´Ù.




5. ÅèĹÀÇ server.xml ÆÄÀÏ ¼öÁ¤


´ÙÀ½À¸·Î ÅèĹÀÇ server.xml ÆÄÀÏÀ» ¼öÁ¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ ¸í·É¾î¸¦ ½ÇÇàÇÏ¿© server.xml ÆÄÀÏÀ» ¿¬´Ù.


[mgt@localserver: ~$sudo nano /etc/tomcat8/server.xml






server.xml ÆÄÀÏÀ» º¸¸é À§Ã³·³ »¡°£»ö ¹Ú½º·Î Ç¥½ÃµÈ ºÎºÐÀÌ ÀÖ´Ù. ÁÖ¼®À¸·Î ó¸®µÇ Àִµ¥, ÁÖ¼®À» ¾ø¾ÖÁØ´Ù.






6. ¾ÆÆÄÄ¡¿Í ÅèĹ Àç½ÃÀÛ


[mgt@localserver: ~$sudo /etc/init.d/apache2 restart
 
[mgt@localserver: ~$sudo /etc/init.d/tomcat8 restart





7. ºê¶ó¿ìÀú¿¡¼­ È®ÀÎ




¼­¹ö¿¡ ¹èÆ÷µÈ À¥ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇàÇϱâ À§ÇØ ÁÖ¼Òâ¿¡  http://IP ÁÖ¼Ò:8080À¸·Î ÀÔ·ÂÇÑ´Ù.





ÁÖ¼Òâ¿¡¼­ 8080À» Áö¿ì°í ¿£Å͸¦ ´©¸£¸é ¹èÆ÷µÈ À¥ÇÁ·ÎÁ§Æ®°¡ ½ÇÇàµÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô µÇ¸é Á¤»óÀûÀ¸·Î ¿¬µ¿µÈ °ÍÀÌ´Ù.



Ãâó: http://all-record.tistory.com/188 [¼¼»óÀÇ ¸ðµç ±â·Ï]