Nginx
基於正則表達式匹配的 NGiNX 自定義記憶體參數
我的問題如下:
- 如何基於正則表達式針對使用者代理設置自定義變數?
- 如何為反向代理請求設置自定義標頭?
- 如何使用這些值作為記憶體參數?
細節:
我正在基於使用者代理解析在我的應用程序中進行初始輸出…這基本上分解了請求渲染,因此初始渲染將匹配“xs”、“sm”、“md”、“lg”的引導大小…
我已經制定了我的正則表達式,以便移動設備將獲得為“xs”呈現的輸出,而普通平板電腦將預設獲得“sm”,其他任何人都會獲得“md”……在客戶端綁定後,它將調整為實際設備顯示,這主要是為了讓瀏覽器獲得他們需要的大小。
我想要做的是:
基於與使用者代理的模式匹配設置一些參數,這些參數將通過(反向代理)傳遞給我的應用程序
X-Initial-Size
- “xs”、“sm”、“md”、“lg”(實際上沒有什麼可以解析為“lg”X-Is-Human
- 與已知機器人匹配以進行檢測X-Browser-Class
- “古代”、“現代”、“ie#”(僅限 IE <= 9)使用
X-Initial-Size
andX-Browser-Class
作為vary-by
參數來實現更長的伺服器端輸出記憶體。
- 如何根據使用者代理的正則表達式設置自定義變數?
使用地圖。例如 :
map $http_user_agent $my_var { default "default_value"; "~^foo$" "value_1"; "~^bar$" "value_2"; }
- 如何為反向代理請求設置自定義標頭?
使用proxy_set_header。例如 :
proxy_set_header My-Header $my_var;
- 如何使用這些值作為記憶體參數?
將這些附加標頭定義為代理記憶體鍵的一部分:
proxy_cache_key $scheme$request_uri-$http_my_header-$http_my_other_header