[CentOS] 클라우드 하나에서 여러개의 톰켓 사용하기

반응형

이번시간에는 여러개의 톰켓을 사용하는 방법에 대해 다루겠습니다.

 

클라우드 하나에서 여러개의 톰켓 사용하기

 

 

 

저번에는 만든 네이버 클라우드 하나로 프로젝트 하나를 실행하는 방법에 대해 글을 작성하게 되었습니다. 

네이버 클라우드 서버 만들기

그래서 이번에는 좀 더 진도를 나아갔습니다.

 

프로젝트 하나당 클라우드 하나를 실행하는 것에는 기본적인 방법이지만, 사용할 수 있는 자원이 많은 상태에서 클라우드를 하나 더 만든다는 것은 비용의 문제가 발생합니다.

 

예를 들어, 집 안에 창고로 사용하기 위한 방 하나를 만들었다고 합니다.

그리고 그 창고에는 각종 물건이 들어있습니다.

 

그러나 프로젝트를 하나 더 실행 시키기 위해 클라우드를 만든다는 것은 창고에 여유공간이 있지만 또 다시 새로운 창고를 쓸 방을 만든다는 의미를 갖게 됩니다.

 

즉, 짐을 더 쌓을 수 있는 여유공간이 있으므로 창고를 더 만들 필요는 없습니다.

 

마찬가지로 클라우드도 사용하는 곳이 같다면, 굳이 또 하나의 클라우드를 만들 필요가 없습니다.

비용과 관리에 손해를 보기 때문입니다.

 

따라서 클라우드 하나에서 여러개의 프로젝트를 돌릴 수 있는 상황이 생길 수 있다는 뜻이되고 그 상황을 해결 하기 위해 이처럼 글을 작성하게 되었습니다.

 

 

 

[이전 글] 톰켓 설치하는 방법

https://mollangpiu.tistory.com/181

 

[CentOS] 톰켓 설치하기

이번 시간에는 CentsOS에 톰켓을 설치하는 시간을 갖도록 하겠습니다. CentOS 톰켓 설치하기 톰켓을 설치하기 위해서는 기본적으로 java의 설치가 필수적 입니다. mollangpiu.tistory.com/170 [리눅스] JAVA 설

mollangpiu.tistory.com

또 하나의 톰켓을 설치하면 됩니다.

 

 

위의 링크를 따라하셨다면, 기존의 톰켓 tar.gz가 있습니다.

이제 이를 위 과정을 한 번 더 따라 합니다.

 

 

톰켓 설치 압축 풀기


 

tar -xzf apache-tomcat-8.5.61.tar.gz

tar -xzf 압축파일명

 

기존처럼 명령어를 입력해서 압축을 해제합니다. 압축을 풀은 톰켓은 이와같이 표시가 됩니다.

 

 

 

디렉토리 관리하기


cd /usr/local

mkdir tomcat

 

앞으로 2개이상의 톰켓을 관리하기 위해서는 명칭과 톰켓을 관련된 것 끼리 보관의 필요성이 있습니다.

 

지금 당장에서야 어디에다가 설치하든 찾을 수 있지만, 나중가면 까먹을 수 있기 대문입니다.

그래서 /usr/local 경로에서 tomcat 디렉토리를 만드려고 합니다.

 

앞으로 설치되는 톰켓, 지금까지 설치된 톰켓은 전부 이곳에서 보관할 것 입니다.

 

tomcat 디렉토리가 만들어진 것을 확인합니다.

 

 

톰켓 폴더 이동시키기


 

mv apache-tomcat-8.5.61 /usr/local/tomcat/test

mv [옮길 디렉토리 대상] [옮길 위치]

 

mv명령어를 이용해서 파일을 옮깁니다. 그리고 mv의 부가적인 기능을 이용해서 apache-tomcat-8.5.61이라는 이름 대신해서 test라는 이름으로 명칭을 변경하였습니다.

 

이는 mv에 대한 이해도를 약깐만 이해하신다면 누구나 쉽게 사용할 수 있는 스킬입니다.

 

여기서 ls 명령어를 치게 된다면, 기존의 톰켓과 새로 만들어진 톰켓이 새로 들어온 것을 확인 할 수 있습니다.

 

톰켓을 적절한 관리를 하기 위해 저는 경로명을 앞으로 /usr/local/tomcat/명칭 으로 관리합니다.

차후 톰켓을 확인하기 위해서는 /usr/local/tomcat에만 접속하면 누구나 쉽게 접근 할 수 있습니다.

 

 

 

톰켓 세팅하기


당연하겠지만, 경로의 차이만 있을 뿐 톰켓 내부는 동일합니다. 기존의 글을 보셨다면, webapps에다가 프로젝트를 넣고 실행한다면 인식후 실행되는 것을 확인 할 수 있습니다.

 

그러나 여기서 문제가 하나 발생한다면, 톰켓을 실행시키기 위해 ./startup.sh를 입력 했을 때 PC가 톰켓의 위치를 파악해서 내가 원하는 톰켓을 실행 시킬 수 있는가? 라는 문제가 발생됩니다.

 

즉, 친구를 만나기 위해서는 만나야 하는 친구의 위치를 알아야 출발할 수 있듯이 톰켓의 실행으로 PC가 그 위치를 인식하기 위해서는 경로를 지정해 줄 필요가 생깁니다.

 

따라서 그 경로부터 먼저 설정하도록 하겠습니다.

 

 

 

cd bin

vi catalina.sh

 

tomcat 폴더 안에 catalina.sh라는 프로그램이 보입니다.

