Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

itells, IT를 말하다.

Ubuntu 10.04 + APM #2 - Apache + Tomcat 설치 및 연동 본문

Technology/Ubuntu

Ubuntu 10.04 + APM #2 - Apache + Tomcat 설치 및 연동

아이텔즈 2012. 7. 2. 00:25

3. Apache2 설치


OS가 웹 서비스를 가능하게 해주는것이 바로 Apache HTTP Server(이하 Apache)입니다.

Apache의 설치 또한 apt-get 명령어를 통해 손쉽게 설치할 수 있습니다.


# Apache2 설치
$ sudo apt-get install apache2


http://서버IP_또는_도메인/

접속하여 It works! 가 나온다면 성공입니다.


Apache2의 webroot 디렉토리는 /var/www 입니다.





4. Tomcat6 설치


Apache 에서는 .jsp 등의 자바스크립트가 작동되지 않습니다.

Apache Tomcat(이하 Tomcat)은 JSP / Servlet Engine 으로,

.jsp 등의 자바스크립트를 동작시키기 위함입니다.


보다 자세한 내용은 http://ryudaewan.springnote.com/pages/610881

에 이해하기 쉽게 다루어져 있습니다.


Tomcat은 순수하게 자바언어로 만들어져 있기 때문에

설치 및 사용을 위해서는 시스템에 버전 1.2 이상의 JDK 가 설치되어 있어야 합니다.

#1의 과정을 거쳐오셨다면 어려움 없이 설치 작업을 마치실 수 있습니다.


# Tomcat6 설치
$ sudo apt-get install tomcat6


http://서버IP_또는_도메인:8080/

접속하여 It works! 가 나온다면 성공입니다.


Tomcat6의 webroot 디렉토리는 /var/lib/tomcat6/webapps/ROOT/ 입니다.





5. Apache2 & Tomcat6 연동을 위한 mod_jk 설치


Apache와 Tomcat의 연결은 서버 간 통신의 중간 모듈인 mod_jserv나 mod_jk를 이용합니다.

다만 mod_jserv는 낡은 프로그램이기 때문에, 그 뒤를 mod_jk 가 이어받은 지도 꽤 흘렀습니다.

mod_jk는 apt-get 을 통해 설치 할 수 있습니다.


# mod_jk설치
$ sudo apt-get install libapache2-mod-jk

# workers.properties 파일 생성 (apache2의 내용을 Tomcat6로 보내는 역할)
$ sudo vi /etc/libapache2-mod-jk/workers.properties
## vi-editor ----------------------------
# Tomcat6 디렉토리 변경
workers.tomcat_home=/usr/share/tomcat6

# JDK 디렉토리 변경
workers.java_home=/usr/local/jdk

# jk 확인 (아래 항목)
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.lbfactor=1

# Apache2 설정을 조작해서 모듈을 직접 로드하도록 파일 작성
$ sudo vi /etc/apache2/mods-available/jk.conf
## vi-editor ----------------------------------------------
<IfModule mod_jk.c>
    JkWorkersFile /etc/libapache2-mod-jk/workers.properties
    JkLogFile /var/log/apache2/mod_jk.log
    JkLogLevel info
    JkOptions +ForwardURICompatUnparsed
</IfModule>

# 내용 확인
$ cat /etc/apache2/mods-available/jk.load
## vi-editor ------------------------------------------
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
 
# 변경 후 mod_jk 모듈을 사용 할 수 있도록 jk.conf 활성화
$ sudo a2enmod jk
Enabling config file jk.conf.
Run '/etc/init.d/apache2 restart' to activate new configuration!

# Apache2의 webroot Directory를 변경 하고 .jsp파일을 Tomcat6으 로 넘기기 위한 설정
$ sudo vi /etc/apache2/sites-enabled/000-default
## vi-editor ----------------------------------
# (생략)
<VirtualHost *:80="">
    ServerAdmin webmaster@localhost

    # 만약 Apache2의 webroot를 사용할 경우 DocumentRoot를 변경하지 말 것
    # DocumentRoot /var/www/
    DocumentRoot /var/lib/tomcat6/webapps/ROOT/

    # Apache2 & Tomcat6에서 처리할 URL 패턴 등록
    JkMount /*.jsp     ajp13_worker
    JkMount /servlet/* ajp13_worker
    JkMount /*.do      ajp13_worker
    JkMount /*.lnj     ajp13_worker
    JkMount /*.xlnj    ajp13_worker
# (생략)
</VirtualHost>

# 8009포트 AJP/1.3이 활성화 되어 있는지 확인
$ sudo vi /etc/tomcat6/server.xml
## vi-editor ---------------------------------------------------------
# (생략)
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <!-- 주석을 풀어준다
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    -->
# (생략)

# Tomcat6, Apache2를 재시작
$ sudo /etc/init.d/tomcat6 restart
$ sudo /etc/init.d/apache2 restart



※ Tomcat6의 webroot를 Apache2의 webroot로 지정하려면 위에서 설정했던

000-default의 DocumentRoot를 /var/www 로 설정하고

아래의 설정값을 사용합니다.

# webroot 지정
$ sudo vi /etc/tomcat6/server.xml
## vi-editor
<Host name="localhost" appBase="/var/www/"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="." reloadable="true" />



※ 만약 FTP를 이용한 업로드 중 권한이 없다고 나오는 경우


# 퍼미션 변경
$ sudo chmod 777 [webroot]


Comments