본문 바로가기
cloud/NCP cloud

[SW] 톰캣 설치 후 컨테이너 두개 띄우기 :: 멀티컨테이너 생성

by mozi2 2022. 11. 3.
반응형

업무중 한개의 VM 에 톰캣을 설치 후, 멀티컨테이너(2개이상)로 운영하는 방법을 진행하게 되었다. 

멀티컨테이너로 구축하는 경험도 처음이었고, 나중에도 유용하게 쓰일 것 같아 차근차근 정리해보려한다. 

멀티컨테이너로 동작시키는 방법은 2가지 방법이 있다. 

오늘은 그중에서 port 를 다르게 줘, 작동하는 방법을 작성해보려 한다. 

* User 생성하기

1. 유저 추가

$ useradd testuser
 useradd + [생성할 user]

2. 패스워드 변경 

$ passwd testuser

* 단 반드시 root 권한으로 할것 

3 권한 넣기

$ vi /etc/sudoers
: 계정 추가 후 root 권한 넣어주기 

* 멀티 컨테이너 생성하기

1. jdk 설치하기 

2. java 환경변수 등록하기 

$ vi /etc/profile
  JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64
  PATH=$PATH:$JAVA_HOME/bin
  CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
  CATALINA_HOME=/APP/appadm/tomcat9
: 추가

$ source /etc/profile
 : 변경사항 저장

$ echo $JAVA_HOME
 : 확인 하기

3. Tomcat 설치하기 

$ wget https://mirror.navercorp.com/apache/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz
  : wget + [tomcat 경로]

$ tar -xvf ./apache-tomcat-9.0.68.tar.gz
  : 압축 풀기 
$ mv ./apache-tomcat-9.0.68 ./tomcat9.
  : 알기 쉬운 이름으로 directory 이름 변경 

https://mirror.navercorp.com/apache/tomcat/tomcat-9/v9.0.68/bin/

 

Index of /apache/tomcat/tomcat-9/v9.0.68/bin

 

mirror.navercorp.com

https://downloads.apache.org/tomcat/tomcat-9/v9.0.68/bin/

 

Index of /tomcat/tomcat-9/v9.0.68/bin

 

downloads.apache.org

4.  멀티 컨테이너 수만큼 폴더를 생성한다. 

5.apache9 폴더의(tomcat 압축을 푼) conf, webapps 파일 복사해서 두 인스턴스 폴더에 각각 넣기 

 * 이때, "cp: omitting directory ' 경로'  에러가 발생한다면, 현재 사용중인 디렉토리이기 때문에 아래와 같은 에러 발생

오른쪽과 같이 " -r " 옵션을 사용해주면 된다.

$ cp -r ./conf ../instance1/
 : 현재 경로의 conf 파일을 instance1 에 옮겨준다.
 : instance2 도 동일하게 작업해준다.

$ cp -r ./webapps/ ../instance1
$ cp -r ./webapps/ ../instance2
 : 동일하게 webapps 폴더를 옮겨준다.

7. 두 인스턴스 폴더에 conf, logs, temp. work 디렉토리를 생성해준다.

$ mkdir bin logs temp work
$ ll

  : 여기까지 왔다면 설정하기 전 기초 토대는 완성이다. 

8.  포트 작업

 : 각 인스턴스에서 받을 포트를 지정해준다

(단, 두 디렉토리 포트 설정시 포트가 같으면 충돌되기 때문에, 두 포트를 다르게 해줘야 한다) -> 두 인스턴스 다 설정해야함.

$ cd ./instance1/conf/
$ vi server.xml

 - instance 1

 <Server port="8225" shutdown="SHUTDOWN">

<Connector port="8282" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8243" />
  
   
    <Connector protocol="AJP/1.3"
               address="0.0.0.0"
               port="8229"
               secretRequired="false"
               redirectPort="8243" />

- instance2

 <Server port="8115" shutdown="SHUTDOWN">

 <Connector port="8181" protocol="HTTP/1.1"
 			  connectionTimeout="20000"
   			  redirectPort="8143" />
   
   <Connector protocol="AJP/1.3"
               address="0.0.0.0"
               port="8119"
               secretRequired="false"
               redirectPort="8143" />

 * 설정시 유의할 부분

  - 포트를 다르게 해야한다

  - AJP의 경우 address , secretRequired 옵션을 추가 및 변경해줘야한다.

9. startup, shutdown 설정을 지정해준다.

 : 이 부분 설정으로 인해 많이 헤맸다.. 

 : 결론은, 각 인스턴스 디렉토리의 톰캣을 운영하기 위해서는 각 폴더에 startup, shtudown 스크립트를 작성해  각각 동작할 수 있도록 해야 한다. 그런대 스크립트를 잘보면 각 디렉토리의 인스턴스를 동작시키지만 start, shtu 시키는 본 스크립트는 결국 우리가 처음 설치한 tomcat9 경로의 startup, shutdown 파일을 활용해 동작시키는 방식이다.

 -> 요약하자면, 서로 다른 디렉토리, 다른 포트로 톰캣이 작동하는것 같지만 실제로 동작시키는 본 스크립트는 tomcat 한 곳이고, 컨테이너 두개로 분리되어 운영된다는 의미이다. 

$ pwd
$ ll
: instance 1에 서버를 동작시킬 bin 폴더 경로에 아무것도 없는 것을 확인할 수 있다.

1) startup.bat 설정 

vi startup.sh

 - instance 1 에 설정 

- instance 2 에 설정 



2) shutdown.bat 

- instance 1 에 설정 

- instance 2 에 설정 

3) 실행권한 부여하기

: 현재 root 로 해당 파일을 실행하기 위해서는 실행 권한을 줘야한다.

: 실행권한이 완료되면 mobaxterms 로 작업시 파일 색상이 변경된다.

$ chmod 761 shutdown.sh
$ chmod 761 startup.sh

10. 동작 확인

$ ./startup.sh
$ ps -ef | grep tomcat
: 각 인스턴스에서 각각 해당 경로 ( /instance1/bin ) 의 동작 스크림트로 운영한다.

$ ./shutdown.sh
$ ps -ef | grep tomcat

끝 

728x90
반응형

'cloud > NCP cloud' 카테고리의 다른 글

[storage]Block Storage mount::pv,vg  (0) 2022.10.28
[NCP] Block Storage mount  (0) 2022.10.20
[ncp] ACG 생성 (NACL 비교)  (0) 2022.09.30
[NCP] 서버 접속방법(using Mobaxterm)  (0) 2022.09.30
[NCP]windows-인터넷 접속  (0) 2022.07.06