apache, tomcat, jk2 ¼¼¼Ç Ŭ·¯½ºÅ͸µ ÀÛ¾÷ ¹®¼Á¤¸®
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
ȯ°æº¯¼ö Ãß°¡