Programming/Java

우분투 톰캣 다중 인스턴스 (Ubuntu 14.04 + Tomcat 8 multiple instances)

Figo Kim 2014. 9. 9. 01:29
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자...지금까지 해 봤던것을 정리해보면,,

우분투에 자바를 설치하고, 톰캣을 설치하고, 추가적인 후속작업까지 해봤다..

궁금하신 분들은 아래의 글들을 보시기 바랍니당...


2014/08/01 - [Java] - 우분투에 Oracle Java (오라클 자바) 설치하기


2014/09/06 - [Java] - 우분투 14.04에서 톰캣 8 (Tomcat 8) 설치해보기~!


2014/09/06 - [Java] - 우분투 14.04에 톰캣8 (Tomcat 8) 설치 ,, 후속작업


지금까지는 편하게도 apt-get을 통해서 할 수 있었다..


이제 해 볼것은 톰캣 다중 인스턴스를 구동해보는것이다..


왜? 실제 운영환경에서는 어쨋거나 하나의 서버 또는 하나의 인스턴스로만 서비스를 하는 환경은 없을것이다.


하나 뻗으면 다 죽으니깐....


그래서 좀 찾아봤다...


어케하면 두개의 톰켓을 구동할 수 있을까?


다행이도 상당히 많은 자료를 찾을 수 있으나, 아쉽게도 대부분


apt-get을 통해서 설치된 tomcat을 이용한게 아니라,
binary를 직접 다운받아서 어쩌구 저쩌구 해야한다..





이 얼마나 짜증나는 일인가..

왜??? 이미 apt-get으로 설치해뒀는데,,다시 해야 하다니..

장난해?


그래서 연구에 연구를 거듭한 끝에...는 아니고,,그냥 어마어마한 검색의 결과,,,



http://manpages.ubuntu.com/manpages/lucid/en/man1/tomcat6-instance-create.1.html

이 내용을 토대로 작접을 시작해보기해 했다..........................



우선 우분투 공식 문서상에 의하면 tomcat6-instance-create이란 패키지는 tomcat6-user_..... 에서 제공하는걸로 나온다.

어? 그런데 난 톰캣 8 설치하려고 한건데?? 이상하죠?

혹시나 하는 마음에 tomcat8-user라는 패키지를 설치해봤습니다.

ㅎㅎㅎ


apt-get install tomcat8-user



와우~~!! 잘 됩니다~!!

왜?? 잘 될까요? 이미 톰캣 8을 위한 저장소를 추가했었으니깐요.ㅎㅎ


자 이제 tomcat8-user 패키지가 설치됬으니, 다음 작업을 시작해봅시다.

기본적으로 다중 인스턴스가 구동된다는 것은, 각각의 인스턴스가 독립적인 파일을 사용하는것으로 보는게 좋다.

톰캣도 그런 관점에서 접근해야 한다.

즉, 각 인스턴스를 위한 독립적인 파일들을 만들어 줘야 하는것이다.

그걸 해주는게 바로 tomcat8-instance-create 이란 명령어다..


사용법은 http://manpages.ubuntu.com/manpages/lucid/en/man1/tomcat6-instance-create.1.html 여기에 아주 잘 설명되어 있다.


우리가 해야 할 것은 각 인스턴스 파일들이 생성될 폴더를 만드는것과,

해당 폴더의 권한만 설정해주면 된다.


난 /opt/tomcat8란 폴더를 만들었고

해당 폴더의 소유권 설정을 tomcat8:root로 설정해줬다.





자 이제 폴더도 만들었으니, 인스턴스를 생성해주면 된다...


tomcat8-instance-create -p 8081 -c 8006 /opt/tomcat8/server1

tomcat8-instance-create -p 8082 -c 8007 /opt/tomcat8/server2



이후 기존 톰캣 폴더(우분투 기준 /etc/tomcat8 ) 에서 policy.d 디렉토리를 각 인스턴스의 conf 폴더에 복사해주면 인스턴스 파일 생성은 완료된다.


생성된 인스턴스의 bin 폴더로 이동해서 시작 스크립트를 수행하면 다음과 같이 나오면서 인스턴스가 실행이 된다..

server2 폴더로 이동해서도 마찬가지로 startup.sh 스크립트로 추가적인 인스턴스 구동이 가능하다.

하지만...뭔가 좀 부족한 듯한 느낌이 든다....

매번 해당 인스턴스로 가야 하는건가?


service xxxxx start 형태로 만들 수 없을까?

있다~!!!


cd /etc/init.d

cp tomcat8 tomcat8-server1

cp tomcat8 tomcat8-server2


우선 위와같이 tomcat8구동 스크립트를 복사해두자..

그리고 복사된 tomcat8-server1과 tomcat8-server2 파일 내용 중 일부를 다음과 같이 수정해주자..~



시스템 start / stop 링크를 아래와 같이 업데이트해주자..

update-rc.d tomcat8-server1 defaults 90

update-rc.d tomcat8-server2 defaults 90




이후 기본적인 톰켓 서비스를 시작하는것처럼 해당 인스턴스를 실행해주면 된다.

service tomcat8-server1 start


왈라~~!!!!

두번째 인스턴스 파일에 대해서도 동일한 작업을 해주면 된다.


아.............졸립네요...



지금 시간 2014년 9월 9일 새벽 2시 47분....






도움이 되셨다면 공감 버튼 한번 눌러주삼~!!!!