개발
nginx 캐싱 설정 (Cache-Control)
앞전의 이야기랑 연계되는 이야기이긴한데,
S3서버를 통해서 제공되는 파일은 그쪽에서 캐싱처리를 해도되지만, 웹서버에 올려서 호스팅되는 파일은 웹서버쪽에서 캐싱처리를 해야한다.
더군다나 나는 Docker 환경에 Proxy 방식으로 웹서버를 운용중이라 적용하는데 좀 버거운 과정이 있었다.
쉽게 상황을 풀어보면 도커에서 여러 서버 컨테이너를 운용하기위해서 나는 외부 접속을 8000포트의 프록시 서버가 관리하고 이 프록시 서버에서 요청된 도메인에 해당하는 서버 스트림으로 연결을 넘겨주게된다.
여기서 해당 서버에 호스팅된 파일의 캐시관리는 프록시 서버가 하는게 아니라 해당 서버 블록에서 하게된다.
난 이것도모르고 계속 프록시 서버 설정에다가 캐시를 적용하고있었다...
location ^~ /css/ {
expires 1y;
add_header Cache-Control "public, max-age=31536000, immutable";
try_files $uri =404;
access_log off;
log_not_found off;
}
location ^~ /js/ {
expires 1y;
add_header Cache-Control "public, max-age=31536000, immutable";
try_files $uri =404;
access_log off;
log_not_found off;
}
location ^~ /fonts/ {
expires 1y;
add_header Cache-Control "public, max-age=31536000, immutable";
try_files $uri =404;
access_log off;
log_not_found off;
}
location ~* \.(?:jpg|jpeg|webp|png|gif|svg|ico)$ {
expires 30d;
add_header Cache-Control "public, max-age=604800";
access_log off;
log_not_found off;
}
# 기존 / 로케이션 블럭위에 캐싱 파트를 배치
location / {
try_files $uri $uri/ /index.php?$query_string;
}
Copy
그래서 해당 웹서버가 작동되는 nginx/default.conf 파일을 열어 기존 / 로케이션 블록위에 캐싱 설정값을 적용하면 정상적으로 작동하는 것을 확인할 수 있다.

7일은 너무짧아서 페이지스피드 경고에 뜨긴하는데, 30일정도로 늘려봐야겠다.
#문제해결 #Nginx #Ubuntu
0
개의 댓글
개발 카테고리의 다른 글

04/24
자바스크립트로 만드는 유저 조회수 카운터 기능
내 사이트 조회수는 469인데애드센스 조회수는 117... 뭐냐 이거! 사이트를 운영하는 입장에서 사이트의 활성도를 보는 가장 기본적인 척도는 바로 '조회수'이다.말그대로 조회수는 내 사이트의 특정 페이지의 조회가 얼마나 되었는지 보여주는 정량적 수치로 '방문자수'와 더불어 중요한 지표로 사용된다. 방문자수의 경우...

04/21
AWS S3 캐싱 정책 일괄변경 작업 + Laravel 옵션
나는 AWS S3를 통해서 게시글 본문 이미지를 호스팅 하고 있다.이 S3를 최대한 잘 사용해보기 위해서 그위에 Cloud Front를 얹어서 CDN 처럼 지역 배포하는 기능을 구현해놨는데, 이게 캐싱설정이 제대로 먹지 않는다는걸 알게되었다. 무슨말이냐면 아무리 CloudFront에 캐시정책이 제대로 설정되어있다하더라고 S3에 설정...
04/16
JSON 테스트 데이터
우리가 급하게 JSON 형식의 데이터가 필요할때 그걸 일일히 만들고있기에는 JSON 데이터구조가 나름 복잡한 구조라고 볼 수 있다.그렇기 때문에 보통 임의의 배열을 만들고 JSON 관련 인코딩/디코딩 함수를 통해 일련의 정보를 얻는 방식을 취한다. 하지만 정말 급하게 JSON 형태의 데이터가 필요할 경우 로렌입숨처럼 쉽게...