Backend/tomcat

프로젝트 배포 tomcat 설정

dddzr 2023. 5. 12. 16:31

WAS(Wep Application Server)는 웹 애플리케이션을 실행하기 위한 서버 환경을 제공하는 소프트웨어입니다. WAS는 웹 서버와는 다른 개념이며, 독립적으로 웹 애플리케이션을 실행하고 관리하는 역할을 수행합니다.

 

웹 애플리케이션의 실행 환경을 구축하고 관리

 

WAS는 Java EE(Java Enterprise Edition) 표준을 준수하는 서버이며, 대표적인 WAS로는 Apache Tomcat, IBM WebSphere, Oracle WebLogic, JBoss 등이 있습니다. 

 

1. VsCode에서 프로젝트의 배포용 application.properties 파일을 확인

아래는 application.properties 예시 입니다.

tomcat과 관련해서는 context-path만 확인하면 됩니다.

##WAS Config
server.port=8000
server.servlet.context-path=/main

spring.primary.datasource.driverClassName=org.mariadb.jdbc.Driver

#allowMultiQueries=true : 멀티쿼리 설정
#spring.primary.datasource.url=jdbc:oracle:thin:@192.168.0.28:1521:ORCL/{DBName}?characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true
# spring.primary.datasource.username=C##{userName}
# spring.primary.datasource.password={password}

spring.primary.datasource.url=jdbc:mariadb://192.168.0.28:3306/{DBName}?characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true
spring.primary.datasource.username={userName}
spring.primary.datasource.password={password}

#풀에 유지할 최소 커넥션 갯수
spring.primary.datasource.minimumIdle=10
#유휴 상태와 사용중인 커넥션을 포함해서 풀이 허용하는 최대 커넥션 갯수
spring.primary.datasource.maximumPoolSize=20
#커넥션이 풀에서 유휴상태로 남을 수 있는 최대 시간(msec)
spring.primary.datasource.idleTimeout=30000
#커넥션의 최대 유지시간(msec)
spring.primary.datasource.maxLifetime=2000000
#풀에서 커넥션을 구할 때 대기시간(msec), 대기 시간 안에 구하지 못하면 exception 발생
spring.primary.datasource.connectionTimeout=9000

## SQL 실행 통계 모니터링을 위한 설정정보
#DB 타입(oracle|mysql)
# spring.primary.datasource.databaseType=oracle
spring.primary.datasource.databaseType=mariadb
#DataSource Id
spring.primary.datasource.dataSourceId=primaryDataSource
#SQL 로그 출력 여부
spring.primary.datasource.sqlLogging=false
#Slow 쿼리 제한시간(msec)
spring.primary.datasource.slowQueryThreshold=5000
#Query 타임아웃시간(msec)
spring.primary.datasource.queryTimeout=600000
#query 포맷팅(줄바꿈)
spring.primary.datasource.queryFormatting=false
#Hibernate query 포맷팅(줄바꿈)
spring.primary.datasource.hibernateQueryFormatting=false

#logging config
logging.config=classpath:logback-spring.xml

server.servlet.session.timeout=-1

 

2. WAS를 설치

아래 링크에서 zip파일을 다운로드 받으면 됩니다.

https://tomcat.apache.org/download-80.cgi

 

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

 

3. 다운받은 폴더경로 설정, 폴더명 수정

저는 D드라이브 밑에 넣고 TOMACTTEST라는 이름으로 수정했습니다.

자신의 프로젝트명으로 수정하면 됩니다.

다운로드된 파일

4. 파일 설정

*파일을 우클릭하여 내용을 편집해야하는데 Notepad를 사용했습니다.

*확장자가 bat은 Window, sh는 Shell Script 파일로 Linux와 Max용입니다. 

 

4-1.

bin  > catalina.bat

TITLE을 프로젝트명으로 수정

 

4-2. 

bin  > shutdown.bat

bin  > startup.bat

set "CATALINA_HOME={폴더 경로}"

 

4-3.

conf  > server.xml

- port번호: Tomcat 서버가 사용할 TCP 포트를 지정합니다. 현재 사용중인 다른 포트와 겹치지 않게 설정

- Connector: 클라이언트와 Tomcat 사이의 통신을 담당하는 네트워크 커넥터를 구성합니다.

주소를 치고 들어갈 포트번호(프로젝트 application properties와 동일하게 설정하면 로컬과 같은 번호로 들어갈 수 있음)

 

4-4.

Conf > logging.properties  (생략가능)

UTF-8 EUC-KR로 수정

 

4-5.

Session TimeOut  (생략가능)

- application.properties

server.servlet.session.timeout=-1

시간 단위 붙여서 60m (60)으로 설정가능, 단위 붙이지 않으면 초단위, -1은 무제한

최소 설정시간이 60초라서 이하의 숫자 입력해도 적용되지 않음.

 

- tomcat > web.xml

<session-timeout>-1</session-timeout>

분단위, -1은무제한

 

 

5. war 파일 생성 및 복사

5-1. war파일 생성

VSCode에서 Gradle탭

Clean -> build -> war 실행

build\libs 밑에 생성된 war파일을 복사하여 

*Gradle을 사용하지 않으면 cmd창에서 생성하면 됩니다.

1. command line 상에서 WAR파일을 만들고자 하는 폴더로 이동

2. jar cvf <war파일이름>.war *  입력(예 : jar cvf test.war *)</war파일이름>

3. 해당 폴더내에 war파일 생성완료

 

5-2. webapps 밑에 넣음

 

6. 배포된 프로젝트 실행

bin  > startup.bat 를 더블클릭하여 서버를 켜고

bin  > shutdown.bat 를 더블클릭하여 서버를 끕니다.

 

war 파일과 상관없이

http://{IP주소}:{Connector번호} (예 : http://192.068.0.22:8000)

까지 입력하여 톰켓서버에 접속되는지 확인

이런 기본 화면이 뜸

 

http://{IP주소}:{Connector번호}/{context-path}

applicationProperties에서 입력한 context-path대로 war파일 이름이 생성되는데 그거까지 입력하면 해당 프로젝트에 접속 할 수 있습니다.

 

 

'Backend > tomcat' 카테고리의 다른 글

tomcat profile 설정(application properties)  (0) 2022.05.28