Last Updated on 8월 17, 2021 by Jade(정현호)
Contents
mod_deflate
Apache 의 mod_deflate 는 웹 서버에서 출력 하는 텍스트 컨탠츠를 gzip 알고리즘을 통해 압축하는 모듈 입니다.
해당 모듈을 이용하게 되면 트레픽을 줄일뿐 아니라 웹 페이지 전송 속도도 향상시킬수 있습니다.
Apache 2.2 버전 이상에서는 mod_deflate 모듈을 디폴트로 제공하고 있어 설정을 통해 Gzip 압축 전송 기능 바로 사용 할 수 있습니다.
mod_deflate 설정
deflate_module 기능을 사용하기 위해서는 모듈이 로드 되어있는지를 확인 해야 합니다.
사용 중인 Apache 에서 httpd.conf 등에서 아래와 같이 mod_deflate.so 모듈에 대한 내용이 설정되어 있는지를 확인 합니다.
LoadModule deflate_module modules/mod_deflate.so
Apache 2.2 버전 이상에서는 mod_deflate 모듈을 디폴트로 제공하고 있어 httpd.conf 파일 등에 설정을 하면 Gzip 압축 전송 기능 바로 사용 할 수 있습니다.
[추가 정보] 2.2 이하 버전에서 DSO 모듈 추가 하기
cd /소스경로/modules/filters
/usr/local/apache/bin/apxs -cia -Wl,"-lz" mod_deflate.c
설치 완료후 모듈 확인
(2.2 에서는 확인 안 되지만 정상작동 됨)
/usr/local/apache/bin/httpd -l
mod_deflate.c
모듈이 정상적으로 올려 왔다면 httpd.conf 에 아래 내용을 추가 합니다.
<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>
위와 같이 설정이 적용 되면 text/html/css/js/xml 파일들은 웹 서버에서는 gzip으로 압축하여 클라이언트에게 전송하게 됩니다.
이미지나, zip 등의 압축 파일 mpeg 와 같은 영상은 이미 파일 고유의 포맷기술로 압축이 되어있기 때문에 추가적인 압축이 불가 합니다.
그렇기 때문에 서버에서 압축 효과가 없는 파일에 대해서는 압축을 제외 하게 되는 것 입니다.
아파치 서비스를 재시작 한 후 정상적으로 압축되어 전송 되는지 확인을 해야 합니다.
압축 전송 여부를 체크를 해주는 사이트는 여러 곳이 있으며 대표적인 한곳의 링크는 아래와 같습니다
http://www.whatsmyip.org/http_compression/
압축 기능이 정상적으로 적용되어 있다면 위와 같이 확인 되게 됩니다.
구글에서는 사이트에 대해서 다양한 내용으로 분석 해주는 Site Insight 서비스가 있으며 해당 서비스를 통해서도 압축 전송 여부를 확인 할 수 있습니다
https://developers.google.com/speed/pagespeed/insights/

Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io