TOMCAT/APACHE
2010.11.27 / 12:54

apache, tomcat, jk2 ¼¼¼Ç Ŭ·¯½ºÅ͸µ ÀÛ¾÷ ¹®¼­Á¤¸®

ÇϽÄ
Ãßõ ¼ö 336
Á¦¸ñ¾øÀ½
apache, tomcat, jk2 ¼¼¼Ç Ŭ·¯½ºÅ͸µ ÀÛ¾÷ ¹®¼­Á¤¸®
¿©±â Àú±â Âü°íÇϸ鼭 apache, tomcat, jk2¸¦ ÀÌ¿ëÇÑ È¯°æ ±¸ÃàÀ» Á¤¸®ÇÑ ¹®¼­ÀÔ´Ï´Ù.

°ü·Ã Å°¿öµå·Î °Ë»öÇÏ½Ã¸é ´Ù¾çÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

Å°¿öµå : ¾ÆÆÄÄ¡ ·Îµå¹ë·±½Ì, jk2 Ä¿³ØÅÍ, ¼¼¼Çº¹Á¦, Web Farm

 

º» ¹®¼­´Â Apache2, Tomcat5, JK2 ¸¦ ÀÌ¿ëÇÑ ¼¼¼Ç º¹Á¦ Ŭ·¯½ºÅ͸µ°ú ·Îµåº§·±½Ì ½ÇÁ¦ ±¸Ãà °úÁ¤À» Á¤¸®ÇÏ¿´½À´Ï´Ù. ´Ù¸¥ ȯ°æ¿¡¼­ÀÇ ±¸Ãà½Ã ÂüÁ¶¿ëÀ¸·Î °¡´ÉÇϳª ¸ðµç ³»¿ëÀÌ °°À» ¼ö ¾ø½À´Ï´Ù.)

CentOS(linux)¿ë ¹öÀüÀ» ¹Þ¾Æ »ç¿ë ÇÕ´Ï´Ù.

jdk-1_5_0_21-linux-i586.bin

httpd-2.2.10.tar.gz

apache-tomcat-5.5.28.tar.gz

jakarta-tomcat-connectors-jk2-src-current.tar.tar

 

 

Apache2 + Tomcat 5 + JK2 ¸¦ »ç¿ëÇÑ ·Îµå¹ë·±½Ì°ú ¼¼¼Ç º¹Á¦ Ŭ·¯½ºÅ͸µ Web Farm ±¸¼º

 

 

Apache2 + Tomcat 5 + JK2 ¸¦ »ç¿ëÇÑ ·Îµå¹ë·±½Ì°ú ¼¼¼Ç º¹Á¦ Ŭ·¯½ºÅ͸µ Web Farm ±¸¼º

 

º» ¹®¼­´Â ·Îµå¹ë·±½Ì°ú Ŭ·¯½ºÅ͸µ ±¸Ãà ȯ°æ¿¡ ´ëÇÑ ÀÌÇØ¿Í ½ÇÁ¦ ±¸Ãà °úÁ¤À» ´ã°í ÀÖ½À´Ï´Ù. ¿î¿ë±â 2´ë Server¿¡ °¢ Apache, JK2, Tomcat¸¦ ¼¼ÆÃÇÏ°í ¹°¸®ÀûÀ¸·Î ºÐ¸®µÈ 2´ëÀÇ Server¿¡¼­ ºÎÇϺлê°ú ¼¼¼Çº¹Á¦°¡ µÇ´Â Ŭ·¯½ºÅ͸µ À¥ ÆÊÀ» ±¸ÃàÇÏ¿´½À´Ï´Ù.

±×¸² 1. Ŭ·¯½ºÅ͸µ ´ÙÀ̾î±×·¥

