Skip to content

2012.01.16 15:39

Apache mod_deflate

조회 수 23387 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

mod_deflate 는 웹 서버에서 출력하는 내용을 압축하는 필터 입니다. 소스의 위치는 modules/filters 에 위치 하고 있습니다.

활성화 방법
Apache 2.2.x 를 컴파일 할때에 --enable-deflate 옵션을 활성화 하여 컴파일을 합니다. 또는 동적 (DSO)로 컴파일이 되어 있는 Apache에서 DEFLATE 모듈만 컴파일 할때는  modules/filters 로 이동을 한 후 Apxs (Apache Extension) 을 이용하여 컴파일을 해주시면 됩니다.
# /usr/local/apache/bin/apxs -i -c -a mod_deflate.c
위와 같이 해주시면 mod_deflate.so 가 apache 의 모듈디렉토리에 올라가고 httpd.conf 파일 안에 등록이 됩니다. 물론 설정은 직접 해주셔야 합니다.

설정 방법
mod_deflate 는 웹 서버 전체 내용을 압축 하려 할때는 전역 으로 설정을 하고 그렇지 않을 때는 디렉토리 설정 부분 (Location) 에 설정을 해줍니다.

아래와 같이 설정을 하시면 됩니다.
# DEFLATE 설정
<IfModule mod_deflate.c>
              # 압축을 진행하는 타입을 text/html, text/plan, text/xml , text/javascript 만 적용합니다.
               AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
               # 압축 레벨 입니다. 1 부터 9까지 설정 가능합니다.
               DeflateCompressionLevel 1
              # 확장자 별 mime type을 설정합니다.
               AddType text/javascript .js
               AddType text/css .css
</IfModule>
위와 같이 설정 하시면 됩니다.

DEFLATE 필터는 모든 리소스 필터 예를 들어 PHP 의 최 하위에서 결과를 압축 하기때문에 타 모듈에 영향을 주지 않습니다. 압축된 결과를 클라이언트에 보낼때는 Content-Encoding: gzip 헤더를 추가 하여 전송합니다.

Proxy 를 이용할때 프록시 대상 서버에서 gzip압축을 진행한다면 해당 내용을 압축 해제를 할 수 있습니다.
SetInputFilter INFLATE 를 이용하면 들어오는 내용의 압축을 해제 할 수 있습니다.

기타 설정 옵션 을 소개 합니다.
DeflateBufferSize 8096 : 버퍼의 사이즈를 설정합니다. 단위는 Byte입니다.
DeflateCompressionLevel 1 : 압축 수준을 설정합니다. zlib 의 기본 값을 사용합니다.
DeflateFilterNote [Input|Output|Ratio] [name] : 로그에 남길 내용을 설정합니다. 입력Byte, 출력 Byte, 압축률
DeflateMemLevel 9 : zlib가 압축을 진행할때 얼마만큼의 메모리를 사용할것인가를 설정합니다.
DeflateWindowSize 15 : zlib가 압축을 진행할때의 window size를 지정합니다. window size가 크면 압축률이 높습니다.

위와 같은 설정 옵션으로 DEFLATE 모듈을 제어 할 수 있습니다.

압축 수준(Compress level)이 높으면 CPU사용량이 증가하므로 적절한 비율에서 압축을 진행합니다. 아래 압축 비율에 대해서 알아 보도록 하겠습니다.

압축수준 용량
0 43984
1 11128
2 10916
3 10764
4 10154
5 9908
6 9831
7 9820
8 9798
9 9793

위와 같은 압축 률을 보이고 있습니다. 일반적인 HTML을 출력을 하는 것입니다. 위와 같은 비율로 압출률이 고정이 되어 있는 것은 아니지만 대략적인 압축 비율을 나타낸것입니다. 비압축과 압축수준 1 의 비율이 가장 크고 그 이상의 수준에서는 별다른 차이가 없고 CPU에 대한 부하율을 따지자면 압축 비율 1이 가장 좋은것 같습니다. 

List of Articles
번호 제목 글쓴이 날짜 조회 수
28 [자료] 웹사이트 성능개선 위한 커널 튜닝 사례 ADMINPLAY 2009.05.10 13767
27 [정보] [Apache+PHP] Segmentation Fault가 발생할 경우 ADMINPLAY 2012.07.27 47831
26 리눅스 APM 소스설치시 에러에 대한 대처 1 ADMINPLAY 2009.01.30 15132
25 리눅스 개인계정 로딩시 틸드(~)기호없이 그냥 사용 ADMINPLAY 2010.09.22 20684
24 매일 자정에 트래픽 초기화 하기 ADMINPLAY 2009.07.18 15668
23 브라우저 접속 제한하기 ADMINPLAY 2009.09.30 14691
22 사용자 인증 ADMINPLAY 2009.11.26 14017
21 사이트가 느려지는 현상 점검 ADMINPLAY 2008.10.08 15933
20 서비스 동시접속 인원알기 ADMINPLAY 2008.10.07 16892
19 서비스 제한측면의 아파치 활용 예제 ADMINPLAY 2012.06.26 30320
18 아파치 2.X 버전에서 mod_cband를 이용한 트래픽관리 file ADMINPLAY 2009.01.17 19021
17 아파치 GeoIP를 이용한 국가별 제한 ADMINPLAY 2010.01.30 18787
16 아파치 데몬이 안 뜰경우 ADMINPLAY 2009.11.26 14874
15 아파치 모듈 내용 ADMINPLAY 2008.12.10 15905
14 아파치 웹서버 사용 시 무단 링크 방지법 ADMINPLAY 2009.04.03 15592
13 아파치 컴파일 에러(apr-util) configure: error: cannet ... ADMINPLAY 2009.08.08 19574
12 아파치 특정폴더에 암호걸기 ADMINPLAY 2008.10.08 16032
11 아파치(apache) 무단 링크 방지 ADMINPLAY 2011.06.18 18977
10 아파치에서 멀티도메인 설정 방법 1 l2zeo 2012.10.09 20974
9 아파치에서 한글 파일 읽기 [mod_url 설치] file ADMINPLAY 2009.03.17 17297
Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234