아파치 웹 서버와 톰캣을 연동하기에 앞서 연동함으로써 얻는 이점은 무엇인지,

어떤 원리로 연동하게 되는지 알아보려합니다.

아파치와 톰캣을 연동하는 이유로 널리 알려진 바는 아래와 같습니다.

1. 톰캣은 정적인 페이지를 로드하기에 아파치 보다 느린 처리속도를 보인다.

2. 톰캣은 설정할 수 있는 내용들이 아파치에 비해 부족하다.

3. 톰캣은 아파치보다 부하에 약하다.

4. 톰캣만으로는 서블릿/JSP밖에 서비스할 수 없다.

5. 톰캣과 아파치를 연동하여 부하분담이 가능하다.(다수의 톰캣 구성으로의 로드밸런싱의 의미가 아닌 톰캣만으로 처리가능한 static page를 apache에서 대신함으로써의 부하 분담)

통상적으로 많은 사람분들이 말하시는 연동이유는 1번과 5번이 많은 것 같습니다.

톰캣으로 작업이 가능하지만, apache를 연동하여 static page의 처리를 분담하여 처리한다.

하지만 이에 대해서 인용되는 글이 있습니다.

톰캣과 아파치의 연동이 위와 같은 이유에서는 불필요하다는 요지의 글인데 아래 링크에서 확인 가능합니다.

http://www.tomcatexpert.com/blog/2010/03/24/myth-or-truth-one-should-always-use-apache-httpd-front-apache-tomcat-improve-perform

정리하면 톰캣 5.5이상에서 httpd의 native 모듈로 static page를 처리하므로 1번과 5번은 큰 의미가 없다는 것입니다.

즉 단순히 속도의 문제(1번)라면 (톰캣 5.5 이하의 버전일 경우를 제외할 때) 둘을 연동할 필요는 없습니다.
5번째 부하분담의 문제에는 1번의 경우와는 약간 다른데, 이 경우는 static page를 tomcat이 직접 처리하여 생기는 부하와 apache에서 대신처리하기 위해 앞쪽에 아파치를 놓음으로써 생기는 작업 분산에 대한 부하를 비교해봐야 할 것입니다.
(5번에 대해서는 정적인 페이지에 대한 처리로 인한 부하 감소 효과가 있을 것으로 생각합니다.)

5번의 경우 정확한 성능비교를 할 수 는 없었지만, 여러 정보를 종합해 볼때, staitc page의 처리 속도와 부하, 불안정성으로 인한 연동은 tomcat의 성능개선으로 인해 의미가 많이 줄어든 것 같습니다.

그렇다면 남은 이유는 2번과 4번입니다.

아파치의 다양한 옵션들(mod_security, mod_rewrite , 로드밸런싱등의 여러가지 모듈)을 사용할 수 있다는 점과, 다른 서버사이드 애플리케이션을 사용할 수 있다는 것이 큰 이점입니다.

예를 들어, apache와 tomcat으로 구축한 웹사이트 (html , css , jsp등)에서 보안모듈이나 , 리다이렉션 기능을 추가하는것은 간단한 일이며, 갑자기 php페이지가 추가되어야 한다고 해도, 이미 안정화된 사이트에서 추가로 php를 사용하는 것은 몇분이면 충분히 해결 할 수 있기 때문입니다.

종합해보면 , 기본적으로 apache에서 static page를 맡아 처리하고 tomcat은 JSP/Servlet 이라는 점에서의 연동도 의미가 있지만, 그보다 apache는 확장이라는 측면, tomcat의 자바업무 수행이라는 측면으로 자료의 확장자 이상의 의미로 연동한다고 생각합니다.

출처 : http://nomore7.tistory.com/5

apache tomcat connector  설치 하는데 libtool 오류로 인해 mod_jk.so 모듈이 생성되지 않았다.

이전에도 이와 같은 문제가 있었던 적 있었는데 기억이 가물가물..

검색 해보아도 libtool을 소스 설치 하란 얘기들.. 하지만 결과는 동일했다.

 

빌드 수행할때 시스템의 libtool을 사용 하는 것이 아니라 apache 의 libtool을 사용하기에 문제가 된 것으로

아래와 같이 변경 해준다.

 

우선 혹시 모를 사태를 대비해 늘 그렇듯 이름 바꿔놓고..

libtool 소스 컴파일 하신 경우는 아래와 같이..  복사

컴파일이 아닌 rpm 혹은 yum으로 설치 하신 경우엔.. 

그리고 나서 make clean 하신 후 다시 진행 해보면 정상적으로 모듈이 생성 된다

========== 에러 내용 ===========

Warning!  dlname not found in /usr/local/apache2/modules/mod_jk.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache2/modules/mod_jk.so
chmod: cannot access /usr/local/apache2/modules/mod_jk.so No such file or directory
apxs:Error: Command failed with rc=65536
.
make[1]: *** [install_dynamic] Error 1
make[1]: Leaving directory
/usr/local/src/tomcat-connectors-1.2.37-src/native/apache-2.0'
make: *** [install-recursive] Error 1

libtool: install: warning: remember to run `libtool –finish /usr/local/apache2/modules;

/bin/rm cannot remove libtoolT : no such file or directory done

아파치를 기반으로 운영하는 워드프레스의 경우 고유주소에 대한 해결을 .htacess를 통해 rewirte 구문으로 해결하고 있다.

하지만 nginx의 경우 .htacess로 처리가 되지 않아 여러모로 찾다가 구글링을 통해 방법을 찾아 공유 한다. 

 

고유주소 기본형식에서 포스트이름 형태로 바꿧더니 계속해서 404 Error를 내뿜었다.

 

적용하는 방법은 굉장히 간단하다. 

nginx.conf 혹은 자신의 가상호스트 설정 파일에서 location 영역안에 빨간색 try_files부분을 추가해준다.

    location / {
        root   /home/rubi/public_html;
        index  index.php index.html index.htm;
   
try_files $uri $uri/ /index.php?$args;
    }

추가하고 저장 한 후 nginx를 restart 또는 reload 해준다. 

간단한걸 가지고 여러가지 해보며 시행착오를 거쳤다.

 

참고 : http://www.lowendguide.com/3/webservers/wordpress-permalinks-with-nginx/