개발
백엔드
Nginx 캐시 설정법
526 views as of February 11, 2020.
⚠ 이 글은 2년 이상 지난 이야기에요. 읽으실때 참고!
Nginx 에서 캐시 설정을 하는 방법에 대한 기록입니다.
캐시 서버를 별도로 두는 방법도 있고 캐싱 방법이야 무궁무진한데, 일반적으로는 클라이언트의 컴퓨터에 다운받게하고 웹 서버에서 정보를 풀링할동안 띄워주는 역할을 하는 그 캐시를 설정하는 방법을 알아보았다.
일반적으로 모든 웹 페이지 소스는 클라이언트에 다운되어 랜더링 되는데, 이 과정에서 Cache TTL(생존주기)가 대부분 미정으로 되어있다. 이런 페이지는 브라우저나 환경별로 매번 새 정보를 요청할때가 있거니와 자체적인 TTL 기준으로 사용되어지기도 한다.
보통 그래서 html 메타태그에 Cache-Control 이란 설정으로 페이지별로 캐싱정도를 관리하기도 하지만, 여기서는 Nginx가 모든 리소스 요청에 대해 캐싱 기준을 설정하는 그런 방법에 대해 기술한다.
$ sudo nano /etc/nginx/sites-available/default
Copy
...
server {
...
# 로컬 설정, 웹페이지, api 요청등은 캐싱하지 않고 매번 새로운 자료로 제공한다.
location ~* \.(?:manifest|html?|php?|xml|json)$ {
expires -1;
}
# 홈페이지를 구성하는 스타일, 스크립트는 1달 정도 캐싱한 후 새로운 정보를 제공한다.
location ~* \.(?:css|js)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
# 홈페이지를 구성하는 이미지등의 리소스는 변화가 거의 없으므로 한 번 다운로드하면 3달 정도 캐싱한다.
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 3M;
access_log off;
add_header Cache-Control "public";
}
}
Copy
캐싱 기준은 서버마다 다르겠지만 본인의 경우에는 -1, 1M, 3M으로 설정했다. 사실 이미지나 영상 같은 이름의 리소스가 바뀌는 경우는 거의 없다시피 하므로 1y같이 년단위로 지정해도 상관이 없을것이다.
#Nginx
0
개의 댓글
백엔드 콜렉션의 다른 글
개발 카테고리의 다른 글
07/02/2020
AWS EC2, Nginx, PHP-fpm 환경 구축 텍스트 가이드라인
근래에 작업이 전부 ec2를 이용해 Ubuntu 18.04 환경에 Nginx, PHP-fpm을 세팅하는 경우가 많아 개인 메모장에 정리해두었던 세...
02/10/2020
Ubuntu에서 환경변수 PATH 추가 적용하는 방법
우분투 환경에서 개발을 하다보면 PATH에 로컬에 설치한 패키지 폴더를 추가로 입력해야 하는 상황이 발생한다. 그것에 대한 기...
02/10/2020
AWS EC2 인스턴스에 PHP 설치 후 Nginx와 연동하기
이전 글에서 이어지는 내용입니다. Nginx를 설치했으므로 그 위에서 돌아갈 언어 중 하나인 PHP를 설치해봅시다. Nginx와 연동...