728x90
외부에서 로컬 환경에 접근할 수 있도록 만들기 위한 단계
1. Tomcat으로 수동 배포를 한다.
2. ngrok을 사용해 터너링으로 서버를 실행한다.
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 파일이 실행되고 있음을 확인할 수 있다.
728x90
'Deploy' 카테고리의 다른 글
외부에서 로컬 환경에 접근할 수 있도록 만들기 (2. Ngrok으로 로컬에서 서버 실행) (0) | 2022.10.22 |
---|
댓글