sticky session ¸ÞÄ¿´ÏÁòÀ» ÅëÇÑ Å¬·¯½ºÅ͸µÀº ±×¸² 1¿¡¼­ º¸¿©Áö´Â °Í°ú °°ÀÌ Å¬·¯½ºÅ͸µÀ» ±¸¼ºÇÏ´Â ³ëµåµé »çÀÌÀÇ ¼¼¼ÇÀ» º¹Á¦½ÃÄÑ Àå¾Ö°¡ ¹ß»ýµÇ¾úÀ» ¶§ ÀÌ¿ëµÉ ¼ö ¾ø´Â ³ëµåÀÇ ¼¼¼ÇÀ» ÀÌ¿ëÀÌ °¡´ÉÇÑ ³ëµåÂÊ¿¡ º¹»ç½ÃÄÑ ÁÖ´Â ¸ÞÄ¿´ÏÁòÀ¸·Î multicastÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ¿© °¢ ³ëµå°£ÀÇ ÅèĹ ÀνºÅϽº¸¦ Á¡°ËÇÏ°í ¼¼¼ÇÀ» º¹Á¦ÇÏ°Ô µË´Ï´Ù.

Tomcat Clustering ¼­¹ö ±¸¼º

Clustering ±¸Ãà °úÁ¤ »ó¼¼ ³»¿ë

º» ¹®¼­´Â Apache2, Tomcat5, JK2 ¸¦ ÀÌ¿ëÇÑ ¼¼¼Ç º¹Á¦ Ŭ·¯½ºÅ͸µ°ú ·Îµåº§·±½Ì ½ÇÁ¦ ±¸Ãà °úÁ¤À» Á¤¸®ÇÏ¿´½À´Ï´Ù. ´Ù¸¥ ȯ°æ¿¡¼­ÀÇ ±¸Ãà½Ã ÂüÁ¶¿ëÀ¸·Î °¡´ÉÇϳª ¸ðµç ³»¿ëÀÌ °°À» ¼ö ¾ø½À´Ï´Ù.)

CentOS(linux)¿ë ¹öÀüÀ» ¹Þ¾Æ »ç¿ë ÇÕ´Ï´Ù.

jdk-1_5_0_21-linux-i586.bin

httpd-2.2.10.tar.gz

apache-tomcat-5.5.28.tar.gz

jakarta-tomcat-connectors-jk2-src-current.tar.tar

¿ì¼± ¸®´ª½º ¸ÖƼij½ºÆ®¸¦ Áö¿øÇÏ´ÂÁö È®ÀÎ

ifconfig -a

eth0 Link encap:Ethernet HWaddr 00:1A:64:E5:EA:48

inet addr:222.xxx.xxx.233 Bcast:222.xxx.xxx.239 Mask:255.255.255.240

inet6 addr: fe80::21a:64ff:fee5:ea48/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:3029014 errors:0 dropped:0 overruns:0 frame:0

TX packets:2870213 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:625295791 (596.3 MiB) TX bytes:597045250 (569.3 MiB)

Interrupt:169 Memory:92000000-92012800

4¹ø° ÁÙ RUNNING MULTICAST <-- ÀÖ´Ù¸é OK ¸¸¾à ¾ø´Ù¸é ´ÙÀ½ ¸í·É¾î ÀÔ·Â ÇÏ¿© Enable ½ÃÅ´ # ifconfig eth0 multicast

1.±âÁ¸ ¼³Ä¡µÈ JRE ±¸¹öÀüÀ» »èÁ¦ ÈÄ 1.5 ¹öÀüÀ» ¼³Ä¡ ÇÕ´Ï´Ù.

È®ÀÎ ÈÄ »èÁ¦

rpm -qa | grep gcj

rpm -e --nodeps jdk.xxxxxxx

¼³Ä¡

chmod 755 jdk-1_5_0_21-linux-i586.bin

./jdk-1_5_0_21-linux-i586.bin

¶óÀ̼¾½º ³»¿ë ³ª¿À¸é ½ºÆäÀ̽º¹Ù¸¦ ´­·¯ ¸Ç ¸¶Áö¸·±îÁö À̵¿ ÈÄ yes ÀÔ·Â

ȯ°æº¯¼ö

vi /etc/profile

¸Ç¾Æ·¡ µÎÁÙ Ãß°¡ ÈÄ ÀúÀå

PATH="$PATH:/usr/java/jdk1.5.0_21/bin"

export JAVA_HOME="/usr/java/jdk1.5.0_21"

