ngnix 캐 시 설정

3660 단어 캐 시ngnix

nginx 기반 FastCGI 캐 시 설정
 설정:
 
사실 fastcgicache 와 proxycache 설정 은 기본적으로 같 습 니 다:

# !        
# levels        
# keys_zone             (        )
# inactive      , 1d = 1 
# max_size        (    )
fastcgi_cache_path /home/xwsoul/code/web/demo/cgi_cache/cache_dir/ levels=2:2 keys_zone=cgi_one:10m inactive=2h max_size=2g;

server {

    listen   80;
    server_name demo.xwsoul.com;

    root /home/xwsoul/code/web/demo;
    index index.html index.php;

    #    fastcgi_cache
    location ~ /pcgi(/*) {
        allow                127.0.0.1;
        allow                192.168.2.0/24;
        deny                 all;
        fastcgi_cache_purge  cgi_one "$scheme$request_method$host$1";
    }

    try_files $uri @missing;
    location @missing {
        rewrite ^/cgi_cache/(.*) /cgi_cache/index.php?code=$1 last;
    }

    location ~ .*\.php$ {
        #        cache
        set $xwsoul_nocache yes;
        #     URL   /cgi_cache/      
        if ($request_uri ~ ^/cgi_cache/) {
            set $xwsoul_nocache "";
        }
        # CGI    
        fastcgi_pass             127.0.0.1:9000;
        #    cache      
        fastcgi_cache            cgi_one;
        #         HEADER, GET, POST        
        fastcgi_cache_methods    GET;
        #          key    
        # $scheme https/http
        # $request_method     ,       ,   GET
        # $host   
        # $request_uri     
        fastcgi_cache_key        "$scheme$request_method$host$request_uri";
        #    :                
        fastcgi_cache_valid      200 302 1h;
        #              
        fastcgi_cache_use_stale  error timeout invalid_header http_500;
        #          URL ,      
        fastcgi_cache_min_uses   1;
        #     
        fastcgi_cache_bypass     $xwsoul_nocache;
        fastcgi_no_cache         $xwsoul_nocache;
        #           -       
        add_header               X-Cache "$upstream_cache_status";
        # fastcgi        
        include                  fastcgi.conf;
    }
}

몇 가지 질문:
1. set 변 수 를 사용 하여 $xwsoul 을 제어 하 는 이 유 는 무엇 입 니까?nocache 가 fastcgi 를 제어 합 니 다.cache_by pass (0.8x 이후 공식 추천 방법) 와 fastcgino_cache 매개 변 수 는 캐 시 생 성 여 부 를 확인 합 니까?간단 합 니 다. 모든 페이지 에 cache 가 필요 할 수 는 없 기 때 문 입 니 다. 물론 더 좋 은 실현 방법 이 있 습 니 다. 가능 한 한 조언 해 주 십시오.
2. 내 가 / cgi 에 있다 면cache / 아래 스 크 립 트 는 캐 시 없 이 가능 합 니까? 어떻게 합 니까?이것 도 간단 합 니 다. CGI 를 통 해 돌아 오 는 Head 를 통 해 제어 할 수 있 습 니 다. header('Cache-Control:no-cache, must-revalidate, max-age=0;');header('Expires:0;'); 모두 실현 할 수 있 습 니 다.
3. 캐 시 된 Cache Name 에 왜 $scheme 가 필요 합 니까?http / https 는 보안 등급 이 다 르 기 때문에 필요 한 캐 시 메커니즘 이 다 를 수 있 습 니 다!
마지막 으로 접근 할 PHP 테스트 스 크 립 트 를 첨부 합 니 다.

<?php
$code = isset($_GET['code'])?$_GET['code']:'';
echo '<pre>';
var_dump($code);
echo '</pre>';
$code = md5($code);
$rand = mt_rand(1, 10);
echo '<p>';
echo 'Loop <b>', $rand, '</b> :<br />';
for ($i = 0;$i < $rand;$i++) {
    echo $code, '<br />';
}
echo '</p>';
echo date('Ymd H:i:s'), '<br />';

좋은 웹페이지 즐겨찾기