ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서버) Nginx 캐시 설정방법
    Programing Study/네트워크 2021. 8. 11. 21:01
    728x90
    반응형

    Nginx 에서 캐시 설정을 하는 방법에 대한 기록입니다.

    캐시 서버를 별도로 두는 방법도 있고 캐싱 방법이야 무궁무진한데, 일반적으로는 클라이언트의 컴퓨터에 다운받게하고 웹 서버에서 정보를 풀링할동안 띄워주는 역할을 하는 그 캐시를 설정하는 방법을 알아보았다.

     

    일반적으로 모든 웹 페이지 소스는 클라이언트에 다운되어 랜더링 되는데, 이 과정에서 Cache TTL(생존주기)가 대부분 미정으로 되어있다. 이런 페이지는 브라우저나 환경별로 매번 새 정보를 요청할때가 있거니와 자체적인 TTL 기준으로 사용되어지기도 한다.

    보통 그래서 html 메타태그에 Cache-Control 이란 설정으로 페이지별로 캐싱정도를 관리하기도 하지만, 여기서는 Nginx가 모든 리소스 요청에 대해 캐싱 기준을 설정하는 그런 방법에 대해 기술한다.

     

    1
    2
    $ sudo nano /etc/nginx/sites-available/default


    Colored by Color Scripter
    cs
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    ...


    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";
            }
    }
    Colored by Color Scripter
    cs

     

    캐싱 기준은 서버마다 다르겠지만 본인의 경우에는 -1, 1M, 3M으로 설정했다. 사실 이미지나 영상 같은 이름의 리소스가 바뀌는 경우는 거의 없다시피 하므로 1y같이 년단위로 지정해도 상관이 없을것이다.

    728x90
    반응형
Designed by Tistory.