본문 바로가기
Linux

APM + Tomcat 연동하기

by 씨엔아이소프트 2022. 10. 4.
반응형

APM + Tomcat 연동하기

 

# 설치환경
- CentOS 5.x (64bit)
- Apache 2.2.34
- PHP 5.2.17
- Mysql 5.1.59
- APM 설치 디렉토리 : /home/APM 하단에 설치
- JDK : 7u15 / 설치디렉토리 : /home/APM/java
- Tomcat : 7.0.37 / 설치디렉토리 : /home/APM/tomcat

* 설치에 앞서 APM은 이미 다  설치되어 있다고 가정한다. APM 설치 매뉴얼은 하단 링크 참조
링크 : http://help.cafe24.com/cs/cs_faq_list.php?page=5&mode=&s_key=&s_period=&s_value=&faq_list=308&categoryIdx=0

1. JDK 설치 (java 설치)
- yum install java 명령어로 간단히 설치 할 수 있지만, 관리 편의성을 위해 tar.gz 파일로 설치.
- 하단링크로 이동하여 버전에 맞는 Java SE Development Kit 을 다운 받는다.
- 다운 완료 후 서버에 파일을 업로드.
- JDK링크 : http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

[root@server src]# tar zxvf jdk-7u15-linux-x64.tar.gz
[root@server src]# mv jdk1.7.0_15 /home/APM/java

 

 

- /etc/profile 파일에 java 경로 및 환경변수를 추가한다.

 [root@server src]# vi /etc/profile
------------------------------------------------------------------------------------------------------------------
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "$PS1" ]; then
            . $i
        else
            . $i >/dev/null 2>&1
        fi
    fi
done

unset i
unset pathmunge
# Add timestamp to .bash_history
HISTTIMEFORMAT="%Y-%m-%d [%H:%M:%S] "
export HISTTIMEFORMAT

JAVA_HOME=/home/APM/java
PATH="$JAVA_HOME/bin:$PATH"
export JAVA_HOME
------------------------------------------------------------------------------------------------------------------

[root@server src]# source /etc/profile

 

 

 

 

2. Tomcat 설치
- tomcat 을 다운받아 압축을 풀고 /home/APM/tomcat 디렉토리로 이동한다
- 링크 : http://tomcat.apache.org 에서 Binary Distributions 버전을 다운 받는다.

 [root@server src]# tar zxvf apache-tomcat-7.0.37-src.tar.gz
[root@server src]# mv apache-tomcat-7.0.37-src /home/APM/tomcat

 

 

- /etc/profile  파일에 tomcat 환경 변수를 추가한다

 [root@server src]# vi /etc/profile
------------------------------------------------------------------------------------------------------------------
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "$PS1" ]; then
            . $i
        else
            . $i >/dev/null 2>&1
        fi
    fi
done

unset i
unset pathmunge
# Add timestamp to .bash_history
HISTTIMEFORMAT="%Y-%m-%d [%H:%M:%S] "
export HISTTIMEFORMAT

JAVA_HOME=/home/APM/java
PATH="$JAVA_HOME/bin:$PATH"
export JAVA_HOME

CATALINA_HOME=/home/APM/tomcat
PATH=$CATALINA_HOME/bin:$PATH
export CATALINA_HOME
------------------------------------------------------------------------------------------------------------------


[root@server src]# source /etc/profile

 

 

- 정상적으로 실행되는지 확인하고 정지한다.

