首頁  >  問答  >  主體

關於 `nginx` 的 `cache` 的問題

我有一個請求: http://www.example.com/app?test=1 . 希望當有test=1 這個請求參數的時候快取這這個url. 請問nginx 能做到麼? 。

我在設定檔中寫

service {

    location /app {
      if ( $arg_test ) {
        //nginx 的 cache 的配置
      }
    }
}

但是 啟動的時候報錯。告訴我 cache 不能配置在 if 區塊中。 。 。

ringa_leeringa_lee2713 天前526

全部回覆(1)我來回復

  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:26:57

    首先,你當然不能將全部的配置放在if中

    不過你可以這樣

    location /app {
        proxy_set_header Host $host;
        proxy_cache_path /data/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
        if ( $arg_test ){
            proxy_pass http://backend:backport;
        }
    }
    

    這個回答可能也不符合你的要求, 但真的需要對cache的配置進行條件化嗎?
    貼文更細節點的設定檔也許能更了解你的需求...

    歡迎追蹤本人segmentfault部落格.

    回覆
    0
  • 取消回覆