업무중 한개의 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/
https://downloads.apache.org/tomcat/tomcat-9/v9.0.68/bin/
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
끝
'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 |