2023. 6. 13. 19:14ㆍSpring Framework/Apache Tomcat Server
Tomcat 서버에서 정적 페이지를 처리하는 방법은 기본적으로 간단하며, Tomcat은 정적 리소스(HTML, CSS, JavaScript, 이미지 등)를 기본적으로 처리할 수 있도록 설계되어 있습니다. Tomcat 서버는 Servlet
기반의 동적 웹 애플리케이션뿐만 아니라, 정적 리소스를 서빙하는 기능도 제공하므로 별도의 설정 없이도 정적 페이지를 제공할 수 있습니다.
정적 페이지 처리 과정
웹 애플리케이션 디렉토리 구조:
Tomcat 서버는 웹 애플리케이션을 WAR(Web Application Archive) 형식으로 배포하거나, 특정 폴더 구조로 배포된 애플리케이션을 서빙합니다. 정적 페이지는 다음과 같은 디렉토리 구조에서 위치할 수 있습니다:/webapps/myapp/ ├── index.html ├── about.html └── resources/ ├── styles.css └── scripts.js
여기서
webapps
는 Tomcat 서버의 기본 배포 디렉토리이며,myapp
은 배포된 웹 애플리케이션의 컨텍스트 루트(context root)가 됩니다. 예를 들어,index.html
파일은http://localhost:8080/myapp/index.html
로 접근할 수 있습니다.정적 리소스 서빙:
Tomcat은 기본적으로 HTML, CSS, JavaScript, 이미지 파일을 정적 파일로 간주하고 자동으로 클라이언트에게 서빙합니다. Tomcat이 이러한 정적 리소스를 처리하는 원리는DefaultServlet
이라는 서블릿을 통해 이뤄집니다.DefaultServlet
은 정적 리소스에 대한 HTTP 요청을 처리하는 역할을 합니다.예를 들어:
http://localhost:8080/myapp/index.html
요청 시, Tomcat은/webapps/myapp/index.html
파일을 찾아 클라이언트에게 반환합니다.http://localhost:8080/myapp/resources/styles.css
요청 시,resources
디렉토리 아래에 있는styles.css
파일이 반환됩니다.
서버 설정:
기본적으로 Tomcat의conf/web.xml
에DefaultServlet
이 설정되어 있습니다. 이 서블릿이 정적 리소스를 처리하며, 특별한 경우가 아니라면 추가적인 설정이 필요하지 않습니다. 다음은 기본 설정의 예시입니다:<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
이 설정에서
DefaultServlet
이 모든 경로(/
)에 대해 정적 리소스를 처리할 수 있도록 매핑되어 있습니다.정적 파일 캐싱:
Tomcat에서는 정적 리소스를 캐싱하여 성능을 최적화할 수 있습니다. 이를 위해DefaultServlet
에 캐싱 관련 파라미터를 설정할 수 있습니다:<init-param> <param-name>cacheMaxSize</param-name> <param-value>10240</param-value> <!-- 캐시 최대 크기 (KB) --> </init-param> <init-param> <param-name>cacheTTL</param-name> <param-value>5000</param-value> <!-- 캐시 유지 시간 (ms) --> </init-param>
이러한 설정을 통해 정적 파일을 브라우저에 캐싱하여 서버의 부하를 줄이고, 리소스 로딩 속도를 향상시킬 수 있습니다.
정적 리소스 디렉토리 지정
정적 리소스를 특정 디렉토리에 배치하고 싶다면, Tomcat의 context.xml
이나 server.xml
에 디렉토리를 별도로 지정할 수 있습니다. 예를 들어, myapp
애플리케이션의 정적 리소스를 별도의 디렉토리에서 서빙하고 싶다면:
<Context docBase="/path/to/static/resources" path="/myapp" />
이렇게 설정하면, /path/to/static/resources
디렉토리의 정적 파일들이 http://localhost:8080/myapp/
에서 접근할 수 있게 됩니다.
결론
Tomcat에서 정적 페이지를 처리하는 방법은 매우 간단하며, 기본적으로 webapps
디렉토리 아래에 정적 파일을 배치하면 자동으로 클라이언트에게 서빙됩니다. 필요에 따라 캐싱 설정이나 파일 경로를 지정할 수 있으며, 이러한 기본 설정을 통해 효율적으로 정적 리소스를 관리할 수 있습니다.
'Spring Framework > Apache Tomcat Server' 카테고리의 다른 글
Thread Pool (0) | 2023.09.21 |
---|---|
Apache Tomcat Server Arch (0) | 2023.06.23 |
Service (0) | 2023.06.06 |
Host (0) | 2023.06.06 |
Context (0) | 2023.06.04 |