본문 바로가기
DevOps/AWS

Amazon Linux2 서버에 Spring 프로젝트 경로 설정하기

by 어렵다어려웡 2021. 4. 21.

최근에 프로젝트 경로를 설정하는데 애먹었습니다.

 

구글링을 해도 죄다 Spring Boot 프로젝트를 배포하는 포스팅밖에 없어서

 

도움얻기가 어려웠습니다. 

 

현 문제는 이랬다

1. 로컬에서는 localhost:8080/ => 해당 주소가 프로젝트의 루트 주소

2. EC2서버에서는 루트 주소가 webapps 폴더 이하의 디렉토리.

Boot 프로젝트와 달리 스프링의 경우 WAR 파일을 업로드시켜야합니다. 

해당 디렉토리 경로는 EC2서버에서 tomcat이 설치된 경로라고 할 수 있다.

 

지금 보는 디렉토리의 위치가 바로 EC2서버에서 루트주소이다.

즉, http://퍼블릭주소:8080/ => 이 녀석이 루트주소로 설정되어 있다.

 

그런데 내가 배포하기 위해 업로드 한 프로젝트를 들어가기 위해서는 

http://퍼블릭주소:8080/cshopEc2/ => 해당 경로를 들어가야 내가 배포한 프로젝트 경로가 된다.

 

우리는 프로젝트를 http://localhost:8080/ 을 기준으로 경로를 매핑해왔기 떄문에

EC2서버에서 http://퍼블릭주소:8080/cshopEc2/ 경로로 들어가서 웹을 키고 목록을 가져오는 페이지를 들어가게 되면

http://퍼블릭주소:8080/xxxx 의 경로로 들어가게 된다

 

우리가 원하는 것은 http://퍼블릭주소:8080/cshopEc2/ => 이 경로가 루트주소가 되는 것을 원한다.

 

따라서 아래의 설정을 따라서 하면 된다.

톰캣이 설치된 경로에서 " ls -al" 을 통해 목록을 확인해봅니다.

여기서 "conf" 폴더로 들어가야합니다.

 

그런데 "cd conf" 명령어를 쳤을 때 권한관련 에러가 나타나서 들어가지 못하신다면 

sudo chmod 777 conf - 명령어를 통해서 권한을 임시로 변경해줍니다.

변경전에  conf 폴더의 "drwx--r-x" 이런 문자의 형태를 메모해서 적어둔 다음 변경하세요.

 

그 후 conf 폴더에서 server.xml 파일을 수정해야합니다. 

" sudo nano server.xml " 명령어를 사용했을 때  권한관련 에러가 나타나면 conf 폴더에서 했던것처럼 

권한을 임시로 변경하신다음 명령어를 입력하세요.

 

그 후 아래로 내려보시면 <Host> 태그가 입력된 부분이 보일겁니다. 이 곳에서 "i" 를 눌러서 insert모드로 변경하신다음

 

<Context> 태그를 써주시고 Ctrl+O , Enter , Ctrl+C 를 통해 나오시면 되는데요.

 

이렇게 하면 EC2서버에서 프로젝트를 불러올때 경로가 다음과 같이 변경됩니다.

" 퍼블릭주소:8080 -> 퍼블릭주소:8080/cshopEc2  "

즉 루트주소의 위치가 변경이 되는 겁니다. 

기존의 루트주소인 "퍼블릭주소:8080" 을 입력하면 "퍼블릭주소:8080/cshopEc2" 페이지로 이동하는 것이지요.

 

변경하셨으면 "cat server.xml" 명령어를 사용해서 변경되었는지 확인해보시면 되겠습니다.