외부에서 로컬 환경에 접근할 수 있도록 만들기 위한 단계
Tomcat으로 수동 배포를 한다.
ngrok을 사용해 터너링으로 서버를 실행한다.
Tomcat을 사용한 수동 배포
WAR를 사용하는 이유?
JAR는 자바 프로젝트를 압축한 파일로 JRE만 있어도 실행이 가능하다.
반면에 WAR는 웹 관련 자료를 포함하여 웹 어플리케이션을 압축한 파일이다.
별도의 웹 서버가 필요하고, JAR보다 더 넓은 범위를 압축할 수 있다.
따라서, WAR로 패키징하면 다양한 설정과 웹 환경을 구성할 수 있는 장점이 있다.
사전 설치
1. JRE 설치 (Windows)
다운로드 링크에서 JRE를 설치
2. 환경변수 설정 (Windows)
변수 이름 : JRE_HOME
변수 값 : C:\Program Files\Zulu\zulu-11-jre
3. 톰캣 설치
JDK 11 버전을 사용하는 경우 9 버전과 호환성이 가장 좋기 때문에
Tomcat 9 버전을 설치한다.
-
Mac 유저는 tar.gz / Windows 유저는 .zip 파일을 다운로드 한다.
-
해당 디렉토리 안에서 실행, 종료를 하기 때문에 편한 경로에서 압축 해제를 한다.
서버 실행 및 종료 명령어
Windows 유저(cmd)
# 톰캣 실행
$ apache-tomcat-9.0.68/bin> .\startup.bat
# 톰캣 종료
$ apache-tomcat-9.0.68/bin> .\shutdown.bat
Mac 유저
# 톰캣 실행
$ apache-tomcat-9.0.68/bin> .\startup.bat
# 톰캣 종료
$ apache-tomcat-9.0.68/bin> .\shutdown.bat
실행 시 보이는 화면
톰캣 기본 실행 포트: 8080번
톰캣을 실행 명령어를 입력한 후 localhost:8080
혹은 127.0.0.1:8080
으로 접속하면 다음 화면이 나옵니다.
톰캣으로 웹 애플리케이션 실행
JAR -> WAR 포맷 변경
1. build.gradle
수정
plugins {
id 'org.springframework.boot' version '2.4.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'war' // 추가
id 'java'
}
2. [project]Application
파일 수정
@SpringBootApplication
// SpringBootServletInitializer를 상속
public class sampleApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(sampleApplication.class, args);
}
// config를 Override함
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(sampleApplication.class);
}
}
3. build
프로젝트 최상위 폴더에서
./gradlew build
명령어를 입력해서 프로젝트를 빌드한다.
[프로젝트 최상위 폴더]/build/libs 경로에 있는 .war파일을
[apache-tomcat-9.0.68]/webapps 경로로 옮긴다.
.war
파일의 이름이 ROOT인 경우 별도 설정이 필요없지만, 다른 이름인 경우 추가 설정이 필요하다
server.xml 파일 수정
파일 경로: conf> server.xml
...
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="[개인의 프로젝트명]" reloadable="false" > </Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
...
Host
내부에Context
설정을 추가
톰캣을 종료 후 재시작을 하면, .war
파일을 압축해제하여 webapps에 동일한 이름의 디렉토리가 구성된다.
톰캣 실행 후 확인
http://localhost:8080 에 접속하면 .war
파일이 실행되고 있음을 확인할 수 있다.