본문 바로가기
공부방/서버구축

[리눅스] 아파치 - 톰캣 연동 방법 (다중 톰캣 연동)

by 빵끗미 2022. 6. 28.
반응형

안녕하세요 빵끗입니다.

 

오늘은 아파치와 톰캣을 연동하는 방법에 대하여 알아보도록 할게요

 

아파치와 톰캣 연동하는 방법에서 사전 작업으로 아파치와 톰캣이 모두 설치되어 있는 환경 구성이 되어 있어야 해요.

 

우선 아파치와 톰캣을 연결할 수 있는 모듈 설치부터 진행한다.

 

1) jmod_jk.so 다운로드

[root@]# wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz wget 명령어로 jmod_jk.so 다운로드를 한다.


2) 압축 해제

[root@]# tar zxvf tomcat-connectors-1.2.46-src.tar.gz 다운로드한 파일 압축 해제를 한다.


3) 컴파일 진행

[root@]# cd tomcat-connectors-1.2.46-src/native 설치된 경로 이동 한다.
[root@]# ./configure --with-apxs=/usr/sbin/apxs apxs 옵션값은 아파치 설치 디렉토리 /bin/apxs을 지정 한다.
[root@]# make && make install make install 진행 시 mod_jk.so 파일이 apache/modules로 자동 복사 된다.


4) modules 안에 mod_jk.so 파일 있는지 확인

[root@]# cd /usr/local/apache/modules 작성자는 /usr/local/apache/ 경로에 apache를 설치를 했다.

따라서 apache/modules 경로에

mod_jk.so 파일이 있는지

ls -ltr 명령어를 이용하여 확인 한다.


여기서부터는 아파치 설정에 대한 부분이다.

 

5) 아파치 httpd.conf 파일에 mod_jk.so 모듈을 적용한다.

[root@]# cd /usr/local/apache/conf  /usr/local/apache/conf 경로 이동 하여 httpd.conf 파일을 편집 합니다.
 LoadModule jk_module modules/mod_jk.so Load 부분 아래에 내용을 추가 한다.


6) jk_module 설정

[root@]# vi httpd.conf httpd.conf 파일 수정 한다.

<IfModule jk_module>
     JkWorkersFile /usr/local/apache/conf/workers.properties
     #workers 파일 경로
     JKLogFile "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/mod_jk.log.%Y-%m-%d 86400 540"
     #로그 파일
     JkLogLevel error
     #로그 레벨
     JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
     # 로그를 남기는 포맷
    JkOptions +ForwardKeySize -ForwardDirectories
    JkRequestLogFormat "%w %V %T"
</IfModule>
 


7) 아파치 worker 생성 worker는 톰캣의 포트와 연결하는 역할을 한다. (작성자는 톰캣을 다중으로 사용했다.)

[root@]# vi /home/tomcat1/conf/server.xml  tomcat1의 server.xml 파일을 확인 한다.
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 톰캣의 AJP1.3의 포트 확인 한다.
[root@]# vi /home/tomcat2/conf/server.xml  tomcat2의 server.xml 파일을 확인 한다.
<Connector port="8119" protocol="AJP/1.3" redirectPort="8443" /> 톰캣의 AJP1.3의 포트 확인 한다.
[root@]# cd /usr/local/apache/conf/  톰캣의 AJP1.3의 포트를 확인 후 apache/conf/ 경로 이동 한다.
[root@]# vi workers.properties workers.properties 파일을 생성 한다.
worker.list=worker1, worker2
worker.worker1.port=8009
 # 연결할 톰캣의 포트 번호
worker.worker1.host=localhost
# 톰캣 서버
worker.worker1.type=ajp13
# 톰캣의 AJP1.3 프로토콜 사용
worker.worker1.lbfactor=1
# 작업 할당량

worker.worker2.port=8119
worker.worker2.host=localhost
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
아파치와 톰캣 연결하기 위하여 tomcat에 대하여 정의한 설정 파일 이다.

 

8) httpd-vhost.conf 설정

[root@]# vi /etc/local/apache/conf/exter/httpd-vhost.conf vhost 설정을 한다.
#도메인 test1.com
<virtualhost *:80>
ServerAdmin test1@test.com
ServerName test1.com
DocumentRoot "/home/tomcat1/webapps"
jkMount /* worker1
#Redirect permanent / https://test1.com 
#SSL 사용할 경우 80포트로 받아서 443으로 리다이렉트 시킴
ErrorLog "logs/test1-error_log"
CustomLog "logs/test1-access_log" common
</VirtualHost>

#도메인 test2.com
<virtualhost *:80>
ServerAdmin test2@test.com
ServerName test2.com
DocumentRoot "/home/tomcat2/webapps"
jkMount /* worker2
#Redirect permanent / https://test2.com
ErrorLog "logs/test2-error_log"
CustomLog "logs/test2-access_log" common
</VirtualHost>

유저가 도메인 test1.com으로 접근 할 경우

연동된  tomcat1로 처리 될 수있도록

설정 하였으며,

유저가 도메인 test2@test.com 접근 할 경우

연동 된 tomcat2로 처리 될 수 있도록

vhost를 설정 한다.


9) 아파치 재시작

/usr/local/apache/bin/apachectl -t syntax 검사 확인 하여 에러 부분을 확인 한다.
/usr/local/apache/bin/apachectl -M mod_jk 모듈이 정상적으로 등록 되어 있는지 확인 한다.
/usr/local/apache/bin/apachectl restart 설정한 부분을 적용하기 위해서 아파치 재시작을 한다.



11) 8080 포트 없이 사이트 진입했을 때 톰캣 화면 나오면 성공!!!!!

http://test1@test.com 도메인을 입력 했을때 톰캣과 연동 되었는지 확인 한다. 




 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형

댓글