Nginx

有沒有辦法只記憶體 GET Ajax 請求?

  • December 3, 2014

通常我在 nginx 配置規則中不允許記憶體所有 XMLHttpRequest:

map $http_x_requested_with $nocache_01 {
   default         0;
   XMLHttpRequest  1;
}

有沒有辦法只記憶體 GET Ajax 請求?

使用 $request_method

它沒有顯示,但假設配置中有一個 if 塊,如下所示:

if ($nocache_01) {
   ...
}

相反,通過將此變數與請求方法連接,可以進行更明確的檢查,即:

if ($nocache_01$request_method = "1GET") {
   ...
}

或者,例如,根本不使用地圖:

if ($http_x_requested_with$request_method = "XMLHttpRequestGET") {
   ...
}

感謝AD7six的提示。現在,我的地圖看起來就是這樣。

map $http_x_requested_with$request_method $nocache_01 { default 0; XMLHttpRequestGET 0; ~XMLHttpRequest(PUT|PATH|DELETE|POST) 1; }

這意味著 XMLHttpRequest(PUT|PATH|DELETE|POST) 不會被記憶體

fastcgi_no_cache $nocache_01; fastcgi_cache_bypass $nocache_01;

引用自:https://serverfault.com/questions/648549