Nginx 서버 의 캐 시 메커니즘
1. 웹 캐 시 주요 사상
웹 캐 시 기술 의 기본 사상 은 고객 이 방문 한 시간의 국부 적 원 리 를 이용 하여 고객 이 이미 방문 한 내용 을 Nginx 서버 로 컬 에 복사 본 을 만 드 는 것 이다. 이렇게 한 동안 이 데 이 터 를 다시 방문 하면 Nginx 서버 를 통 해 백 엔 드 서버 에 다시 요청 할 필요 가 없 기 때문에 Nginx 서버 와 백 엔 드 서버 간 의 네트워크 트 래 픽 을 줄 일 수 있다.네트워크 체증 을 줄 이 는 동시에 데이터 전송 지연 을 줄 이 고 사용자 의 방문 속 도 를 높 일 수 있다.또한 백 엔 드 서버 가 다운 되 었 을 때 Nginx 서버 의 던 전 자원 은 관련 사용자 의 요청 에 응답 하여 백 엔 드 서버 의 노 스틱 성 을 높 일 수 있 습 니 다.
2. Nginx 캐 시 구현 원리
2.1 프 록 시 스토어 기반 캐 시 시스템
2.1.1 404 오류 구동
Nginx 서버 에서 사용자 요청 데이터 가 서버 로 컬 에 존재 하지 않 을 때 404 오류 가 발생 합 니 다. 서버 는 이 오 류 를 포착 하여 백 엔 드 서버 로 전환 하여 관련 데 이 터 를 요청 하고 마지막 으로 백 엔 드 에서 요청 한 데 이 터 를 클 라 이언 트 에 전송 하 며 서버 로 컬 캐 시 에 있 습 니 다.
프로필 구성 방안:
location /{
root /web/server/;
# 404 /error_page
error_page 404 =200 /error_page$request_uri;
}
# 404
location /error_page/{
internal;
alias /home/html;
proxy_pass http://backend/; # upstream
proxy_store on; # Nginx
proxy_store_access user:rw group:rw all:r;
# , /web/server/
proxy_temp_path /web/server/tmp;
}
2.1.2 자원 에 구동 이 존재 하지 않 음
원 리 는 기본적으로 404 오류 구동 과 같 습 니 다. 다른 점 은 이 방법 은 location 블록 의 location if 조건 을 통 해 Nginx 서버 와 백 엔 드 서버 의 통신 과 웹 캐 시 를 직접 구동 하 는 것 이 고 자원 에 404 오류 가 발생 하지 않 습 니 다.
프로필 세 션:
location /{
root /web/server/;
internal;
alias /home/html;
proxy_store on; # Nginx
proxy_store_access user:rw group:rw all:r;
# , /web/server/
proxy_temp_path /web/server/tmp;
# , ,
if( !-f $request_filename)
{
proxy_pass http://backend/; # upstream
}
}
이 두 가지 캐 시 메커니즘 은 200 상태의 응답 데이터 만 캐 시 할 수 있 을 뿐 동적 링크 요청 은 지원 되 지 않 습 니 다.예 를 들 어 getsource? id = 1 과 getsource? id = 2 두 요청 은 같은 자원 을 되 돌려 줍 니 다.그래서 실제 적 으로 Nginx 와 Squid 서버 구 조 를 조합 하여 실현 하 는 방안 을 사용한다.
2.2 memcached 기반 캐 시 메커니즘
memcached 는 메모리 에 공간 을 열 고 Hash 표를 만 들 고 캐 시 데 이 터 를 키 / 값 으로 Hash 표 에 저장 하여 관리 합 니 다.memcached 는 서버 와 클 라 이언 트 두 핵심 모듈 로 구성 되 어 있 으 며, 서버 는 '키' 의 Hash 값 을 계산 하여 키 / 값 이 서버 에 있 는 위 치 를 확인 합 니 다.위치 가 확정 되면 클 라 이언 트 는 해당 하 는 서버 에 조회 요청 을 보 내 서버 에서 필요 한 데 이 터 를 찾 고 되 돌려 줍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.