티스토리 뷰

Programming/server

Apache, Tomcat 연동

Namhyun Sung 2019. 7. 14. 19:25

Apache, Tomcat 연동

1. 연동 방식


연동 방식은 mod_jk, mod_proxy, mod_proxy_ajp 세가지 방식이 존재합니다. 이 세가지를 간단하게 설명하자면, 아래와 같은 특징이 있습니다.

  • mod_jk

    • URL이나 콘텐츠별로 유연한 매핑 가능(이미지 등 정적 콘텐츠는 웹서버, 서블릿은 Tomcat에서 처리)
    • 전용 바이너리 프로토콜이므로 mod_proxy보다 빠른 경우가 있다.
    • 별도의 모듈을 설치해야 됨.
  • mod_proxy, mod_proxy_ajp

    • 별도의 모듈 설치가 필요없고 설정이 간편하다.
    • 특정 WAS에 의존적이지 않다.(모든 WAS에 적용 가능)

이 글에서는 mod_jk를 이용한 연동 설정만 다루겠습니다.

2. 연동 방법


2-1. Apache, Tomcat 설치


저는 CentOS 7.6.1810에 기본 설치된 Apache 2.4.39를 사용했습니다. 아파치의 기본 포트는 80포트로 설정되있습니다.

Tomcat은 https://tomcat.apache.org/download-90.cgi 에서 받거나,

터미널에서

wget -C tar.gz의 링크주소

위 명령어를 통해 받을 수 있습니다.

저는 최신 버전인 Tomcat 9.0.22를 사용했습니다.

2-2. mod_jk 설치


CentOS에서 mod_jk를 설치하려면 gcc, httpd-devel 패키지가 설치되있어야 합니다.

yum install gcc httpd-devel

위 명령어를 사용하여 설치해주시기 바랍니다.

설치 후, Tomcat Connector를 다운받아야 합니다.

https://tomcat.apache.org/download-connectors.cgi 에서 다운 받거나,

아래 명령어를 통해서 다운받아주시기 바랍니다.

curl -O http://mirror.navercorp.com/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz

터미널에서 다운 받은 디렉토리로 이동 후, 아래 명령어를 통해 압축을 풀어주세요.

tar zxvf tomcat-connectors-1.2.46-src.tar.gz

압축을 해제하고 cd 압축해제위치/native 명령어로 이동합니다. 그리고 다음 명령어를 실행해주세요.

./configure --with-apxs=/usr/sbin/apxs

apxs의 경로가 다를 수 있으니 which apxs를 통해서 꼭 확인해주세요.

위 명령어가 정상적으로 실행됐다면, 마지막으로 아래와 같이 make, sudo make install 명령어를 실행합니다.

make
sudo make install

정상 수행이 되면, /etc/httpd/modules/ 경로에 mod_jk.so가 생성됩니다.

2-3. 톰캣 설정하기


톰캣을 추가로 설정하기 보다는 기존의 설정 확인만 하면 됩니다.

톰캣 설치 경로에서 conf안에 server.xml을 열어서 주세요.


vi 톰캣 설치 경로/conf/server.xml

# 위 명령어를 통해 에디터를 열은 후 다음과 같은 설정 부분이 있는지 확인합니다.

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

# 주석은 없어도 됩니다. 포트 번호가 8009인지 확인합니다.
# 아예 위 부분이 주석처리 되있다면 해제해주세요.

2-4. 아파치 설정하기


연동할 톰캣의 리스트를 나타낼 workers.properties 파일을 만듭니다.

위치는 아파치가 설치된 디렉토리/conf/로 정하겠습니다.


cd /etc/httpd/conf/

여기서 vi workers.properties 명령어를 통해 에디터를 열고 아래와 같이 입력합니다.


worker.list=worker1

worker.worker1.type=ajp13 #위에서 확인한 serverl.xml의 protocol과 일치해야됩니다.
worker.worker1.host=localhost
worker.worker1.port=8009 #위에서 확인한 server.xml의 port와 일치해야됩니다.

위와 같이 입력하고 저장합니다.

다음 단계는 httpd.conf를 수정해야됩니다.

httpd.conf는 아파치가 설치된경로/conf/ 밑에 존재합니다.

vi 아파치가설치된경로/conf/httpd.conf 명령어를 통해 에디터를 엽니다.

아래와 같이 입력해주세요. 저는 나중에 찾기 쉽도록 제일 밑에 입력하겠습니다.


#mod_jk.so 위치
LoadModule jk_module modules/mod_jk.so

#workers설정 파일 위치
JkWorkersFile conf/workers.properties

#log 위치
JkLogFile logs/mod_jk.log

#공유 메모리 파일 위치 selinux 보안때문에 run에 위치 필수
#Load balancing workers will not function properly 오류 대응, http의 권한
JkShmFile run/mod_jk.shm

#URL에 따른 요청 처리 설정
JkMount /* worker1

3. 확인


설정은 다 끝났고, 브라우저를 통해서 확인해보겠습니다.

톰캣 설치경로의 bin 디렉토리에서 ./startup.sh 실행 후, 아파치를 실행해주세요.

./startup.sh

sudo apachectl start

톰캣과 아파치 실행 후, 브라우저에서 http://localhost로 이동했을 때, 톰캣 디렉토리의 Webapps/root/index.jsp가 보이면 톰캣과 아파치 연동에 성공한겁니다.

success

참고

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함