Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 국가IP차단
- DNS
- 시스템관리
- Apache
- linux
- ubuntu
- 서버방화벽
- 파일질라
- 서버운영
- oops-firwall
- 리눅스
- postfix
- FileZilla
- FTP
- iptables
- SMTP설정
- SSL인증서
- 서버관리
- centos7
- 리눅스서버
- 웹서버
- 서버보안
- sftp
- 티스토리챌린지
- geoip
- ip차단
- CentOS
- 오블완
- 리눅스명령어
- https
Archives
- Today
- Total
운영중입니다
Apache + Tomcat + mod_jk 연동 가이드2 본문
이전 내용
https://https443.tistory.com/28
5. Apache mod_jk 설정
#5.1. mod_jk.conf 생성
#mod_jk.conf는 Apache와 Tomcat 사이의 연결 다리 역할을 수행하는 핵심 설정 파일입니다.
vim /etc/httpd/conf.d/mod_jk.conf
-----------------------포함 내용 -----------------------
# mod_jk 모듈 로드
LoadModule jk_module modules/mod_jk.so
# 워커 파일 경로
JkWorkersFile /etc/httpd/conf.d/workers.properties
# mod_jk 로그 설정
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
# 특정 URL을 Tomcat으로 포워딩
JkMount /app/* worker1
--------------------------------------------------------
#5.2. workers.properties 파일 생성
#Tomcat 서버의 위치와 통신 방식(AJP)을 정의하는 파일입니다.
vim /etc/httpd/conf.d/workers.properties
-----------------------포함 내용 -----------------------
# Define worker
worker.list=worker1
# Worker 1 configuration
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=9009
worker.worker1.lbfactor=1
--------------------------------------------------------
#5.3 uri.properties 파일 생성
#Apache가 수신한 요청 중 Tomcat으로 전달할 특정 확장자나 URL 패턴을 관리합니다.
-----------------------포함 내용 -----------------------
/*.do=worker1
/*.jsp=worker1
--------------------------------------------------------
6. 서비스 재시작
설정 파일을 수정한 후에는 변경 범위에 따라 서비스를 재시작해야 안전하게 적용됩니다.
#mod_jk 설정만 변경한 경우 → Apache 재시작
systemctl restart httpd
T#omcat 설정/웹앱 변경한 경우 → Tomcat 재시작
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
#전체적인 구조 변경 시 → Apache와 Tomcat 모두 재시작을 권장합니다.

7. Apache + mod_jk + Tomcat으로 홈페이지가 동작하는 전체 흐름
연동이 완료된 후 데이터가 처리되는 전체 프로세스는 다음과 같습니다.
#1. 사용자가 브라우저에서 홈페이지 접속
https://www.example.com/index.jsp
#2. HTTP 요청이 Apache HTTPD로 먼저 도착
Apache는 웹 서버로서 80/443 포트에서 모든 HTTP 요청을 가장 먼저 받습니다.
Apache -> 프론트엔드
Tomcat -> 어플리케이션 엔진
#3. Apache는 mod_jk 모듈을 읽고 동작 방식 결정
/etc/httpd/conf.modules.d/ 혹은 conf.d/ 에 지정된 다음 설정이 로드.
#mod_jk.conf
-----------------내용------------------------
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMountFile conf/uri.properties
</IfModule>
---------------------------------------------
#의미:
Apache가 시작되면 mod_jk.so 모듈을 로드 후
Tomcat과 연결할 worker 설정을 읽습니다.
이후 어떤 URL을 Tomcat에 보낼지 uri.properties를 읽습니다.
#4. Apache는 URL이 JSP/Servlet 요청인지 판단합니다.
#uri.properties
-----------------내용------------------------
/*.do=worker1
/*.jsp=worker1
---------------------------------------------
.jsp파일, .do 로 끝나는 URL 은 Apache에서 처리하지 않고 worker1 (Tomcat)으로 넘깁니다.
/home.do → worker1
/index.jsp → worker1
#반면
/index.html, /style.css, /images/logo.png etc 같은 정적 파일은 Apache가 직접 처리합니다.
# 5. Apache → Tomcat 로 요청을 연결 (AJP 프로토콜)
#worker1 정의: workers.properties
-----------------내용------------------------
worker.list=worker1
worker.worker1.port=9009
worker.worker1.host=localhost
worker.worker1.type=ajp13
---------------------------------------------
#의미:
Tomcat AJP Connector는 9009 포트로 열려 있습니다.
Apache는 mod_jk를 통해 AJP 프로토콜로 Tomcat과 통신합니다.
worker1 = Tomcat instance 1
AJP는 Apache–Tomcat 연동을 위한 고속 바이너리 프로토콜입니다.
HTTP보다 빠르고 메타데이터를 더 많이 전달합니다.
#Apache는 이 worker1을 통해 Tomcat에 요청을 보냅니다.:
Apache → mod_jk → AJP 9009 → Tomcat
#6. Tomcat이 Servlet/JSP 엔진으로 요청을 처리합니다.
Tomcat은 요청을 받아 다음을 실행합니다.:
JSP 요청 처리 과정
#1. JSP 파일을 서블릿(Java 코드)로 변환합니다.
#2. 그 서블릿을 컴파일합니다. (최초 1회)
#3. 서블릿 실행합니다.
#4. 결과 HTML 생성합니다.
#5. 생성된 HTML을 AJP로 Apache에게 반환합니다.
Servlet (.do) 요청 처리 과정
예: /login.do
#1. web.xml 또는 Spring DispatcherServlet에 매핑된 컨트롤러가 실행합니다.
#2. 비즈니스 로직 처리합니다. (DB접속 등)
#3. 결과 JSP 혹은 JSON 생성합니다.
#4. HTML 또는 JSON을 Apache로 반환합니다.
#7. Apache는 Tomcat에서 받은 응답을 사용자에게 전달합니다.
Apache는 Tomcat(9009)에서 받은 HTML 응답을 HTTP 형태로 클라이언트에게 전달합니다.:
Tomcat → Apache → 브라우저
브라우저는 Tomcat에 직접 요청을 보내지 않습니다..
#8. 최종적으로 사용자의 브라우저에 완성된 페이지가 출력됩니다.
JSP/Servlet으로 생성된 HTML 결과를 브라우저가 렌더링합니다..'리눅스' 카테고리의 다른 글
| Linux find 명령어 정리 및 활용 예시 2 (0) | 2025.11.22 |
|---|---|
| Linux find 명령어 정리 및 활용 예시 1 (0) | 2025.11.21 |
| Apache + Tomcat + mod_jk 연동 가이드1 (0) | 2025.11.17 |
| 리눅스 계정 비밀번호 만료 설정 및 확인 방법 정리 (0) | 2025.10.22 |
| CentOS 서버에서 stress를 활용한 부하 테스트 (0) | 2025.10.02 |