[root@server src]#
[root@server src]#
[root@server src]# catalina.sh start
Using CATALINA_BASE:   /home/APM/tomcat
Using CATALINA_HOME:   /home/APM/tomcat
Using CATALINA_TMPDIR: /home/APM/tomcat/temp
Using JRE_HOME:        /home/APM/java
Using CLASSPATH:       /home/APM/tomcat/bin/bootstrap.jar:/home/APM/tomcat/bin/tomcat-juli.jar
[root@server src]#
[root@server src]#
[root@server src]# ps -ef | grep tomcat
root     18066     1 26 13:05 pts/0    00:00:03 /home/APM/java/bin/java -Djava.util.logging.config.file=/home/APM/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/APM/tomcat/endorsed -classpath /home/APM/tomcat/bin/bootstrap.jar:/home/APM/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/home/APM/tomcat -Dcatalina.home=/home/APM/tomcat -Djava.io.tmpdir=/home/APM/tomcat/temp org.apache.catalina.startup.Bootstrap start
root     18121  4786  0 13:05 pts/0    00:00:00 grep tomcat
[root@server src]#
[root@server src]#
[root@server src]# catalina.sh stop
Using CATALINA_BASE:   /home/APM/tomcat
Using CATALINA_HOME:   /home/APM/tomcat
Using CATALINA_TMPDIR: /home/APM/tomcat/temp
Using JRE_HOME:        /home/APM/java
Using CLASSPATH:       /home/APM/tomcat/bin/bootstrap.jar:/home/APM/tomcat/bin/tomcat-juli.jar

[root@server src]#

 

 

 

3. Mysql-Tomcat 연동
- mysql-connector-java 를 설치한다
- mysql과 tomcat 을 연동하기위한 커넥터이다.
- 링크 : http://dev.mysql.com/downloads/connector/j/ 에서 다운 받는다.
- 또는 이곳에서 다운. http://mirror.cogentco.com/pub/mysql/Connector-J/
- 다운 받은 후 tomcat 라이브러리 디렉토리로 복사한다.

 [root@server src]# tar zxvf mysql-connector-java-5.1.23.tar.gz
[root@server src]# cd mysql-connector-java-5.1.23
[root@server mysql-connector-java-5.1.23]# cp -a mysql-connector-java-5.1.23-bin.jar /home/APM/tomcat/lib/
[root@server mysql-connector-java-5.1.23]#

 

 

 

 

4. Apache - Tomcat 연동
- 아파치와 연동하기 위해 tomcat connector를 설치한다.
- 링크 : http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/

 [root@server src]# tar zxvf tomcat-connectors-1.2.31-src.tar.gz
