IT/끄적끄적

Tomcat 404 에러

Erynn 2023. 2. 10.
다른 분이 사용하던 테스트 서버를 빌렸는데,
뭐를 바꿔놓으신 건지 톰캣 페이지가 안떠서 이것저것 뒤적뒤적한 기록이다.

 

404 error

설정파일 위치 찾기

톰캣 설정파일은 /usr/share/tomcat 에서 확인할 수 있다.

아래와 같이 심볼릭링크가 걸려 있어 원하는 대로 편하게 찾을 수 있다.

[root@test tomcat]# ll /usr/share/tomcat
total 0
drwxr-xr-x 2 root root   76 Feb  2 09:59 bin
lrwxrwxrwx 1 root tomcat 11 Feb  2 09:20 conf -> /etc/tomcat
lrwxrwxrwx 1 root tomcat 22 Feb  2 09:20 lib -> /usr/share/java/tomcat
lrwxrwxrwx 1 root tomcat 15 Feb  2 09:20 logs -> /var/log/tomcat
lrwxrwxrwx 1 root tomcat 22 Feb  2 09:20 temp -> /var/cache/tomcat/temp
lrwxrwxrwx 1 root tomcat 23 Feb  2 09:20 webapps -> /var/lib/tomcat/webapps
lrwxrwxrwx 1 root tomcat 22 Feb  2 09:20 work -> /var/cache/tomcat/work

 

설정파일 확인

404 에러는 서버는 찾았으나 서버 내에서 파일을 찾지 못할때 발생하는 에러이기 때문에, 경로가 잘 지정되어 있는지 확인이 필요하다. 

[root@test tomcat]# vim /etc/tomcat/server.xml

		<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="" reloadable="true" crossContext="true"/>

톰켓이 설치가 되면 기본 웹루트는 ${catalina-home}/webapps/ROOT 이므로 경로가 잘못설정되어있는 것을 아래와 같이 고쳐준다.

[root@test tomcat]# vim /etc/tomcat/server.xml

		<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
<Context path="" docBase="ROOT" reloadable="true" crossContext="true"/>

 

appBase : appBase는 ${catalina-home} 밑의 상대경로를 인자로 받는다.
docBase : <Context>의 application폴더를 지정한다. 해당 위치에 web 파일이 들어가야 한다.
autoDeploy : web app이 새롭게 생기거나 수정된 경우 <Host>에 배치된다.  (기본값 : true, 개발 : true / 운영 : false)

💡 context path의 "" 은 "/" 와 같은 의미이다. 둘 중 어느걸로 써도 상관없다.

 

경로는 상대경로로 지정할 수 있고 절대경로로 지정할 수 있다.

상대경로 일 경우,

appBase는 Tomcat 설치 디렉토리를 기준으로 하고 docBase는 appBase를 기준으로 한다.

 

시스템 재기동

[root@test conf]# systemctl restart tomcat

'IT > 끄적끄적' 카테고리의 다른 글

traceroute port 설정  (2) 2023.05.10
[DBeaver] Tibero 연결하기  (0) 2023.03.21
Java compile/decompile  (0) 2023.02.10