외부 Tomcat 설정하기

2024. 11. 15. 17:33·노예 일지
728x90

인턴업무를 시작하면서 회사의 5개 서버를 분리하는 작업을 하게되었다. 그 과정에서 스프링 부트의 내장 톰캣이 아닌 외부 톰캣을 사용하는 방법을 사용하게 되었다. 그래서 겸사겸사 어떤식으로 사용했는지 정리 해보려고 한다.

 

먼저, 처음에는 아무것도 몰라서 무작정 구글링을 해서 환경변수를 설정하라는 말만 듣고, 작업을 시작했었다. 그 과정에서 CATALINA_HOME의 환경변수 인식의 문제가 있었고, 이것저것 해보다가 인식은 안되는데 catalina run을 실행하니까 스프링이 돌았었다.

 

하지만, 이건 대리님이 지시하셨던 방식이 아니었다.

 

그래서 대리님께서 다시 설명해주셨고, 그제서야 방법을 알 수 있었다.... 스스로 학습하지 못한것이 너무 아쉽다...

 

우선 대리님께서 먼저 주신 세팅이 거의 된 톰캣 5개가 있었다.

이제 이 5개를 세팅해야 하는데, 우선 3개만 코드 수정과 테스트가 필요해서 세팅하기로 했다.

코드 리팩토링으로 서버간의 통신을 끊어 냈고, 각 서버가 독립적으로 로직을 실행하도록 바꾸었다.

 

톰캣에서 프로젝트를 실행하는 방법은 아주 간단하다. webapp 폴더 안에 넣기만 하면 된는 것..

그래서 일단 냅다 war파일을 넣었다. 당연히 실행은 안된다.

왜냐면 서비스 설정과, startup.bat, shutdown.bat, service.bat의 설정이 필요하기 때문이다.

(원래 맥만 쓰다가 윈도우로 작업을 하려니 아직도 어렵다...)

 

일단 톰캣 폴더에 bin폴더로 이동하면 거기에 startup.bat과 shutdown.bat파일이 존재한다. 이 두 파일을 설정해주면

우선 CATALINA_HOME과 SERVER_NAME, JAVA_HOME을 설정했다.

원래는 컴퓨터 자체의 환경변수에 넣었는데 이렇게되면 여러개의 톰캣을 돌릴 경우 경로를 환경변수에 넣은 하나만 인식해서 동시 동작이 어렵다.

그래서 startup, shutdown을 모두 설정하고나면 

service에는 SERVICE_NAME설정이 필요하다.

이렇게 지정하고 다음 단계를 진행한다.

 

톰캣 서버를 여러개 돌리려면 3가지 방법이 있다고 배웠다.

1. 물리적으로 독립시켜서 돌린다.

2. service.xml에서 Engine 태그 안에 Host를 여러개 두는 방법

3. Engine을 같게 만든 여러 톰캣을 포트를 다 다르게 해서 작동하는 방법

(정확하지 않을 수 있다. 메모를 못해둬서ㅠㅠ)

 

우선의 이 3가지 방법 중에 3번을 사용해보았다.

서버 3개를 돌리기 위해서 포트 9개를 준비했고, server.xml 파일에 각 톰캣의 Engine부분을 동일하게 하여서 내부포트와 외부포트를 다르게 지정하였다.

위 코드는 예시이다.

Server 단에서 지정한 8006포트와 Service 단에서 지정한 외부포트 50532, 내부포트 8444로 하여서 톰캣을 돌리기 위한 준비를 했다.

이렇게 한 다음에 service.bat 파일을 가지고 service 등록을 진행한다.

 

아래의 명령어를 실행하여서 진행한다. service_name은 service.bat파일에 지정한 SERVICE_NAME이다. 지정을 안했다면 아마 작성하지 않아도 알아서 현재 폴더의 service.bat을 install 할 것 같다.

service.bat install {service_name}

그 다음에 Tomcat{ver}.exe 파일을 실행하여 작동하는지 확인할 수 있다.

memory 설정도 해주었다. C 드라이브의 용량을 고려해서 지정해주면 된다.

이렇게 해서 톰캣 서버의 설정을 끝냈다. exe파일을 동작하면 잘 실행된다.

근데 실행 후 로그에 한글이 깨진다면, conf/logging에 UTF-8설정을 EUC-KR로 바꿔보면 한글이 안깨질 것이다.

 

백그라운드로 실행하고 싶다면 작업관리자에서 서비스 단에서 지정해둔 서비스 이름을 찾아서 실행하면 된다.

 

추가로 방화벽 설정도 필요해서 방화벽 설정에서 고급 설정으로 이동하여 인바운드 규칙을 추가하여 포트를 지정해주면 된다.

 

728x90

'노예 일지' 카테고리의 다른 글

Log Setting(logback-spring.xml)  (0) 2024.11.30
작업 스케줄러 만들기  (0) 2024.11.27
Tomcat Init Setting Shell Script 작성하기  (1) 2024.11.26
'노예 일지' 카테고리의 다른 글
  • Log Setting(logback-spring.xml)
  • 작업 스케줄러 만들기
  • Tomcat Init Setting Shell Script 작성하기
Bello's
Bello's
개발하는 벨로
  • Bello's
    벨로의 개발일지
    Bello's
  • 전체
    오늘
    어제
    • 분류 전체보기 (199) N
      • 노예 일지 (7)
        • 스타트업 노예일지 (3)
      • CS 이론 (81)
        • 학과 수업 (4)
        • 알고리즘 (64)
        • 시스템 프로그래밍 (3)
        • 데이터 통신 (1)
        • 운영체제 (2)
        • 데이터베이스 (1)
      • project (3)
      • 나는 감자다. (4)
      • Spring (27)
      • 모각코 (45)
        • 절개와지조(모각코) (7)
        • 어쩌다보니 박준태가 조장이조 (11)
        • 어쩌다보니 박준태가 또 조장이조 (12)
      • LikeLion🦁 (20)
      • 캘리포니아 감자 (4)
      • OpenSource Contribute (1)
      • 우아한테크벨로 (1) N
        • 프리코스 회고록 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring
    뛰슈
    감자
    JPA
    누적합
    나는 감자
    프리코스
    어렵다
    모각코
    타임리프
    그래프 순회
    티스토리챌린지
    DFS
    절개와지조
    자바
    오블완
    8기
    백준
    BFS
    회고록
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Bello's
외부 Tomcat 설정하기
상단으로

티스토리툴바