[root@server src]# cd tomcat-connectors-1.2.31-src/native
[root@server native]# ./configure --with-apxs=/home/APM/apache/bin/apxs
checking for target platform... unix
no apache given
no netscape given
configure: creating ./config.status
config.status: creating Makefile
config.status: creating apache-1.3/Makefile
config.status: creating apache-1.3/Makefile.apxs
config.status: creating apache-2.0/Makefile
config.status: creating apache-2.0/Makefile.apxs
config.status: creating common/Makefile
config.status: creating common/list.mk
config.status: creating common/jk_types.h
config.status: creating jni/Makefile
config.status: creating common/config.h
config.status: executing depfiles commands
[root@server native]# echo $?
0
[root@server native]# make
[root@server native]# echo $?
0
[root@server native]#
[root@server native]#
[root@server native]# ll
ÇÕ°è 1656
-rw-r--r-- 1 root bin    5915 10¿ù 18  2009 BUILDING.txt
-rw-r--r-- 1 root bin   65790 10¿ù 22  2010 CHANGES
-rw-r--r-- 1 root root  23712  2¿ù 22 15:35 Makefile
-rw-r--r-- 1 root bin    1362 10¿ù 22  2010 Makefile.am
-rw-r--r-- 1 root bin   23244 10¿ù 22  2010 Makefile.in
-rw-r--r-- 1 root bin   25824 10¿ù 22  2010 NEWS
-rw-r--r-- 1 root bin    1805  9¿ù  3  2007 README.txt
-rw-r--r-- 1 root bin    2211  3¿ù  8  2010 STATUS.txt
-rw-r--r-- 1 root bin   13286  3¿ù  8  2010 TODO.txt
-rw-r--r-- 1 root bin  261581 10¿ù 22  2010 aclocal.m4
drwxr-xr-x 2 root bin    4096  2¿ù 22 15:35 apache-1.3
drwxr-xr-x 3 root bin    4096  2¿ù 22 15:36 apache-2.0
-rwxr-xr-x 1 root bin    1213  5¿ù 14  2009 buildconf.sh
drwxr-xr-x 3 root bin    4096  2¿ù 22 15:36 common
-rw-r--r-- 1 root root  55331  2¿ù 22 15:35 config.log
-rwxr-xr-x 1 root root    100  2¿ù 22 15:35 config.nice
-rwxr-xr-x 1 root root  41698  2¿ù 22 15:35 config.status
-rwxr-xr-x 1 root bin  819872 10¿ù 22  2010 configure
-rw-r--r-- 1 root bin   25756 10¿ù 22  2010 configure.in
drwxr-xr-x 3 root bin    4096 10¿ù 22  2010 docs
drwxr-xr-x 4 root bin    4096 10¿ù 22  2010 iis
drwxr-xr-x 2 root bin    4096  2¿ù 22 15:35 jni
-rwxr-xr-x 1 root root 228737  2¿ù 22 15:35 libtool
drwxr-xr-x 2 root bin    4096 10¿ù 22  2010 netscape
drwxr-xr-x 2 root bin    4096 10¿ù 22  2010 nt_service
drwxr-xr-x 3 root bin    4096 10¿ù 22  2010 scripts
[root@server native]#
[root@server native]# cd apache-2.0/
[root@server apache-2.0]# ll
ÇÕ°è 3152
-rw-r--r-- 1 root root    3176  2¿ù 22 15:35 Makefile
-rw-r--r-- 1 root root    1566  2¿ù 22 15:35 Makefile.apxs
-rw-r--r-- 1 root bin     1474 10¿ù 21  2010 Makefile.apxs.in
-rw-r--r-- 1 root bin     3021 10¿ù 21  2010 Makefile.in
-rw-r--r-- 1 root bin     7088 10¿ù 22  2010 Makefile.vc
-rw-r--r-- 1 root bin     6590  9¿ù  3  2007 NWGNUmakefile
-rw-r--r-- 1 root bin    10243  6¿ù 22  2007 bldjk.qclsrc
-rw-r--r-- 1 root bin    11089  6¿ù 22  2007 bldjk54.qclsrc
-rw-r--r-- 1 root bin     1335  9¿ù 14  2010 config.m4
-rw-r--r-- 1 root root 1721532  2¿ù 22 15:36 mod_jk.a
-rw-r--r-- 1 root bin   129083 10¿ù 22  2010 mod_jk.c
-rw-r--r-- 1 root bin    11395  9¿ù 14  2010 mod_jk.dsp
-rw-r--r-- 1 root root     786  2¿ù 22 15:36 mod_jk.la
-rw-r--r-- 1 root root     309  2¿ù 22 15:36 mod_jk.lo
-rw-r--r-- 1 root root  199248  2¿ù 22 15:36 mod_jk.o
-rwxr-xr-x 1 root root 1071864  2¿ù 22 15:36 mod_jk.so
[root@server apache-2.0]#
[root@server apache-2.0]# cp -a mod_jk.so /home/APM/apache/modules/
[root@server apache-2.0]#

 

 

 

- httpd.conf 파일에 복사한 mod_jk.so 모듈을 추가한다.
- wokers.properties 파일 부분도 추가한다.
- Directory Index 부분에 index.jsp 를 추가한다

 [root@server src]# vi /home/APM/apache/conf/httpd.conf
----------------------------------------------------------------------------------------------------------------
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule redurl_module      modules/mod_url.so
LoadModule php5_module        modules/libphp5.so
LoadModule jk_module          modules/mod_jk.so

<IfModule mod_jk.c>
      JkWorkersFile /home/APM/apache/conf/workers.properties
</IfModule>

<IfModule mod_url.c>
           CheckURL On
