2016-10-07 4 views
1

2 초 동안 API를 캐싱하기 위해 Nginx 서버에 마이크로 캐싱 설정이 있습니다. 그러나 API에 대한 요청이있을 때마다 첨부 된 jQuery 콜백 매개 변수 때문에 Nginx에서 다른 URL을 볼 수 있습니다.JQuery 콜백을 사용한 Nginx 마이크로 캐싱

예 :

api.example.com/get_heats.php?sheet=105&callback=jQuery222018438785197213292_1475857341748&_=1475857342048

api.example.com/get_heats.php?sheet=105&callback=jQuery222018438785197213292_1475857341748&_=1475857342049

들은 모두 참조 시트 (105)이지만, 그들이 있기 않기 때문에 2 초 동일한 값을 반환해야 콜백 및 _ 매개 변수가 각 요청마다 변경됩니다. Nginx가 다른 매개 변수를 무시할 수있는 방법이 있습니까?

+2

fastcgi_cache_key이 당신의 nginx 캐싱 구성을 게시? jquery 매개 변수를 무시한 정규식과 일치하는 방법이있을 수 있습니다. – roger

+0

http://serverfault.com/questions/545009/nginx-ignore-query-string-for-caching-certain-files – cOle2

+0

cOle2 - 링크 캐시 URL없이 임의의 매개 변수. 하나의 매개 변수와 다른 매개 변수를 사용하여 URL을 캐시해야합니다. – Aaron

답변

1

다음 코드를 시도하십시오,

server { 
    ... 
    location ~ \.php$ { 
     ... 
     set $cache_key $request_uri; 
     ... 
     if ($args ~ "sheet") { 
     set $cache_key $cache_key|$arg_sheet; 
     } 
     ... 
     fastcgi_cache_key $cache_key; 
     ... 
    } 
    ... 
} 

참고 : Learn to implement microcaching,