Daniel's Knowledge Storage

apache의 mod_expires모듈 본문

Develop

apache의 mod_expires모듈

다니엘SEO 2010. 2. 16. 19:29

자료 저장용으로...



apache에서는 mod_expires 모듈을 통해 Expires HTTP header 를 설정할 수 있다.이를 통하여 클라이언트(웹페이지 방문자)에 캐싱되는 문서나 이미지들이 많아서 트래픽을 감소시킬 수 있다. 이미지 전용 서버나 이미지 디렉토리에 설정을 해두면 효과적이다.

1. mod_expires 설치

 

/home/httpd/bin/apxs  -aic /아파치소스경로/mod_expires.c

 

2. mod_expires 설정

이미지 서버에 지정한 다음 예를 보자.

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"

   # 제외할 디렉토리
    <Directory "/usr/local/apache/htdocs/temp">
    ExpiresActive Off
    </Directory>
</IfModule>

- ExpiresActive On 지시자로 Expires 설정을 enable 한다.
- ExpiresDefault "access plus 1 month" 지시자는 액세스한지 얼마나 지나서 expire할 것인지를 지정한다. 즉, 지정한 기간만큼 클라이언트에 캐싱이 된다. 위에는 1달이다.

이외에 클라이언트에서 액세스한지 1달, 4주, 30일, 1년 등과 같은 expire 주기와 서버의 파일의 수정 시간으로 expire 주기를 설정할 수 있다.

ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"
ExpiresDefault "access plus 1 years"
ExpiresDefault "modification plus 30 days"

설정 마지막부분에 Directory 지시자와 ExpiresActive Off 설정을 통해 특정 디렉토리만 expire 설정에서 제외할 수 있다.
반대로 특정 디렉토리만 On으로도 설정할 수 있다. (일반 웹서버에 /images 와 같이 디렉토리가 있는 경우)

ExpiresByType image/gif "access plus 4 weeks"
ExpiresByType text/html "access plus 1 weeks"


- 위처럼 파일의 유형으로도 가능하다.

 

ex)

FileETag MTime Size

<IfModule mod_expires.c>
 ExpiresActive On

 ExpiresDefault "access plus 1 days"
 ExpiresByType image/gif "access plus 1 days"
 ExpiresByType image/png "access plus 1 days"
 ExpiresByType image/jpeg "access plus 1 days"
 ExpiresByType text/css "access plus 1 days"
 ExpiresByType application/javascript "access plus 1 days"
 ExpiresByType application/x-shockwave-flash "access plus 1 days"
</IfModule>

Comments