본문 바로가기

Server

Win NT에 Apache 2.2 (Virtual host, Alias) + Tomcat 6.x 연동하기.

(아파치 및 톰캣 설치는 생략)

1. httpd.conf 설정 (기본 서버 설정 파일)
 - 서버에서 사용할 모듈 및 전체 보안 설정 등을 관리.
  a. virtual host 및 mod_jk 설정하기.

아파치와 Tomcat을 이어주는 커넥터 파일임.
이 파일을 다운 받아 아파치 설치폴더내에 modules 폴더로 붙여넣습니다.

httpd.conf를 열어 보면 아래와 같은 내용이 있습니다.

~ 윗줄은 생략 ~
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
~ 아랫줄도 생략 ~

LoadModule을 추가해야 한다. LoadMoudle 하단에 아래줄을 추가합니다.
LoadModule jk_module modules/mod_jk-1.2.27-httpd-2.2.10.so

톰캣에 관한 내용을 httpd.conf에 직접 기술하여도 되나, 효율적인 관리를 위해 http-tomcat.conf라는 파일로 따로 관리 합니다.


아파치 설치 폴더/conf/extra 내에 빨간색 박스의 파일을 추가합니다.
하나는 톰캣, 하나는 가상 호스트 파일입니다,
이 두가지 모두 httpd.conf에 직접 기술하여도 되나 관리하기 쉽지않아서
따로 설정 파일로 빼두어 불러들이는 형식으로 관리합니다.

그리고 httpd.conf 하단에
# User home directories
#Include conf/extra/httpd-userdir.conf
# Real-time info on requests and configuration
#Include conf/extra/httpd-info.conf

이런 구문이 있는데 conf 파일을 읽어들이는 부분입니다.
아래 부분을 추가해줍니다.
# Tomcat
Include conf/extra/httpd-tomcat.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf 




httpd.conf에 정의하는 부분은 끝입니다.
이제 각각의 설정파일을 세부적으로 설정해주어야 합니다.

2. httpd-tomcat.conf , workers.properties 설정.

# Where to find workers.properties
JkWorkersFile 아파치_설치_폴더/conf/workers.properties
# 따로 안빼도 되지만.. 관리 효율 증가를 위해.. properties로 뺐음.

# Where to put jk shared memory
JkShmFile     logs/mod_jk.shm

# Where to put jk logs
JkLogFile     "|아파치_설치_폴더/bin/rotatelogs.exe 로그_저장할_폴더/mod_jk_%Y-%m-%d.log 86400"
# 로그, 86400은 24시간 주기로 파일 생성하는 것.


# Set the jk log level [debug/error/info]
JkLogLevel    error
#로그 레벨
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
<Location /jkmanager/>
  JkMount jkstatus
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1 xxx.xxx.xxx.xxx
</Location>
 #Allow From은 톰캣 접근을 허용할 IP를 지칭한다. 자기 자신과 서버 컴퓨터 IP를 적는다.

- worker.properties

worker.list=tm-router, jkstatus
worker.jkstatus.type=status

worker.tomcat.port=8809
  #주의 여기서 사용하는 port는 톰캣 설정 중 ajp13 포트임.
worker.tomcat.host=localhost
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1

worker.tm-router.type=lb
worker.tm-router.balance_workers=tomcat

3. httpd-vhosts.cnf 설정.

<VirtualHost *:8787> #httpd.conf의 listner port와 같아야 함.
    ServerAdmin admin@localhost
    ServerName localhost (or your domain)
    DocumentRoot "아파치_설치_폴더/htdocs"
   
    ErrorLog  "|아파치_설치_폴더/bin/rotatelogs.exe 로그_찍을_폴더/tm-error_%Y-%m-%d.log 86400"
    CustomLog "|아파치_설치_폴더/bin/rotatelogs.exe 로그_찍을_폴더/tm-access_%Y-%m-%d.log 86400" combined

    Alias /app1 "D:/app/app1"
    # /app로 접속할 경우 d:/app/app1 폴더를 바라보게 설정하는 것. 미 설정시 htdocs를 바라본다.(기본 설정 되어있으니)
 
 <Directory "D:/app/app1">
     Options FollowSymLinks
     AllowOverride None
     Order deny,allow
     Allow from all
  </Directory>

 
  <Directory "아파치_설치_폴더/htdocs">
     Options FollowSymLinks
     AllowOverride None
     Order deny,allow
     Allow from all
  </Directory>

</VirtualHost>

설정은 모두 끝.
이제 서비스 등록 후 실행해서 로그를 살피면서 에러가 없는지 보아야 한다.

예상되는 에러는 Alias를 통해 우회시킨 폴더가 index 형태로 나오는 것.
권한이 없어 제대로 표시가 되지 않는 것.

index 형태로 나오는 것은 Directory 노드에 indexes를 제거하면 된다.



'Server' 카테고리의 다른 글

DIMM, RDIMM 등  (0) 2011.04.08