최근에 프로젝트 경로를 설정하는데 애먹었습니다.
구글링을 해도 죄다 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" 명령어를 사용해서 변경되었는지 확인해보시면 되겠습니다.
'DevOps > AWS' 카테고리의 다른 글
./gradlew test 실패 원인.. (0) | 2021.06.11 |
---|---|
./gradlew test 실패 이후 2번째 (0) | 2021.06.10 |
EC2 - ./gradlew test 실패 (0) | 2021.06.09 |
AWS EC2 -bash: fork: Cannot allocate memory (0) | 2021.04.24 |
Spring) AWS S3 연동 후 액세스키 파일화 작업 - Boot (X) (0) | 2021.04.13 |