Apache에서 캐싱 기간 설정 방법

피코소프트 디자이너
피코소프트 디자이너 2025.08.29 14:54
  • 홈페이지공개
  • 조회수 4
  • 댓글수 0

1264



안녕하세요. 피코소프트 백승흔입니다.


거래처에서 pdf 파일 캐싱되어서 바뀌지 않는다고 해서 pdf 파일은 캐싱되지 않도록 처리했습니다.


오늘은 해당 명령어를 한번 정리해 보겠습니다.



1. mod_expires 모듈 사용 (추천)


Apache의 mod_expires 모듈을 활성화하면 파일 확장자별 캐싱 기간을 쉽게 설정할 수 있습니다. (httpd.conf 또는 .htaccess)


<IfModule mod_expires.c>

 ExpiresActive On


 # 기본 캐싱 기간 (없으면 1시간)

ExpiresDefault "access plus 1 hour"


    # 이미지 파일은 1개월 캐싱

ExpiresByType image/jpeg "access plus 1 month"

ExpiresByType image/png  "access plus 1 month"

ExpiresByType image/gif  "access plus 1 month"

ExpiresByType image/webp "access plus 1 month"


    # CSS, JS는 1년 캐싱

    ExpiresByType text/css "access plus 1 year"

 ExpiresByType application/javascript "access plus 1 year"


    # HTML은 캐싱하지 않음 (항상 최신 요청)

 ExpiresByType text/html "access plus 0 seconds"


    # PDF 파일은 캐싱하지 않음 (항상 최신 요청)

 ExpiresByType application/pdf "access plus 0 seconds"

</IfModule>



2. mod_headers 모듈 사용

Cache-Control 헤더를 직접 설정하는 방법도 있습니다.

<IfModule mod_headers.c>
# CSS/JS는 1년 캐싱
<FilesMatch ".(css|js)$">
Header set Cache-Control "max-age=31536000, public"
    </FilesMatch>

# 이미지 파일은 1개월 캐싱
<FilesMatch ".(jpg|jpeg|png|gif|webp)$">
 Header set Cache-Control "max-age=2592000, public"
    </FilesMatch>

# HTML은 캐싱하지 않음
 <FilesMatch ".(html|htm)$">
 Header set Cache-Control "no-cache, no-store, must-revalidate"
    </FilesMatch>

 # PDF 파일은 캐싱하지 않음
<FilesMatch ".(pdf)$">
 Header set Cache-Control "no-cache, no-store, must-revalidate"
    </FilesMatch>
</IfModule>

그럼 오늘도 좋은 하루 보내세요.

감사합니다.


▶ 해당 게시물 블로그에서 보기