Nginx 서버 의 캐 시 메커니즘

2957 단어
목차
  • 목록
  • 웹 캐 시 주요 사상
  • Nginx 캐 시 실현 원리
  • 1 프 록 시 스토어 기반 캐 시 메커니즘
  • 11 404 오류 구동
  • 12 자원 에 구동 이 존재 하지 않 습 니 다
  • 2 memcached 기반 캐 시 메커니즘

  • 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 값 을 계산 하여 키 / 값 이 서버 에 있 는 위 치 를 확인 합 니 다.위치 가 확정 되면 클 라 이언 트 는 해당 하 는 서버 에 조회 요청 을 보 내 서버 에서 필요 한 데 이 터 를 찾 고 되 돌려 줍 니 다.

    좋은 웹페이지 즐겨찾기