FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

Apache 압축전송( mod_deflate )

게시판 Tech/Tip Apache 압축전송( mod_deflate )

  • This topic has 0개 답변, 1명 참여, and was last updated 6 years, 3 months 전에 by 태랑. This post has been viewed 21 times
  • 만든이
    게시글
  • #12243
    태랑
    키 마스터
    • 게시글207
    • 댓글878
    • 총합1085
    • ★★
    @admin

    https://www.commit.co.kr/archives/298

    아파치 버전 : 2.2.24 기준

    mod_deflate 는 웹 서버에서 출력하는  텍스트 컨탠츠를 압축하는 모듈로
    아파치 압축전송을 이용하게되면 트레픽을 줄일뿐 아니라 실행속도도 향상시킬수 있다.

    먼저 모듈이 올라와 있는지 확인 한다.
    LoadModule deflate_module modules/mod_deflate.so

    Apache 2.2 버전 이상에서는 mod_deflate 모듈을 디폴트로 제공하고 있어 설정을 통해
    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/


    구글에서도 사이트에 대해서 분석 해주는 서비스가 있다.

    https://developers.google.com/speed/pagespeed/insights/


    구글의 경우 mod_deflate 를 적용 하기전에 먼저 측정 해보고, 설정 한후 측정 해보길 바란다.

    ps. 적용 하고 보니 체감상으로도 상당히 빨라 졌네요


    오픈소스를 응원합니다 Blog https://hoing.io
    Senior Database Administrator(Mysql, Oracle)

    사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요

  • 답변은 로그인 후 가능합니다.