메이쁘

[Web] Server Tomcat으로 war 파일 배포해서 서버 시작하는 방법(아무리 배포해도 서버에 접속이 안될 때!) 본문

Technology/Web - Spring

[Web] Server Tomcat으로 war 파일 배포해서 서버 시작하는 방법(아무리 배포해도 서버에 접속이 안될 때!)

메이쁘 2021. 5. 1. 03:17

안녕하세요.

 

tomcat을 활용해서 war파일을 서버에 배포했지만, 자꾸 404 error 또는 접근 오류가 발생하여 접속조차 안될 경우가 있습니다.

 

한참 찾고 해맨 끝에, 방법을 알게 되었고 잊어버리지 않게 기록해두려고 합니다.

 

자세하게 설명하기보단, 순서대로 요점만 작성하겠습니다.

 

 

간단히 원인은 tomcat이 war파일에 접근할 때 여러 권한 상의 제약이 있어 배포하지 못하고 tomcat 서버만 호출해서 입니다.

즉, 위와 같이 RequestMapping한 url은 접근이 안되지만, Mapping URL 없이 기존 IP주소 + 포트 로 접근하면 Tomcat 서버는 호출되는 경우에 해당됩니다.

 

그럼 차례대로 진행해보겠습니다.

 

 

 


1) war 파일을 tomcat 설치 폴더의 webapps 폴더 내부로 옮기기

 

위 처럼 webapps 폴더 내에 war파일 넣는다

 

 

 

 

2) war 파일 읽기/쓰기 권한 수정

  -> 제가 이 부분에 대해 어디까지 권한을 줘야 되는지는 잘 모르겠습니다..

우선, 원인은 tomcat 서버가 해당 war 파일을 배포하기 위해 해당 파일을 건드려야 하지만 접근 권한때문에 건드리지 못한다고 들었습니다.

  -> 실제로 여러 번 테스트를 거친 결과, 이 작업을 진행해야 서버가 배포되더라구요. 

  -> 777을 하면 모든 사용자가 읽기,쓰기,실행이 가능하게 됩니다.

$ sudo chmod 777 temp.war

 

 

 

3) war 파일 관리 그룹/사용자 수정(tomcat 그룹, tomcat 사용자만 쓸 수 있게)

  ->  몇 시간 넘게 검색한 결과, 일반 사용자 또는 root 사용자로 파일을 이동하고 명령문을 실행한 결과, 해당 war 파일의 관리 그룹/사용자가 변경되어 linux에서 tomcat이 접근하지 못해서 배포가 되지 않는다고 합니다.

 

  ->  만약 해당 war파일의 관리 그룹/사용자가 tomcat이 아닌 경우, conf/tomcat-users.xml 에서 직접 username, password를 입력한 tag를 통해 tomcat 서버 사용자를 변경할 수 있지만, 해당 방법보다는 war파일의 관리 그룹/사용자를 변경하는 쪽이 훨씬 효율적이라고 생각했습니다.

$ sudo chown tomcat:tomcat temp.war

 

*** 리눅스에 tomcat 그룹 생성 , tomcat 사용자 추가 하는 방법은 별도 검색해서 진행해주시면 감사하겠습니다. 제가 작성하는것보다 훨씬 잘 기록된 것들이 많으니까요!

 

 

 

4) tomcat/bin 폴더 내로 이동

  -> 서버를 실행시키기 위해 이동합니다.

  -> 절대 root 계정으로 진행해선 안됩니다.

 

 

 

 

5) ./shutdown.sh 실행

 

6) ./startup.sh 실행

 

 

이상입니다.

감사합니다.

Comments