⚠ 이 글은 2년 이상 지난 이야기에요. 읽으실때 참고!
개발
서버 개발 일지
Nginx 캐시 설정법
496 views as of February 11, 2020.
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 #Cache #캐시
0
개의 댓글
Collection. 서버 개발 일지
01.
413 Request Entity Too Large 문제에 대해
2019
02.
ssh 터미널 접근시 발생하는 문제에 대해
2019
03.
Nginx 404 에러 페이지 리다이렉트
2019
04.
Nginx SSL 적용
2019
05.
파이썬으로 웹사이트 상태 체크하기
2019
06.
Nginx 서브 디렉토리 역방향 프록시 설정
2019
07.
PHP7.2 로 판올림 이후 PhpMyAdmin 이슈
2019
08.
Nginx 환경에서 웹폰트 확장자 CORS 이슈
2019
09.
Nginx 체인 인증서 적용
2019
10.
Nginx 특정 IP 차단 하기
2019
11.
proc_open(): fork failed errors ~ 포크 실패 에러
2020
12.
Ubuntu에서 환경변수 PATH 추가 적용하는 방법
2020
13.
Nginx 캐시 설정법
2020
14.
도커(docker)로 SSL 인증서 발급하는 과정.
2021
15.
Ubuntu 스왑 메모리(Swap Memory) 설정
2023
16.
Ubuntu 디스크 용량 확인하는 몇가지 명령어
2023
17.
도커(docker) 인증서 발급 조회 삭제 명령어
2024
18.
Ubuntu 로그 100개 떼어보기
2024
19.
SSL 인증서 비밀번호 제거 방법
2024
20.
Nginx 서버 로그 기록 설정 및 커스터마이징
2024