준호씨의 블로그

OSX - tomcat과 httpd를 같은 포트로. mod_jk 설정하기 1. mod_jk 빌드하기 본문

개발이야기

OSX - tomcat과 httpd를 같은 포트로. mod_jk 설정하기 1. mod_jk 빌드하기

준호씨 2020. 3. 26. 22:35
반응형

레거시 시스템을 다루다 보면 tomcat과 httpd를 같은 포트에서 서비스하는 것을 종종 볼 수 있습니다. 요즘은 이런 식으로 구성하는 걸 보기 어려워진 거 같네요. 이번 글에서는 mod_jk를 이용해서 tomcat과 httpd를 연동하는 방법을 알아보겠습니다. 그것도 OSX에서요.

일단 apache httpd와 tomcat은 설치되어 있다고 가정하겠습니다. 저는 brew로 설치한 httpd와 압축 풀어서 설치한 tomcat을 사용하고 있습니다.

httpd와 tomcat을 연동하려면 mod_jk가 있어야 되는데요. http://tomcat.apache.org/download-connectors.cgi에서 Tomcat Connectors소스파일을 받아서 직접 빌드해야 합니다. brew로 설치할 수 있으면 좋겠는데 아직 없는 거 같습니다.

현재 최신 버전을 기준으로 받아서 압축을 풀겠습니다.

$ wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
$ tar xvfz tomcat-connectors-1.2.48-src.tar.gz
$ cd tomcat-connectors-1.2.48-src/native

빌드를 하기 전에 httpd에 있는 apxs의 위치를 확인합니다.

$ brew info httpd
httpd: stable 2.4.41 (bottled)
Apache HTTP server
https://httpd.apache.org/
/usr/local/Cellar/httpd/2.4.41_1 (1,653 files, 28MB) *
...

httpd 가 설치된 경로에서 /bin/apxs 에 있습니다. configure에 --with-apxs옵션을 이용해서 apxs의 경로를 지정해 줍니다.

$ ./configure --with-apxs=/usr/local/Cellar/httpd/2.4.41_1/bin/apxs

/usr/local/bin/apxs 에도 심볼릭 링크가 걸려 있는데 아마 이 경로를 이용해도 될 거 같네요.

$ ll /usr/local/bin/apxs
lrwxr-xr-x  1 junho85  admin    33B Jan 13 11:35 /usr/local/bin/apxs -> ../Cellar/httpd/2.4.41_1/bin/apxs

configure가 진행되고 있습니다

make로 빌드하고 make install로 설치합니다.

$ make

make 진행중인 모습입니다. 저 warning 잡고 싶다

$ make install

make install 결과를 잘 확인해야 합니다. mod_jk.so 파일을 httpd.conf 설정에 추가시켜줘야 되기 때문입니다.

$ make install
Making install in common
make[1]: Nothing to be done for `install'.
Making install in apache-2.0

Installing files to Apache Modules Directory...
/usr/local/Cellar/httpd/2.4.41_1/bin/apxs -i mod_jk.la
/usr/local/opt/httpd/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/local/opt/apr/libexec/build-1/libtool' mod_jk.la /usr/local/lib/httpd/modules
/usr/local/opt/apr/libexec/build-1/libtool --mode=install install mod_jk.la /usr/local/lib/httpd/modules/
libtool: install: install .libs/mod_jk.so /usr/local/lib/httpd/modules/mod_jk.so
libtool: install: install .libs/mod_jk.lai /usr/local/lib/httpd/modules/mod_jk.la
libtool: install: install .libs/mod_jk.a /usr/local/lib/httpd/modules/mod_jk.a
libtool: install: chmod 644 /usr/local/lib/httpd/modules/mod_jk.a
libtool: install: ranlib /usr/local/lib/httpd/modules/mod_jk.a
chmod 755 /usr/local/lib/httpd/modules/mod_jk.so

Please be sure to arrange /usr/local/opt/httpd/conf/httpd.conf...

make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.

mod_jk.so의 위치는 /usr/local/lib/httpd/modules/mod_jk.so 인 것을 확인할 수 있습니다. 다음에는 apache httpd에 이 모듈을 설정하는 방법을 알아보겠습니다.

ps. mod_jk의 jk가 무슨 약자인지 궁금한데요. 공식적인 내용을 찾지는 못했지만 jakarta의 약자인 거 같습니다. 예전 문서를 보면 tomcat-connectors가 아니고 jakarta-tomcat-connectors라는 것을 확인할 수 있습니다.

참고: https://tomcat.apache.org/connectors-doc-archive/jk2/jk/aphowto.html#Building%20mod_jk%20on%20Unix

반응형
Comments