English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
nginx.conf 부분 내용:
proxy_temp_path /nginx/캐시/temp; proxy_cache_path /nginx/캐시/path levels=1:2 keys_zone=cache_test:2048m inactive=7d max_size=10g; ...... location ~ .(gif|jpg|jpeg|png)$ { proxy_pass http://upstreams; proxy_ignore_headers X-Accel-expires expires 캐시-컨트롤 세트-쿠키; proxy_cache cache_test; #캐시 키를 설정합니다 proxy_cache_key $host$uri$is_args$args; #상태 코드를 설정합니다200과304의 응답은 캐시할 수 있으며, 캐시 시간은1일 proxy_cache_valid 200 304 1d; expires 30d; }
nginx 캐시되지 않는 이유
기본적으로, nginx가 캐시되는지 여부는 nginx 캐시 서버와 원래 서버가 함께 결정합니다. 캐시 서버는 캐시 여부와 캐시 시간을 결정하기 위해 원래 서버의 응답 헤더를 철저히 준수해야 합니다.
헤더는 다음과 같습니다:
캐시-컨트롤: no-캐시, no-스토어
이 두 값이 나타나면 nginx 캐시 서버는 절대로 캐시하지 않습니다
expires:1980-01-01
날짜가 현재 시간보다 빠를 경우도 캐시되지 않습니다.
캐시되지 않는 해결책
2.1 메서드 1:
프로그램이나 원래 서버 웹 프로그램의 응답 헤더를 수정합니다
2.2 메서드 2:
nginx 프록시에 다음 문장을 추가하면 됩니다:
proxy_ignore_headers X-Accel-expires expires 캐시-컨트롤 세트-쿠키;
결론
이 글의 모든 내용이 끝났습니다. 이 글의 내용이 여러분의 학습이나 업무에 도움이 되길 바랍니다. 의문이 있으시면 댓글을 통해 교류해 주세요.