ÀúÀå ÈÄ Àû¿ë

source /etc/profile

2.¾ÆÆÄÄ¡ ¼³Ä¡

wget http://archive.apache.org/dist/httpd/httpd-2.2.10.tar.gz

tar -zxvf httpd-2.2.10.tar.gz

cd httpd-2.2.10

ÄÄÆÄÀÏÁøÇà

./configure --prefix=/usr/local/apache --enable-unique-id --enable-so --enable-rewrite

make

make install

ºÎÆýà ÀÚµ¿ ½ÇÇ༳Á¤

vi /etc/rc.local

/usr/local/apache/bin/apachectl start

Apache MPM ¸ðµâ ¼³Á¤

¸ðµâÈ®ÀÎ

/usr/local/apache/bin/apachectl -l

Apache MPM ¸ðµâ ¼³Á¤ ÆÄÀÏ ÀÛ¼º (extra »ùÇà ÆÄÀÏ È°¿ë) [prefork]

cd /usr/local/apache/conf/

cp ./extra/httpd-mpm.conf ./

vi httpd-mpm.conf

¾ÆÆÄÄ¡ ½ºÅ¸Æ®

./apachectl start

¡Ø¿À·ù httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

À§ ¿À·ù´Â ServernameÀ» ÁöÁ¤ÇØÁÖ¸é µÈ´Ù.

httpd.conf ÆÄÀÏÀÇ 90¶óÀÎÂë7

ServerName 127.0.0.1 ÀÌ·¸°Ô ÇØÁØ´Ù. ¶Ç´Â localhost

¡Ø¿À·ù httpd: apr_sockaddr_info_get() failed for KL_WEB1

È£½ºÆ® ³×ÀÓÀ» º¯°æÇØÁØ´Ù.

hostname localhost

µ¥¸óÈ®ÀÎ

netstat -lntp

./apachectl start

¹«¹ÝÀÀ. pid°¡ ¾ø´Ù¸é

service httpd start ÀÌ°É·Î ½ºÅ¸Æ®

´Ù½Ã µ¥¸óÈ®ÀÎ

http://¼­¹ö¾ÆÀÌÇÇ ·Î ¾ÆÆÄÄ¡ È­¸éÈ®ÀÎ

3.ÅèĹ ¼³Ä¡

http://tomcat.apache.org/

´Ù¿î¹Þ´Â´Ù. ¾ÐÃàÇØÁ¦

tar zxvf apache-tomcat-5.5.28.tar.gz

ȯ°æº¯¼ö

vi /etc/profile

export TOMCAT_HOME='/usr/local/tomcat'

export PATH=$PATH:$TOMCAT_HOME/bin

export CLASSPATH=$CLASSPATH:$TOMCAT_HOME/common/lib/jsp-api.jar:$TOMCAT_HOME/common/lib/servlet-api.jar

source /etc/profile

ÅèÄϽºÅ¸Æ®, ½ºÅé Å×½ºÆ®

./startup.sh

./shutdown.sh

java ±ÇÇѾø´Ù°í ³ª¿À¸é ±ÇÇѼ³Á¤

/usr/local/jdk1.5.0_21/bin

chmod 755 java javac

ÅèÄÏ ½ÇÇà±ÇÇÑÀÌ ¾ø´Ù°í ³ª¿À¸é ±ÇÇѼ³Á¤

cd /usr/local/apache-tomcat2/bin

chmod 755 digest.sh catalina.sh setclasspath.sh shutdown.sh startup.sh tool-wrapper.sh

4.JK2 ¼³Ä¡

http://tomcat.apache.org ¿¡¼­ ´Ù¿î ¹Þ´Â´Ù.

tar xvf jakarta-tomcat-connectors-jk2-src-current.tar.tar

cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2

./buildconf.sh

./configure --with-apxs2=/usr/local/apache/bin/apxs

make

¸ðµâ(mod_jk2.so) ¾ÆÆÄÄ¡ ¸ðµâ·Î º¹»ç

cd ../build/jk2/apache2

cp mod_jk2.so /usr/local/apache/modules/