</IfModule>


<IfModule dir_module>
    DirectoryIndex index.html index.php index.jsp
</IfModule>

---------------------------------------------------------------------------------------------------------------

[root@server src]#

 

 

- mod_jk에서 사용하는 workers.properties 파일을 작성한다

 [root@server src]# vi /home/APM/apache/conf/workers.properties
---------------------------------------------------------------------------------------------------------------
workers.tomcat_home=/home/APM/tomcat
workers.java_home=/home/APM/java
ps=/
worker.list=ajp13

# Definition for Ajp13 worker
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
--------------------------------------------------------------------------------------------------------------

[root@server src]# httpd -t
Syntax OK

[root@server src]#

 

 

 

 

5. httpd-vhosts.conf 파일 수정
- JkMount 지시자를 사용해 *.jsp로 오는 요청은 workers.properties에 설정된 ajp13 worker로 보내게 된다.

 [root@server src]# vi /home/APM/apache/conf/extra/httpd-vhosts.conf
--------------------------------------------------------------------------------------------------------------
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    DocumentRoot "/home/APM/apache/htdocs"
    ServerName x.x.x.x        <------ (IP주소 혹은 도메인)
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
    ExpiresActive On
    ExpiresByType image/jpeg "acces plus 1 month"
    ExpiresByType image/gif "acces plus 1 month"

    JkMount /*.jsp ajp13
</VirtualHost>
-------------------------------------------------------------------------------------------------------------
[root@server src]#

 

 

 

6. server.xml 파일 수정
- 아파치에서 넘어오는 ajp13 worker 를 처리하기 위해서 tomcat의 server.xml 파일을 수정한다.
- 하단의 <Host>로 시작하는 부분을 자신의 apache vhosts 설정에 맞게 수정해 준다

 [root@server src]# vi /home/APM/tomcat/conf/server.xml
-------------------------------------------------------------------------------------------------------------
.
.
.
.
      <Host name="x.x.x.x"  appBase="/home/APM/apache/htdocs"
            unpackWARs="true" autoDeploy="true">
        <Context path="/" docBase="webapps" reloadable="true"/>

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
    </Engine>
  </Service>
</Server>
-------------------------------------------------------------------------------------------------------------
[root@server src]#

 

 

7. jsp 동작 확인
- 웹 소스 디렉토리에 테스트용 jsp 파일을 넚고 웹에서 정상 출력되는지 확인해본다.
- 위에서 docBase 를 webapps 라는 디렉토리로 설정했기 때문에 *.jsp 소스는 webapps 디렉토리 하단에 있어야 한다!
  webapps 디렉토리가 없다면 appBase 디렉토리 하단에 만들어 주면 된다.

 [root@server src]# mkdir /home/APM/apache/htdocs/webapps
[root@server src]# cd /home/APM/apache/htdocs/webapps
[root@server src]# vi test.jsp
--------------------------------------------------------------------------------------------------------------
<html>
<head>
<title>jsp test</title>
</head>
<body>

<%
int sum = 0;
for(int i = 0; i <= 100; i++) {
sum = sum + i;
}
%>

1부터 100까지의 합은 <%= sum %>입니다.

</body>
</html>
----------------------------------------------------------------------------------------------------------------
[root@server src]#

 

- http://x.x.x.x/test.jsp 파일을 엑세스 해본다. apache와 tomcat이 정상적으로 설정이 되었다면
  "1부터 100까지의 합은 5050 입니다" 라는 페이지가 출력 될 것이다.

 

반응형

'Linux' 카테고리의 다른 글

리눅스 shell sed 명령어  (0) 2023.01.26
ISPCONFIG 3 호스팅 패널 설치기  (0) 2023.01.07
yum 사용법  (0) 2022.05.30
CentOS 7 AMP yum 설치  (0) 2022.02.11
리눅스 네트워크 트래픽 모니터링 툴 iftop  (0) 2022.01.18

댓글