우리가 브라우저를 통해 웹서핑을 할때 해당 문서와 그 문서를 꾸며주는 CSS, 자바스크립트, 이미지등의 데이터를 사용자의 디스크에 임시 저장하게 됩니다.

하지만 사이트를 닫게 되면 임시 저장된 이미지와 스크립트는 삭제되어 없어집니다. 물론 브라우저 설정에 따라 다르지만 보편적으로는 그렇다는 겁니다.

만일 사용자가 같은 사이트에 같은 문서를 또다시 보게되면 이미지와 관련 스크립트를 다시 서버에 요청하게 되는데요. 웹서버를 운영하게 되면 이러한 리소스까지도 트래픽에 연관이 되고 방문자가 많을수록 다시 요청하는 양이 크게 증가해서 트래픽을 유발하게 됩니다.

이러한 재요청 문제에 대해서 아파치는 mod_expires 모듈을 통해 사용자가 사이트에 접속해서 받은 스크립트, 이미지등을 사용자의 디스크에 저장한 다음(캐시) 다음에 다시 해당 웹 페이지를 요청했을때 파일이 변화하지 않았다고 서버에서 응답하면 브라우저에서 사용자의 디스크에 있는 파일을 브라우저에 출력해서 속도를 높여줍니다.

mod_expires는 앞서 얘기한것 처럼 문서, 스크립트, 이미지, 동영상, 음악등의 파일을 사용자의 브라우저 임시폴더에 저장한 다음 사용자가 요청했을때 해당 파일이 캐싱되어 있고, 요청한 파일이 변경되지 않으면 캐시된 파일을 출력하게 해주는 역활을 하고 있습니다.

앞서 포스팅한 우분투 아파치 속도를 빠르게 mod_deflate gzip 압축 (링크)와 함께 필수적으로 설정해야 할 모듈이며 이런 작은 차이 하나하나가 누적되어 웹서버의 퍼포먼스에 영향을 주게 됩니다.

mod_expires 설정

ubuntu_apache_mods_deflate_01

mod_deflate와 마찬가지로 /etc/apache2/mods-enabled 경로로 이동한 다음 ll 명령어를 통해 expires 모듈이 아파치에서 사용하고 있는지 확인합니다.

expires.conf와 expires.load 파일의 심링크가 존재하지 않는다면 현재 아파치에서는 mods_expires 가 적용되지 않았다는 것인데요.

/etc/apache2/mods-available/expires.conf 파일을 편집기로 열어 해당 옵션이 잘 설정되어 있는지 확인합니다. 별도의 설정 없이 기본값으로도 대부분의 문서, 이미지, 스크립트가 정의되어 있습니다.

설정 파일을 확인한 다음 아파치가 사용할수 있게 mod_expires 관련파일 두개를 심링크 걸어주고 아파치를 재시작하면 설정은 끝납니다.

apache2_mod_expires_01

브라우저의 개발자 도구로 이미지를 다시 불러오면 코드 304 Not modified로 이미지를 웹서버에서 다운로드 받지 않고 브라우저의 캐시에서 재활용 되는것을 확인할수 있습니다.

PG

익스트림 매뉴얼 주인장 PG입니다. 다방면의 디지털 기술에 관심이 많고 삽질을 즐겨합니다. 포스트 내용중 궁금한 점이 있다면 댓글로 남겨주세요.

익스트림 매뉴얼의 모든 내용은 불펌금지 입니다. 자세한 내용은 링크를 참조하세요.

댓글이 없습니다.