Server

아파치 모듈 mod_deflate 압축하기

by Progress posted Mar 17, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

아파치 모듈 mod_deflate 압축하기

 
gzip을 통한 신시간 압축 전송은 한정된 전송량을 알차게 쓰는 길이 되곤 한다.
압축하는 과정이 서버에게는 짐이지만, 전송할 내용이 줄어든 만큼 전송시간이 줄어들어
오히려 서버의 짐을 덜 수 있다.
 
 
 
httpd.conf의 전체 설정 또는 개별 가상 호스트(Virtual Host)나  .htaccess 파일의 적당한 곳에 다음과 같은 내용을 끼워 넣는다.
 
 
mod_deflate 모듈은 서버의 출력을 네트웍으로 클라이언트에 보내기 전에 압축하는 DEFLATE 출력필터를 제공한다.
 
 

일부 type만 압축

 

AddOutputFilterByType DEFLATE text/html text/plain text/xml 

 

 

 

 

이미지를 제외한 모든 것을 압축
 
<Location />
# 필터를 추가한다
SetOutputFilter DEFLATE
 
# Netscape 4.x에 문제가 있다...
BrowserMatch ^Mozilla/4 gzip-only-text/html
 
# Netscape 4.06-4.08에 더 문제가 있다
BrowserMatch ^Mozilla/4\.0[678] no-gzip
 
# MSIE은 Netscape라고 자신을 알리지만, 문제가 없다
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html          
 
# 주의: 아파치 2.0.48까지 mod_setenvif의 버그때문에
# 위의 정규표현식은 동작하지 않는다. 원하는 효과를
# 얻기위해 다음과 같이 수정하여 사용한다:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
 
# 이미지를 압축하지 않는다
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
 
# 프록시가 잘못된 내용을 전달하지않도록 한다
Header append Vary User-Agent env=!dont-vary

</Location> 

 

<IfModule mod_deflate.c>
AddType text/html .html .htm
AddType text/css  .css
AddType application/xml .xml
AddType application/javascript  .js
AddType application/x-httpd-php .php .php3 .html .htm .phtml .inc
AddType application/x-httpd-php-source .phps


AddOutputFilterByType DEFLATE text/plain text/html text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml application/xml application/rss+xml
AddOutputFilterByType DEFLATE text/css application/javascript application/x-javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/php
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp

DeflateCompressionLevel 9          #사용할 압축레벨을 선택, 값이 클수록 압축률이 증가하지만, CPU를 더 많이 사용함

 

BrowserMatch ^Mozilla/4 gzip-only-text/html                # Netscape 4.xx에는 HTML만 압축해서 보냄
BrowserMatch ^Mozilla/4\.0[678] no-gzip                   # Netscape 4.06~4.08에는 압축해서 보내지 않음
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html     # 자신을 Mozilla로 알리는 MSIE에는 그대로 압축해서 보냄


압축하지 않을 파일들을 지정

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv|swf|exe|pdf|doc|xsl|hwp|java|c|t?gz|bz2|7z)$ no-gzip dont-vary

</ifModule>