php, css, js 파일 압축해서 보내기 (htaccess 이용)
웹사이트의 트래픽을 줄이기 위해 전송할 문서를 gzip으로 압축해서 보내는 방법이다.
PHP, CSS, JS 파일만 압축해서 보내는 것을 예제로 첨부한다.
이미지 파일은 이미 이미지 자체가 압축되어 있기 때문에 한 번 더 압축해봐야 오히려 용량이 늘어 날 수 있기 때문에 사용하지 않는다.
참고로 해당 기능을 사용하기 위해서는 아파치에서 mod_gzip 사용이 가능해야 한다.
작동되는 방식은 서버에 CSS, JS파일에 대한 요청이 들어오면 .htaccess 파일을 통해 미리 지정된 PHP 파일을 통해 압축 후 전송하도록 하는 방식으로 이 방식을 사용할 경우 요청 시 마다 압축을 해서 보내야 하므로 많은 요청에서는 매우 비효율적으로 작동 할 수 있다.
PHP 압축
-
gzip_php.php파일 생성<?php ob_start("ob_gzhandler"); ?> -
.htaccess파일에 내용 추가# Gzip 압축 사용하기 <FilesMatch "\.(html|htm|php)"> ForceType application/x-httpd-php php_value auto_prepend_file /home/munilive/blog/gzip_php.php </FilesMatch>
JS 압축
-
gzip_javascript.php파일 생성<?php ob_start ("ob_gzhandler"); header ("content-type: text/javascript; charset: UTF-8"); header ("cache-control: must-revalidate"); $offset = 60 * 60 * 60 * 7; $expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT"; header ($expire); ?> -
.htaccess파일에 내용 추가<FilesMatch "\.(js)"> ForceType application/x-httpd-php php_value auto_prepend_file /home/munilive/blog/gzip_javascript.php </FilesMatch>
CSS 압축
-
gzip_css.php파일 생성<?php ob_start ("ob_gzhandler"); header ("content-type: text/css; charset: UTF-8"); header ("cache-control: must-revalidate"); $offset = 60 * 60 * 60 * 7; $expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT"; header ($expire); ?> -
.htaccess파일에 내용 추가<FilesMatch "\.(css)"> ForceType application/x-httpd-php php_value auto_prepend_file /home/munilive/blog/gzip_css.php </FilesMatch>
참고로 .htaccess파일에 적용하는 경로는 절대 경로를 지정해야 한다.
적용하고 제대로 작동하는지 확인하려면, 아래 사이트에 접속해 본다.
https://www.whatsmyip.org/http-compression-test/
또는 https://redbot.org/ 로 접속해서 헤더에 Content-Encoding: gzip을 포함하고 있는지 확인한다.
참고 사이트
이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스 에 따라 이용할 수 있습니다.
Comments
Related Posts
.htaccess Rewriterule 사용하는법
Apache의 Rewrite Module 사용을 위한 설정 방법 및 모듈의 지시자 및 사용 방법 등에 대해 설명을 한다.
지정아이피의 접속을 제외한 모든 접속을 특정페이지로 보내기
.htaccess 설정으로 특정 IP의 접속을 제외한 모든 접속을 redirect 시키는 방법에 대한 글이다.
.htaccess 이용하여 타서버에서 이미지 링크 막기 (이미지 무단링크 방지)
apache의 .htaccess 파일 설정을 통해 내 도메인 외 다른 도메인에서의 접근을 제한하는 방법에 대한 설명 글이다.