blog

정적 리소스의 NGINX 배포를 사용하는 프런트 엔드, Nginx 캐싱 전략

주의할 점이 있습니다. 여기서 프론트엔드는 클라이언트 측 렌더링이고 파일 이름이 변경되지 않으므로 협상된 캐시를 사용하므로 실제로는 캐시 자체가 상대적으로 작은 크기이므로 캐싱 없...

Oct 2, 2025 · 2 min. read
シェア

그냥 메모로 작성하는 것입니다.

여기서 프론트엔드는 클라이언트 측 렌더링이기 때문에

  1. index.html은 변하지 않는 파일명이므로 크기가 상대적으로 작기 때문에 캐시되거나 실제로는 캐시되지 않도록 협상됩니다. 설정의 17번째 줄을 참조하세요.
  2. js, css 이러한 파일은 index.html에 로드되므로 그 자체가 강력한 캐시가 될 수 있으므로 js, css를 참조하는 index.html 만 업데이트됩니다!
server {
 listen 8093;
 server_name localhost;
 #access_log /var/log/nginx/host.access.log main;
 root /svideoWeb/dist;
 location / {
 index index.html index.htm;
 try_files $uri $uri/ /index.html;
 }
 location ~* \.(js|css|svg)$ {
 expires 1y; # 강력한 캐시는 캐시 시간을 1년으로 설정합니다.
 add_header Cache-Control "public"; # 클라이언트 및 프록시 서버의 파일 캐시 허용
 }
 location = /index.html {
 expires -1; # 캐시 협상, 각 요청은 서버에 대한 캐시 유효성을 확인합니다.
 add_header Cache-Control "no-store"; # 클라이언트와 프록시가 파일을 캐시하도록 허용하지 마세요.
 }
 location ^~ /api/ {
 rewrite ^/api/(.*)$ /interface/$1 break;
 client_max_body_size 50M;
 proxy_pass "http://...1:8090";
 proxy_redirect default;
 proxy_set_header Host $host:$server_port;
 proxy_set_header X-Forwarded-Host $host:$server_port;
 proxy_set_header X-Forwarded-Server $host:$server_port;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;			
 }
 #error_page 404 /404.html;
 # redirect server error pages to the static page /50x.html
 #
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root /usr/share/nginx/html;
 }
 
}
Read next

Maven006-Maven 의존성 전달 및 의존성 충돌

Maven006 - 메이븐 의존성 전달과 의존성 충돌 [목차] I. 의존성 전달 1. 개요 개념: 메이븐 의존성 전달은 프로젝트가 다른 프로젝트나 라이브러리에 종속되어 있을 때, 해당 종속성을 자동으로 해결하고 획득하여 해당 항목이 다음과 같이 동작하도록 하는 것을 말합니다.

Oct 2, 2025 · 4 min read