nginx 캐 시 파일 경로 계산 및 캐 시 청소 방법
프 록 시 먼저 보기cache_path 의 일반적인 설정:
proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=one:10m max_size=1g;
이 줄 설정 에서 역방향 프 록 시 캐 시 경 로 를 정의 합 니 다:
1) nginx 역방향 프 록 시 캐 시 디 렉 터 리 는 / usr / local / nginx / cache 입 니 다.
2) 캐 시 파일 의 key 와 다른 정 보 를 10M 공유 메모리 에 넣 고 one 이 라 고 명명 합 니 다.
3) 캐 시 파일 은 최대 1G 디스크 공간 을 차지 합 니 다.
그럼 또 하나의 level = 1: 2 가 무슨 뜻 이 죠?예 를 들 어 보 자.
URLhttp://netexr.blog.51cto.com/1.png이 그림 이 캐 시 되면 그의 경 로 는?
/usr/local/nginx/cache/9/ad/e0bd86606797639426a92306b1b98ad9
계산 방법:
1) nginx 는 먼저 요청 주소 / 1. png 를 md5 로 해시 하여 e0bd86606797639626a 92306 b1b98ad 9 를 얻 습 니 다.
2) level = 1: 2 는 마지막 자리 9 를 꺼 내 디 렉 터 리 를 만 든 다음 9 앞 에 있 는 2 자 리 를 디 렉 터 리 로 만 들 고 마지막 으로 방금 받 은 이 캐 시 파일 을 9 / ad 디 렉 터 리 에 넣 는 것 이다.
같은 방법 으로 추 리 를 합 니 다. level = 1: 1 을 설정 하면 캐 시 파일 의 경 로 는 / usr / local / nginx / cache / 9 / d / e0bd 8660679726426a 92306 b1b 98ad 9 입 니 다.
위의 예 는 가장 간단 한 URL 일 뿐 입 니 다. 인 자 를 가지 고 있다 면 요?
예 를 들 면http://netexr.blog.51cto.com/1.png?v=1그럼 캐 시 경 로 는 같 습 니까?
이 두 설정 을 비교 해 보 세 요.
proxy_cache_key $uri;
proxy_cache_key $uri$is_args$args;
첫 번 째 설정 은 인삼 이 없 는 $uri 에 따라 해시 만 진행 되 기 때문에 이 때 매개 변 수 를 추가 한 것 과 매개 변 수 를 추가 하지 않 은 것 은 같은 결과 입 니 다.
두 번 째 설정 은 도 메 인 이름 이후 의 모든 내용 (즉 $request uri) 을 해시 로 진행 하 는 것 입 니 다.
캐 시 경 로 를 계산 하 는 방법 을 알 게 되면 우 리 는 캐 시 청 소 를 할 수 있 습 니 다 (level = 1: 2 를 예 로 들 면).
#!/usr/bin/env php
";
} else {
echo $request_uri . "
";
}
} else {
echo $request_uri . "
";
}
설명:
1) MD5 해시 가 지나 간 후의 경 로 는 16 진법 으로 nignx 에 있어 조회 속도 가 빠르다.
2) level = 1: 2 는 level = 1: 1 보다 더 많은 디 렉 터 리 를 만 들 고 대량의 파일 을 캐 시 하기에 적합 합 니 다. 하나의 디 렉 터 리 에 있 는 파일 이 너무 많 으 면 IO 성능 이 떨 어 지기 때 문 입 니 다.
3) 캐 시 는 임시 파일 에 먼저 기록 되 므 로 proxy 를 권장 합 니 다.cache_path 와 proxytemp_path 는 같은 파일 시스템 에 놓 여 파일 시스템 간 의 디스크 IO 소 모 를 피 합 니 다.
4) nginx 는 HTTP 프로 토 콜 을 통 해 캐 시 를 삭제 하 는 제3자 플러그 인 이 있 지만 생각해 보 니 사용 하지 않 는 것 이 좋 습 니 다.nginx 의 캐 시 는 원래 성숙 하지 않 고 제3자 플러그 인 을 추가 하면 더욱 안심 할 수 없습니다.
다음으로 전송:https://blog.51cto.com/netexr/1252242
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.