cp mod_jk2.conf /usr/local/apache/conf/

mod_jk2.conf(¾ø´Ù¸é »ý¼º)

#####################################################

<IfModule mod_jk2.c>

#-----------------------------------------------

# Where to find the workers2.properties file

#-----------------------------------------------

#

JkSet config.file /usr/local/apache/conf/workers2.properties

</IfModule>

#####################################################

conf ÆÄÀÏ(workers2.properties) º¹»ç

cd ../../../conf

cp workers2.properties.minimal /usr/local/apache/conf/workers2.properties

apache httpd.conf ¼³Á¤

vi /usr/local/apache/conf/httpd.conf

LoadModule jk2_module modules/mod_jk2.so

workers2.properties ¼³Á¤

vi workers2.properties

[lb:lb]

noErrorHeader=1

stickySession=1

recovery=60

#socket channel, explicitly set port and host

[channel.socket:localhost:11009] # server.xml <Connector port="11009" enableLookups="false" protocol="AJP/1.3"/>

info=Ajp13 forwarding over socket

port=11009

host=222.xxx.xxx.234

graceful=0

debug=0

tomcatId=tomcat1 # server.xml <Engine jvmRoute="tomcat1" ...

group=lb

#define the worker

[ajp13:localhost:11009]

tomcatId=tomcat1

max_connections=120

channel=channel.socket:localhost:11009

group=lb

# Uri mapping

[uri:/*.jsp]

group=lb

[uri:/*.high1]

group=lb

[uri:/servlet/*]

group=lb

ÅèĹ server.xml ¼³Á¤

<Connector port="11009" enableLookups="false" protocol="AJP/1.3"/> <!-- ¾ÆÆÄÄ¡¿Í ¿¬µ¿Çϱâ À§ÇÑ Æ÷Æ® -->

<!-- jvmRoute ¸í JK Ä¿³ØÅÍ¿¡¼­ ÅèĹ ÇÁ·Î¼¼½º¸¦ ±¸ºÐÇϴµ¥ »ç¿ë. ÇÁ·Î¼¼½º º°·Î ´Ù¸£°Ô Àû¿ëÇØ¾ß ÇÔ tomcat1, tomcat2, tomcat3... -->

<Engine jvmRoute="tomcat1" name="Catalina" defaultHost="localhost">

"</Context> ¹Ù·Î ¹Ø¿¡ ¾Æ·¡ ³»¿ë »ðÀÔ"

<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"

managerClassName="org.apache.catalina.cluster.session.DeltaManager"

expireSessionsOnShutdown="false"

useDirtyFlag="true">

<Membership

className="org.apache.catalina.cluster.mcast.McastService"

mcastAddr="228.0.0.4"

mcastPort="45564"

mcastFrequency="500"

mcastDropTime="3000"/>

<Receiver

className="org.apache.catalina.cluster.tcp.ReplicationListener"

tcpListenAddress="222.xxx.xxx.233" <!-- µðÆúÆ® auto -->

tcpListenPort="4001" <!--ÇÑ ¼­¹ö³»¿¡¼­´Â Æ÷Æ®¸¦ ¼­·Î ´Ù¸£°Ô ¼³Á¤ÇؾßÇÔ. 4002, 4003 ...-->

tcpSelectorTimeout="100"

tcpThreadCount="6"/>

<Sender

className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"

replicationMode="pooled"/>

<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"

filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

</Cluster>

jk2.properties ¼³Á¤

vi jk2.properties

channelSocket.port=12009

shm.file=/usr/local/apache/logs/jk2.shm

apr.jniModeSo=inprocess

À¥ ¾îÇø®ÄÉÀÌ¼Ç web.xml ¼³Á¤

vi xxxxx/WEB-INF/web.xml

"<web-app> ¹Ù·Î ¾Æ·¡ ¾Æ·¡ ÅÂ±× Ãß°¡"

<distributable/>

ÅèĹÀ» ´õ ¼³Ä¡ ÇÒ °æ¿ì À§ ³»¿ë ¹Ýº¹

server.xml

jk2.properties

workers2.properties

ȯ°æº¯¼ö Ãß°¡