티스토리 뷰
보통 톰캣 서버나 JAVA EE 서버를 사용할 때에는 load balancing을 위해 nginx나 apache 등 웹 서버를 배치한다.
이중 아파치와 톰캣을 연결하기 위해 크게 AJP 프로토콜과 reverse proxy를 사용한다.
reverse proxy는 자바 서버나 아파치에 국한되지 않고, 모든 종류의 서버에 사용할 수 있다는 장점이 있지만, 설정이 좀 더 복잡하다.
AJP 프로토콜은 아파치 재단에서 만든 프로토콜인데, 아파치 웹 서버와 JAVA EE 서버 간의 연결을 위한 프로토콜이다.
지난 포스팅에서는 apache를 빌드했었다. 저 빌드로는 아파치에서 기본적인 html 페이지밖에 띄워주진 못하지만, 목적이 실제 운영이 아닌 AJP 프로토콜을 이용한 통신에서 테스트하는 것에 있으므로 php 등이 작동하든 말든 큰 상관은 없다.
AJP 프로토콜을 사용하기 위해선 AJP 모듈을 설치해야 한다. 이는 톰캣 공식 홈페이지에 들어가면 설치할 수 있다.
tomcat에는 포함되어 나오기 때문에 설치해줄 필요가 없다.
링크는 아래와 같다.
기본적으로 아파치와 아파치의 모듈은 C로 작성된 프로그램이기 때문에, 빌드 방식은 다 똑같다.
다만 이번엔 tomcat-connector directory에서 native 디렉토리까지 들어가야 한다.
./configure --with-apxs=/home/hello/apache/bin/apxs
make && make install
빌드가 끝났으면 apache 디렉토리 내의 modules 디렉토리에 mod_jk.so가 생긴 것을 볼 수 있다.
이제 conf/httpd.conf로 들어가서
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
JkWorkersFile /home/hello/apache/conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMount /* worker1
</IfModule>
를 추가한다.
JkWorkersFile은 연동할 서버의 목록과 사용할 포트, host 등을 표시한 파일의 경로를 의미한다.
JkMount는 AJP가 적용될 context 경로를 의미한다.
그리고, conf directory 내에 workers.properties를 추가한다.
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=127.0.0.1
worker.worker1.type=ajp13
여기서 list에 여러 worker를 할당할 수 있는데, 각 worker는 ,로 구분한다.
여기서 나오는 "worker1"은 httpd.conf 파일에서 각 context를 어떤 worker에 mount 해줄지 결정할 때 쓰인다.
톰캣에선 기본 설정에 port 80009가 설정되어 있다. tomcat/conf/server.xml에 보면 아래와 같이 설정이 있다.
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
여기서 인코딩을 변경할 수 있다. URIEncoding을 추가하면 된다. 기본 인코딩은 ISO-8859-1이다.
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
이제 TOMCAT_HOME/bin에 들어가 ./startup.sh 를 실행해 톰캣을 해 테스트 하면 잘 작동한다.
'개발 > 아파치와 톰캣' 카테고리의 다른 글
Tomcat HTTP location Header 이슈 (1) | 2019.08.18 |
---|---|
자바 어플리케이션 inputstream 주의사항 (0) | 2019.01.20 |
ajp 요청 헤더2 (0) | 2019.01.20 |
AJP 요청 헤더 (0) | 2018.10.27 |
아파치 간단 빌드 (0) | 2018.07.06 |
- Total
- Today
- Yesterday
- Azure
- 오블완
- 현금영수증
- ORM
- Spring
- 전세사기
- 안전신문고
- JPA
- Thymeleaf
- 한국교통안전공단
- k베뉴
- springboot3
- Request
- springboot
- n+1
- 공익제보단
- 홈택스
- 부가가치세
- 티스토리챌린지
- 포상금
- 알리익스프레스
- 광군제
- 탈세
- java
- 토스페이
- 이륜차
- 알리
- Java17
- tomcat
- ouath2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |