본문 바로가기

72 Cache-Control 응답헤더 설정-캐싱제어

72.1 불필요한 Http 트래픽 요청방지

서버는 Cache-Control 을 반환하여 브라우저의 개별응답을 캐시하는 방법과 기간을 지정할 수 있습니다.

응답헤더에 Cache-Control 설정하지 않아도 HTTP캐싱은 브라우저에서 자동으로 처리 합니다.
하지만 헤더를 구성하면 더 많은 제어를 할 수 있으므로 응답헤더를 구성하는 것이 좋다고 합니다.
위 스샷은 Cache-Control 이 아직 적용되지 않았습니다.

72.2 Nginx 서버 conf 파일에 캐싱 설정

설정파일에서server {} 안에 location 블록을 추가하면 됩니다.

expires 1년 / public 으로 설정하였습니다.

location ~* \.(?:jpg|jpeg|gif|png|ico|woff2)$ {
    expires 1y;
    add_header Cache-Control "public";
}

Cache-Control option

옵션 설명
public 응답은 브라우저 및 CDN을 포함하여 누구나 캐시할 수 있습니다.
private 대부분 인증된 페이지에 사용하며, 사용자는 로컬로 캐시할 수 있습니다..
no-cache 캐싱을 하지만 사용하기 전에 사용자가 서버에서 항상 검증해야합니다.
no-store 캐싱을 비활성화 합니다.
max-age 캐싱할 시간을 설정합니다.


nginx -t 명령어로 변경한 설정 파일이 정상적으로 변경 적용되는지 확인 합니다.

root@oc-webwas:/etc/nginx/sites-available# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

이상이 없다면 서버를 재시작 합니다.

root@oc-webwas:/etc/nginx/sites-available# service nginx restart

72.3 브라우저에서 cache-control 확인하기

크롬 개발자 모드>네트워크에서 cache-control: public, max-age=31536000
적용된 화면을 볼수 있습니다.

72.4 cache control 에러 수정

잘나오다가 어느순간 파일을 font 파일을 못찾거나 응답헤더에 cache-control 이 없는 에러가 발생했습니다.

js, css 등 정적파일들은 static에 모아놓았으니 저 경로로 수정 후 정상동작합니다.

location /static {
                alias /usr/local/share/pythonblog/staticfiles;
                expires 1y;
                add_header Cache-Control "public";
        }
현재글 : 72 Cache-Control 응답헤더 설정-캐싱제어
Comments
Login:

Copyright © PythonBlog 2021 - 2022 All rights reserved
Mail : PYTHONBLOG