반응형

wepapps 하위  ROOT 내부에 존재하는 디렉토리를 심볼릭링크로 지정하여 사용 중일때, 해당 디렉토리를 웹에서 지정하여 이미지등을 노출되도록 하고 싶었다.

 

기존 시스템은 ROOT/디렉토리 형태로 존재하여 was를 갈아엎을때마다 옮겨두었다가 적용하거나 삭제 시 위험해지는등 큰 문제가 있어서 심볼릭으로 변경하였는데, 서비스를 기동하니 404에러가 발생하였다.

 

아래는 시스템 구성이다.

1. 실제 경로 /data/test 디렉토리

2. 톰캣 경로는 /usr/local/tomcat/webapps/ROOT

 

두개의 경로가 있을때, ROOT 아래에 test라는 심볼릭링크를 생성하였고, 심볼릭링크는 test -> /data/test 를 바라 보도록 처리해두었다.

 

 

이렇게 실행하여 /test/파일명 형태로 접근하면 디렉토리인 경우 정상적으로 노출이 되지만, 심볼릭링크는 톰캣자체가 보안상의 문제로 노출하지 않도록 막는다.

 

이때 server.xml 설정을 통해 처리가 가능한데, 톰캣이 기본적으로 막은 이유가 있듯이 추천하는 방법은 아니다.(어쩔수 없는 경우에만 해당 방식을 사용한다.)

 

tomcat 배포/conf/server.xml 파일에 접근하면 설정부분이 있는데, Host태그 내부에 Context태그 정보를 추가한다.

위 시스템 구성인 경우 아래와 같이 추가한다.

<Context path="/test" docBase="/data/test" reloadable="false" allowLinking="true"></Context>

/test라는 심볼릭을 만나면 docBase /data/test 를 바라 볼 수 있도록 처리하고 allowLinking 옵션을 true로 처리한다.

 

위 Context는 war 배포 경로이다. 아래 context는 심볼릭링크 허용 경로이다.

 

 

이후 톰캣을 재기동하면 정상적으로 이미지등을 볼 수 있다.

 

 

 

 

 

반응형