Apache 서버의 Cache 적용하지 않기

최근에 요상한 경험을 했다. 업무로 고객사의 사이트를 리뉴얼하는 작업을 진행했는데 게시글을 등록하거나 수정해도 바로 반영이 되지 않고 이전 컨텐츠가 웹페이지에 표시되는 문제였다. ctrl +f5 를 눌러 새로고침 해야만 내용이 변경되곤 했는데 이상하게도 테스트 서버에서도 정상이었고 카페24의 호스팅 환경에서도 정상이었는데 유독 가비아의 호스팅에서만 문제가 발생했다.

가비아 고객센터로 문의를 해봤지만 브라우저 캐시같으니 새로고침하라는 답변만.. 내가 그걸 몰라서 문의한 게 아닐텐데.. 어쨌든 가비아에서는 해결해줄 것 같지 않기도 했고 작업을 빨리 진행해야 하기 때문에 구글링해서 여러 가지 방법을 시도했다. php 코드에 캐시관련 코드를 추가했지만 해결되지 않았고 결국은 Apache 서버의 캐시 설정이 문제가 될 것으로 생각되어 해당 설정을 변경하면 문제 해결을 시도했다.

고객사의 사이트는 rewrite 처리가 된 부분이 있어 index.php 파일에서 모든 요청을 처리하도록 되어 있는데 가비아 호스팅의 특수한 설정 때문인지 계속해서 캐시가 되는 듯 했다. 그래서 아래와 같은 설정을 .htaccess 파일에 추가했다.

<Files index.php>
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</Files>

이렇게 설정했을 때 게시글 등록이나 수정 때 웹페이지 컨텐츠가 바로 반영되는 것을 확인했다. 이 설정이 모든 경우에 유효할 것이라고 생각되진 않는데 적어도 작업 중인 가비아 호스팅 환경에서는 적용이 되는 듯 했다.

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

4 thoughts to “Apache 서버의 Cache 적용하지 않기”

  1. 어휴….저도 가비아의 특이한 설정 때문에 고생한게 한두개가 아니죠. 방문자가 폭락해서 보니 구글 색인이 확 줄었더라구요. SEO 아무리 설정해도 안되서 보니 가비아가 구글 크롤링을 전부 차단. 그게 할짓인지.
    손해가 막심하다고 따졌더니, 당연하다는 듯이, 구글 크롤링을 허용하면 서버 부하가 심해질텐데 왜 풀어야 하냐고 하더라구요

    1. 구글 크롤링을 차단한다는 것은.. 도대체 무슨 생각일까요?
      가비아 호스팅은 아무래도 사용하지 않는 걸로 해야할 듯 합니다.

  2. 요새 같은 세상에 그런 짓(?)을 하는 업체는 점점 없어질 듯 합니다.

    편리님 크롬 모바일로 들어오면 이름 이메일 웹사이트 넣는 부분 가로가 너무 커서 화면이 이리저리 흔들리네요 ㅎㅎ

    1. 그렇게만 되면 참 다행인데.. 말이죠. ㅎㅎ
      테마 업데이트 후 그렇게 된건지.. 살펴봐야 하는데 은근 귀찮네요. ^^;

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.