#서론
여러 사이트를 돌면서 연동 설명방법도 다 제각각이고,
실패를 통해서 지웠다 설치했다를 반복하면서
내가 가장 좋다고 생각했고, 직접 사용한 방법을 따라하기 쉽게 정리해 본다. 

연동 방법은 다양하게 있는데


보통 검색하면 mod_jk 방법을 많이 사용한다.


mod_jk를 사용하고 싶으면


http://noviceany.tistory.com/37 여기에 들어가서 따라하면 된다.


연동을 하는 이유는 80포트를 아파치가 받아 처리하고, 


jsp처리가 필요할 때 톰캣에게 작업을 넘겨주고 반환받는 방식인데


mod_jk를 사용하니까 완전히 톰캣처리만 가능하게 되버린 것 같다.


내가 부족한 탓도 있겠지만, blog.lael.be에서 친절하게 설명해 준 더 좋은 방법을 찾을 수 있었고


프록시를 사용해 php와 jsp를 한번에 처리할 수 있도록 했다.



크게 3가지로 설정할 수 있는데


1. 사이트의 모든 요청을 Tomcat 이 처리하도록 수정


2. 사이트의 특정 경로만 Tomcat 이 처리하도록 수정


3. PHP, JSP를 동시에 같은 경로에서 사용


중에서 나는 3번을 하기로 했다.


(1번과 2번은 https://blog.lael.be/post/1023 여기에서 읽어보면 된다.)



사전 단계
우분투 14.04 LTS 기준으로 설명
연동하기 위해 아파치와 톰캣을 미리 설치해야 한다.
아파치2 설치 https://blog.lael.be/post/73

톰캣7 설치 https://blog.lael.be/post/858





첫번째 단계


먼저 Apache 프로그램에서 ProxyPass 관련 구문을 해석할 수 있도록 설정


a2enmod proxy



http 로 proxy 할 수 있도록 변경 


a2enmod proxy_http





#두번째 단계


/etc/apache2/sites-available 경로로 들어가 default 이름이 들어간 conf 파일을 열어준다.


아래와 같이 몇 가지만 변경 및 추가해주면 된다.


1. DocumentRoot 의 경로를 실제 톰캣서버의 베이스주소로 설정한다.


(나같은 경우는 /var/lib/tomcat7/webapps/ROOT/ 이다.)



2. 그 아래 ProxyPassMatch ^/(.*\.jsp(/.*)?)$ http://localhost:8080/$1 를 추가해 준다.



3. 그 아래 


 <Directory /var/lib/tomcat7/webapps/ROOT/>

                Options FollowSymLinks MultiViews

                AllowOverride All

                Order allow,deny

                allow from all

                #14.04 rules

                require all granted

        </Directory>



를 추가해 준다.


Directory /var/lib/tomcat7/webapps/ROOT/ 이것도 자신에 맞게 변경해야 한다.




 완성 본 (주석 및 다른코드는 생략)

<VirtualHost *:80>

        DocumentRoot /var/lib/tomcat7/webapps/ROOT/


        ProxyPassMatch ^/(.*\.jsp(/.*)?)$ http://localhost:8080/$1


        <Directory /var/lib/tomcat7/webapps/ROOT/>

                Options FollowSymLinks MultiViews

                AllowOverride All

                Order allow,deny

                allow from all

                #14.04 rules

                require all granted

        </Directory>

</VirtualHost>




아래와 같이 php와 jsp를 톰캣안에 같은 경로에 넣어놓으면 동시에 처리할 수 있다.


스크린샷 2015-03-29 오후 9.19.33 

(이미지 출처 https://blog.lael.be/post/1023)


http://ip/index.jsp 

http://ip/index.php


로 둘다 접근이 가능하다.




#선택 사항


/etc/tomcat7/server.xml 에서



스크린샷 2015-03-29 오후 9.24.03

(이미지 출처 https://blog.lael.be/post/1023)


이렇게 주소를 한정시키면, 서버에서만 8080포트를 접근할 수 있어 보안에 좋단다.


외부에서는 8080로 직접 접근할 수 없고, 80포트를 이용해서 접근하면 아파치가 8080작업으로 넘겨준다.




#마지막 단계


service apache2 restart

service tomcat7 restart


로 변경사항이 적용될 수 있게 아파치와 톰캣서비스를 재시작 해주자.





#결론


https://blog.lael.be 운영하시는분 항상 감사합니다.

모든 출처는 여기에 있습니다. 제가 이렇게 써도 될지 모르겠네요.


+ Recent posts