이 안에는 tomcat에 대한 정보가 담겨 있습니다.

 

 

처음부터 시작된 기나긴 주석을 지나면 while 밑에 이 공간에 저는 글을 적습니다.

반드시 정해진 위치는 아니므로, 따르실 피요는 없습니다.

 

 

 

export CATALINA_HOME=/usr/local/tomcat/test

export TOMCAT_HOME=/usr/local/tomcat/test

export CATALINA_BASE=/usr/local/tomcat/test

CATALINA_PID=/usr/local/tomcat/test/bin/tomcat.pid

 

 

위의 3줄을 추가해주면 됩니다. 절대경로이며 톰켓을 읽을 때 현재의 위치를 알려주는 네비게이션 같은 역할을 합니다.

따라서 자신의 톰켓이 어디에 있느냐에 따라서 경로또한 달라질 수 있습니다.

 

 

톰켓 포트 바꾸기


 

vi server.xml

 

이번에는 server.xml을 수정할 차례입니다. 학원, 학교에서 사용하면 알다시피 같은 ip에서 톰켓을 사용하게 될 경우 ip충돌이 발생하게 됩니다. 그래서 학교 혹은 학원같은 환경에서는 port를 변경 후 사용해야 톰켓을 사용 할 수 있게 됩니다.

 

이와 똑같이 여러개의 톰켓을 한 대의 pc에서 돌리기 때문에 톰켓끼리의 충돌을 피해야 합니다.

그래서 port의 변경은 필수 입니다.

 

 

server.xml 내에서 <!-- -->의 주석이 포함되지 않은 Connector을 발견 할 수 있게 됩니다.

비슷한 Connector이 많고, 사진의 바로 아래만 보더라도 비슷한 설정이 있습니다.

주석된 port를 변경할 경우 안 될수도 있으니 주의 바랍니다.

 

현재의 톰켓이 사용하고 있는 port가 8080임을 알리고 있습니다.

 

이전 글에서 ip:8080 을 입력하면 프로젝트가 실행되었습니다.

이 부분이 그 역할을 담당하고 있습니다.

 

이제 이 port를 사용하지 않는 port로 변경 할 필요가 있습니다.

 

 

방화벽 설정하기


 

 

sudo firewall-cmd --permanent --add-port=8255/tcp

sudo firewall-cmd --permanent --add-port=[추가 할 포트 번호]/tcp

 

이전 글 처럼 방화벽을 추가합니다. 이전글을 그대로 숙지하신 분들이라면, putty접속과 동시에 방화벽이 실행되며, 또한 방화벽이 정상적으로 작동되고 있습니다.

 

방화벽 문제 해결하기

https://mollangpiu.tistory.com/180

 

[CentsOS] 방화벽 문제 해결하기

이번 시간에는 CentsOS 방화벽 문제를 해결하는 시간을 갖도록 하겠습니다. CentsOS가 기본적으로 제공을 하고 있지만, 환경에 따라서 기본조차 제공이 되지 않는 경우 또한 발생됩니다. 저 또한 그

mollangpiu.tistory.com

여기서 이 글을 참고해서 해결해주시면 감사하겠습니다.

 

 

 

firewall-cmd --reload

 

방화벽을 재실행 합니다. 설정이 바꾸었으니, 기존의 설정을 종료하고 새로운 설정의 방화벽을 실행하기 위함입니다.

 

 

 

+ 네이버클라우드 , ACG 추가하기


 

 

필자는 네이버클라우드를 통해 서버를 생성, CentOS를 이용하고 있습니다. 따라서 네이버 클라우드의 ACG 규칙을 수정해야 합니다.

 

네이버 클라우드 ACG 규칙을 어차피 교육목적이므로 이처럼 모든 port를 개방시켜버립니다.

혹은 별도로 추가하셔도 상관은 없습니다.

 

 

war 넣기


 

실행할 프로젝트를 tomcat안의 webapps에 넣습니다.

 

이전의 프로젝트 실행하는것과 동일합니다.

 

원래 ROOT라는 폴더가 있지만, 헷갈릴 수 있기 때문에 지우고 사진을 찍었습니다.

 

 

 

톰켓을 실행을 시킨다면, ROOT 프로젝트가 생성된 것을 확인 할 수 있습니다.

 

톰켓이 정상적으로 실행되는 것을 확인했으므로, 이제 Context 작업으로 마무리 해주면 되겠습니다.

 

 

 

프로젝트 작업하기


 

vi ../conf/server.xml

 

<Context docBase="Ansimi_API" path="/"  reloadable="true" source="org.eclipse.jst.jee.server:Ansimi_API"/>

 

 

이제 ROOT 가 설정되었으니, 톰켓이 실행되면 작동할 수 있도록 CONTEXT 작업도 같이 해줍니다.

 

 

 

연결 확인하기


공인 ip :8255 를 입력할 경우 제가 추가한 API서버가 연결 된 것을 확인 할 수 있게 됩니다.

 

 

 

 

 

마무리


 

이 작업은 해당 ip를 사용하는 모든 톰켓에 통용되는 작업이므로,

이 전에 추가한 톰켓이 있다면, 그 또한 이렇게 작업을 해주셔야합니다.

 

현재 추가된 톰켓은

tomcat/test 이므로, 작업을 끝마쳤지만.

이전 톰켓이 tomcat/abc라면, 이 톰켓 또한 똑같이 작업을 해주셔야 합니다.

 

 

 

수고하셨습니다.

반응형

댓글

Designed by JB FACTORY