2014-01-30 34 views
0

我是新來的清漆,但我試圖使用它作爲反向代理。 Everyting很好,除了當應用程序將url編碼參數附加到請求時,它永遠不會去到服務器。使用urlEncoded參數清漆

我們嘗試從哈希刪除參數,但它並不似乎是我們的麻煩

sub vcl_hash { 
    hash_data(regsub(req.url, "\?.*", "")); 
    return (hash); 
} 

回答

1

最好的方式來弄清楚什麼是幕後發生的事情與任何給定的請求的源通過運行varnishlog命令檢查其輸出。

至於粘貼的VCL代碼,這會告訴Varnish忽略用於緩存目的的查詢參數(?a=b&c=d&e=f)。因此下面的網址將全部指向同一個對象緩存:

http://your.site/some_page.html 
http://your.site/some_page.html?a=b&c=d&e=f 
http://your.site/some_page.html?abc=xyz 

假設響應緩存,後端只能看到它看到的第一個這樣的URL請求。所有後續請求(不管查詢參數)將直接從緩存中提供,直到緩存對象到期。

您提到了「url編碼」參數,但除非您具有專門處理%XX編碼八位組的VCL代碼,否則它們應該對Varnish如何處理請求沒有影響。