아파치 정적 데이터 캐시 설정과 gzip 압축

클라이언트가 웹서버에 접속을 하게 되면 정적 데이터를 클라이언트의 하드에 저장하고 캐시 주기 이후에 새로고침이 되는 방식으로 아파치의 mod_expires 모듈로 서버의 트래픽을 아낄수 있는 기능이다.

설정파일을 열어 아래 코드를 추가해 준다. CentOS는 /etc/httpd/conf/httpd.conf 파일이다.

한달을 주기로 갱신하게 되있는데 주기를 바꾸고 싶으면 1month를 적당히 바꿔 적어주면 된다. ex) 1 years, 3 days

헤더 부분은 동적 파일은 캐싱하지 않는다는 것이다.

mod_expires, mod_header, mod_deflate 모듈이 필요하다.

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType text/plain "modification plus 1 month" 
ExpiresByType text/html "modification plus 1 month" 
ExpiresByType text/xml "modification plus 1 month" 
ExpiresByType text/javascript "access plus 1 month" 
ExpiresByType text/x-javascript "access plus 1 month" 
ExpiresByType text/css "access plus 1 month" 

ExpiresByType application/javascript "access plus 1 month" 
ExpiresByType application/x-javascript "access plus 1 month" 

ExpiresByType image/bmp "access plus 1 month" 
ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 
ExpiresByType image/tiff "access plus 1 month" 
ExpiresByType image/x-icon "access plus 1 month" 

ExpiresByType video/mpeg "access plus 1 month" 
ExpiresByType video/quicktime "access plus 1 month" 
ExpiresByType video/x-msvideo "access plus 1 month" 

ExpiresByType audio/mpeg "access plus 1 month" 
ExpiresByType audio/x-aiff "access plus 1 month" 
ExpiresByType audio/x-mpegurl "access plus 1 month" 
ExpiresByType audio/x-wav  "access plus 1 month" 
ExpiresByType audio/mid  "access plus 1 month" 

</IfModule>

<IfModule mod_header.c>
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</IfModule>

AddOutputFilterByType DEFLATE text/plain text/xml text/css text/html application/x-javascript application/javascript
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE 
SetEnvIfNoCase Request_URI .(?:bmp|gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .pdf$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip 

BrowserMatch bMSIE !no-gzip !gzip-only-text/html
</IfModule>

연관 글

댓글