簡體   English   中英

Nginx - 使用 proxy_cache_bypass 傳遞 proxy_cache 值

[英]Nginx - pass proxy_cache value with proxy_cache_bypass

我有多個proxy_cache_path指令,在http塊中,我想將proxy_cache變量的值傳遞給 lua 模塊。 但是,我不想多次定義路由(/tmp/cache/BackendA 或 /tmp/cache/BackendB 等)。 我寧願將它存儲在一個變量中。

我的配置片段:

http {
    proxy_cache_path /tmp/cache/BackendA keys_zone=BACKEND_A_PROXYCACHE:50m max_size=1g use_temp_path=off inactive=20m;
    proxy_cache_path /tmp/cache/BackendB keys_zone=BACKEND_B_PROXYCACHE:100m max_size=2g use_temp_path=off inactive=30m;
    # ...

    server {
        # ...

        location =/BackendA/ServiceA {
            # ...
            proxy_cache BACKEND_A_PROXYCACHE;
            # set $cache_folder_path "/tmp/cache/BackendA";
            set $cache_folder_path $proxy_cache;
            proxy_cache_bypass $cache_folder_path;
        }
        
        location =/BackendB/ServiceB {
            # ...
            proxy_cache BACKEND_B_PROXYCACHE;
            # set $cache_folder_path "/tmp/cache/BackendA";
            set $cache_folder_path $proxy_cache;
            proxy_cache_bypass $cache_folder_path;
        }
    }
}

如果我嘗試使用set $cache_folder_path $proxy_cache; 命令然后我無法啟動 nginx 服務器。

錯誤信息:

nginx: [emerg] unknown "proxy_cache" variable

我正在尋找比評論部分更優雅的解決方案: set $cache_folder_path "/tmp/cache/BackendA";

問題是我現在該怎么辦? 將不勝感激任何幫助。

如果您使用 Linux 並且支持 apt-get,用於緩存模塊

apt-get install nginx-extras

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM