티스토리 뷰

보통 톰캣 서버나 JAVA EE 서버를 사용할 때에는 load balancing을 위해 nginx나 apache 등 웹 서버를 배치한다.

이중 아파치와 톰캣을 연결하기 위해 크게 AJP 프로토콜과 reverse proxy를 사용한다.

reverse proxy는 자바 서버나 아파치에 국한되지 않고, 모든 종류의 서버에 사용할 수 있다는 장점이 있지만, 설정이 좀 더 복잡하다.

AJP 프로토콜은 아파치 재단에서 만든 프로토콜인데, 아파치 웹 서버와 JAVA EE 서버 간의 연결을 위한 프로토콜이다. 


지난 포스팅에서는 apache를 빌드했었다. 저 빌드로는 아파치에서 기본적인 html 페이지밖에 띄워주진 못하지만, 목적이 실제 운영이 아닌 AJP 프로토콜을 이용한 통신에서 테스트하는 것에 있으므로 php 등이 작동하든 말든 큰 상관은 없다.


AJP 프로토콜을 사용하기 위해선 AJP 모듈을 설치해야 한다. 이는 톰캣 공식 홈페이지에 들어가면 설치할 수 있다.

tomcat에는 포함되어 나오기 때문에 설치해줄 필요가 없다.

링크는 아래와 같다.

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


기본적으로 아파치와 아파치의 모듈은 C로 작성된 프로그램이기 때문에, 빌드 방식은 다 똑같다.

다만 이번엔 tomcat-connector directory에서 native 디렉토리까지 들어가야 한다.



./configure --with-apxs=/home/hello/apache/bin/apxs

make && make install



이번엔 prefix가 없다. apxs는 apache의 bin 디렉토리 내에 존재하므로, 상대경로를 알아서 다 잡아주는 것으로 보인다.

빌드가 끝났으면 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
링크
«   2025/01   »
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
글 보관함