nginx 기반 캐 시 기능 구현

2962 단어 nginx캐 시 구현
1. nginx 캐 시 기능 설명 실현
캐 시 데 이 터 는 두 부분 으로 나 뉜 다 (색인, 데이터).
1. 데 이 터 를 저장 하 는 색인 을 메모리 에 저장 합 니 다.
2. 캐 시 데 이 터 를 저장 하고 디스크 공간 에 저장 합 니 다.
Nginx 캐 시 구현 은 프 록 시 캐 시 pxorycache, 이것 도 ngxhttp_proxy_module 모듈 에서 제공 하 는 기능 입 니 다. 여기 설정 옵션 이 많 습 니 다. 자주 사용 하 는 옵션 은 proxy 입 니 다.cache_path、proxy_cache、proxy_cache_valid。
1、proxy_cache_path
proxy_cache_path 는 캐 시 데이터 의 디스크 경로, 색인 에 저 장 된 메모리 공간, 캐 시 삭제 정책 과 같은 완전한 캐 시 공간 을 정의 합 니 다.
이 옵션 은 http 블록 컨 텍스트 에 만 정의 할 수 있 습 니 다.
예 를 들 어, proxycache_path    /data/cache levels=1:2    keys_zone=web:10m max_size=1G inactive=10;
캐 시 데 이 터 는 / data / cache 디 렉 터 리 에 저 장 됩 니 다.
levels: 이 디 렉 터 리 아래 에 두 개의 디 렉 터 리 를 나 누 어 설정 합 니 다. 한 층 에 한 개의 무 작위 문 자 를 이름 으로 하고, 두 층 에 두 개의 무 작위 문 자 를 이름 으로 합 니 다. levels 는 최대 3 층, 한 층 에 두 개의 문 자 를 더 합 니 다. 이것 은 파일 에 접근 하 는 속 도 를 가속 화하 기 위해 서 입 니 다.마지막 으로 프 록 시 url 의 해시 값 을 키워드 와 파일 이름 으로 사용 합 니 다.
keys_zone: 이 캐 시 영역 이름 을 짓 고 크기 를 설정 합 니 다.이름 을 웹 으로 지정 합 니 다. 이 이름 뒤에 proxycache 참조 필요;10m 는 메모리 공간의 크기 이다.
max_size:   최대 캐 시 데이터 디스크 공간의 크기 지정 하기;
inactive:    inactive 가 지정 한 시간 내 에 접근 하지 않 은 캐 시 데 이 터 는 캐 시 에서 삭 제 됩 니 다.
2、proxy_cache
proxy_cache 는 위의 proxy 를 참조 합 니 다.cache_path 가 정의 하 는 캐 시 공간 입 니 다. 현재 캐 시 기능 을 엽 니 다. 다음 과 같 습 니 다.
proxy_cache web; #위 에서 정의 한 캐 시 공간 을 참조 하 십시오. 같은 캐 시 공간 은 여러 곳 에서 사용 할 수 있 습 니 다.
3、proxy_cache_valid
proxy_cache_유효한 응답 코드 의 캐 시 시간 을 설정 합 니 다. 예 를 들 어:
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
2. 캐 시 기능 설정 파일 인 스 턴 스 실현
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             mime.types;
    default_type        application/octet-stream;
        #    
        proxy_cache_path /data/cache levels=1:2 keys_zone=nginx:20M max_size=2G  inactive=5;
        #           
        add_header muzigan-Cache "$upstream_cache_status form $server_addr";
        upstream static_server {
                server 192.168.17.175:80 weight=5;
                server 192.168.17.176:80 weight=3;
                check interval=3000 rise=2 fall=5 timeout=2000 type=http;
                check_http_expect_alive http_2xx http_3xx;
        }

    server {
        listen       80 default_server;
        server_name  _;


        location ~ ^/p_w_picpaths {
                index index.php index.html;
                proxy_pass http://static_server;
                #    
                proxy_cache nginx;
                #    
                proxy_cache_valid 200 301 302 2m;
        }
    }

}

좋은 웹페이지 즐겨찾기