WEB WAS/미들웨어

[CentOS 7] 아파치, 톰캣 연동 (mod_jk, Cent OS, Tomcat Connector)

chanstory 2023. 6. 7. 10:48
반응형

아파치와 톰캣을 mod_jk를 통해 연동 하고자 한다. (localhost, HTTP)

 

최종 결과물은 아파치의 80포트 진입 시 아파치 톰캣 8080 포트로 진입되는 것

톰캣 서버가 보이거나 따로 작성한 html 파일 내용이 보여야함

 

필자는 Cent OS 에서 실습을 진행하였음

 

아파치와 톰캣은 이미 설치되어 있고 아파치:80, 톰캣:8080 으로 테스트 웹브라우저 출력 확인은 완료된 상태임

아직 확인 완료 하지 못한 부분은 아래 링크 확인

 

아파치 설치

https://chance-story.tistory.com/94

 

[CentOS 7] 아파치 설치 및 실행 (yum 활용)

개발 환경 $ cat /etc/redhat-release CentOS Linux 버전 : 7.9.2009 아파치 설치 - yum 활용 => 설치에 필요한 패키지를 같이 설치해줌 => yum 으로 설치 시 systemctl 에 자동으로 서비스가 등록된다 // root 로그인 하

chance-story.tistory.com

https://chance-story.tistory.com/95

 

[CentOS 7] 아파치 톰캣 설치 및 실행 (jdk 설치, wget 활용)

open jdk 11 설치 => java --version 을 통해 설치 유무 확인 설치가 되어있지 않다면 설치 가능 리스트 확인 # yum list java*jdk-devel [root@localhost test2]# yum list java*jdk-devel Loaded plugins: fastestmirror, langpacks Loading

chance-story.tistory.com

 


설치 환경 확인 

# java -version

# yum list installed | grep tomcat

// 위 두 명령어를 통한 환경 확인

 

라이브러리 설치

// tomcat connector 컴파일 및 구성에 필요한 라이브러리 설치
# yum install httpd-devel gcc

 

Tomcat Connector 설치

 

https://tomcat.apache.org/download-connectors.cgi

 

Apache Tomcat® - Tomcat Connectors (mod_jk) Downloads

You must verify the integrity of the downloaded files. We provide OpenPGP signatures for every release file. This signature should be matched against the KEYS file which contains the OpenPGP keys of Tomcat's Release Managers. We also provide SHA512 checksu

tomcat.apache.org

 

파일 다운로드 및 압축 해제

# cd /usr/local

# wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
 --no-check-certificate
 
 # tar -xvzf tomcat-connectors-1.2.48-src.tar.gz

 

Tomcat Connector Config

# cd /usr/local/tomcat-connectors-1.2.48-src/native

# ./configure --with-apxs=/usr/bin/apxs

# make

 

 

아파치 설정 파일 수정

 

/etc/httpd/conf/httpd.conf 파일 수정

LoadModule jk_module modules/mod_jk.so            // mod_jk.so 위치 경로 확인
<VirtualHost *:80>
 ServerName localhost
 JKMount /*.jsp tomcat
 JKMount /*.json tomcat
 JKMount /*.xml tomcat
 JKMount /*.do tomcat
</VirtualHost>

Include conf.modules.d/*.conf

// 내용 추가
// 아파치 최 상위 설정 파일 (httpd.conf)에서 추가할 설정 파일들을 참조할 수 있도록 함
/etc/httpd/conf/workers.properties 
// 파일 생성 하여 내용 작성

// 내용
worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=127.0.0.1
worker.tomcat.type=ajp13

workers.properties 경로 지정 및 log 설정

 

 

130 DocumentRoot "/home/test1/apache-tomcat-8.5.89/webapps/ROOT"
131 
132 #
133 # Relax access to content within /var/www.
134 #
135 <Directory "/home/test1/apache-tomcat-8.5.89/webapps/ROOT">
136     AllowOverride None
137     # Allow open access:
138     Require all granted
139 </Directory>

/etc/httpd/conf/httpd.conf 파일 내 내용 추가

(기존 내용 주석처리 및 ROOT 경로 확인하고 작성)

 

/etc/httpd/conf.modules.d/mod_jk.conf
// 신규 파일 작성

//내용
<ifModule jk_module>
        JkWorkersFile           conf/workers.properties
        JkLogFile               logs/mod_jk.log
        JkLogLevel              info
        JkShmFile               /var/log/httpd/jk-runtime-status
        JkWatchdogInterval      30
</ifModule>

 

 

이후 서버 재가동

[root@localhost extra]# systemctl restart httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

 

오류가 보임

systemctl status httpd.service

또는 journalctl -xe 명령어를 통해 오류를 확인해보자

 

Jun 06 08:21:53 localhost.localdomain httpd[56019]: httpd: Syntax error on line 57 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf/ext...directory

 

오류 위치를 자세히 설명해준다

 

403 에러 발생 - 접근권한 오류로 보임 

=> webapps/ROOT 권한을 chmod 755 로 수정 하였음

 

ROOT 권한 바꾸고 경로 수정했음

find / -name "ROOT" 경로 찾음 

 

tomcat 에 대한 html 파일 위치 (사용자 마다 다름)

=> /webapps/ROOT/index.html

=> 간단한 html 파일 작성 (ex. hello world 만 출력)

 

서버 재기동하여 아파치 80 포트 접속 시 톰캣 8080 포트로 연결되는지 확인

 

참고

https://antdev.tistory.com/83

 

[Apache] CentOS 7.8에서 Apache(httpd)와 Tomcat을 mod_jk(AJP Protocol) 방식으로 연동한 프록시 환경 구성하기

CentOS 7.8에서 Apache(httpd)와 Tomcat을 mod_jk 방식으로 연동한 프록시 환경 구성하기 들어가기에 앞서 아래와 같은 Apache ↔ Tomcat간 Proxy 구성방식은 Apache 모듈에 따라 크게 3가지가 있습니다. 1. mod_proxy

antdev.tistory.com

 

https://jane096.github.io/linux/tomcat-apache-connection/

 

Linux CentOS 7 Apache/Tomcat 7 mod_jk로 연동하기

Linux에서 tomcat7과 Apache web server 연동하고 에러 해결 정리

jane096.github.io

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kiss7001&logNo=40197068951 

 

톰캣 연동할때 /usr/sbin/apxs를 못찾는다면

[root@ rosettaDEV native]./configure --with-apxs=/usr/sbin/apxs checking build system type... x86...

blog.naver.com

 

https://velog.io/@bonjaski0989/WEB-WAS-ApacheTomcat-modjk%EC%97%B0%EB%8F%99

 

[WEB-WAS] Apache↔Tomcat mod_jk연동

EC2 Linux2 기반 Apache-Tomcat mod_jk 연동 과정에 대하여 상세히 기술한 글입니다.

velog.io

 

반응형