NGINX 정적 페이지, 파일 브라우저 캐시 expires 설정

NGINX

웹서버에서 처리하는 파일의 종류는 크게 두가지입니다. PHP나 JSP, CGI와 같이 입력값 변수로 인해 결과물이 달라지는 동적 파일과 이미지, 음원, 비디오, 텍스트 문서등 파일 자체가 변하지 않는 정적 파일인데요.

동적 파일 같은 경우, 예를 들어 워드프레스에 캐시 설정을 하게 되면 댓글이나 새글을 포스트 했을때 그 페이지의 출력물이 변하게 되어 브라우저 캐시 설정을 하면 안되지만 이미지 같은 정적 파일 같은 경우 새로운 요청이 들어오면 서버에서 해당 파일을 응답, 전송 후 다시 같은 파일 요청이 들어오면 사용자 브라우저에서 캐시로 다운로드 받은 이미지를 뿌려줌으로써 웹서버의 속도와 동시에 트래픽을 절약할수 있는 방법입니다.

NGINX 정적 페이지,파일 브라우저 캐시 설정

location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
  expires 1M;
  access_log off;
  add_header Cache-Control "public";
}

location ~* \.(?:css|js)$ {
  expires 1y;
  access_log off;
  add_header Cache-Control "public";
}

위에서 언급했다시비 이미지, 음악파일등 정적 파일을 위와 같이 설정한 다음 expires에 브라우저 캐시될 기간을 지정합니다.

파일 확장자마다 브라우저 캐시 기간을 다르게 하고싶다면 location 항목을 하나 더 만들어 다르게 설정할수 있습니다.

location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
  expires 1M;
  access_log off;
  add_header Cache-Control "public";

  proxy_pass backend;
}

location ~* \.(?:css|js)$ {
  expires 1y;
  access_log off;
  add_header Cache-Control "public";

  proxy_pass backend;
}

만일 리버스 프록시 환경에서 NGINX에 캐시 헤더를 넣고 싶다면 같은 요령으로 위와 같이 설정하면 되겠습니다.

expires에 대한 자세한 옵션 항목은 NGINX 문서를 참조하세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.

nginx title 03
NGINX WebDAV 설정 방법
WebDAV(Web Distributed Authoring and Versioning)는 http를 이용해 웹서버에 저장되어 있는 파일을 여러 사용자가 편집하기 위해 고안된 프로토콜입니다. 실제로는 FTP 대용으로…
windows nginx php setting title
윈도우 NGINX PHP 연동 및 서비스 등록 방법
이전 포스트에서 윈도우에 NGINX를 설치하고 서비스에 등록하는 방법까지 알아봤는데요. NGINX를 개발 환경 또는 웹서버 환경으로 만들기 위해서 PHP를 설치해야 하는…