這種情況是我想添加兩個具有相同名稱的標題,但處理來自後端服務器的響應時不同的值。更確切地說,在某些情況下,我希望將另一個Set-Cookie頭附加到(不設置)另一個來自我的Apache服務器的原始響應,以最終將兩個Cookie返回給客戶端。看起來「設置」操作覆蓋了所有出現的相同標題。將值附加到beresp中的set-cookie標頭。在光油2.1
這可能嗎?
這種情況是我想添加兩個具有相同名稱的標題,但處理來自後端服務器的響應時不同的值。更確切地說,在某些情況下,我希望將另一個Set-Cookie頭附加到(不設置)另一個來自我的Apache服務器的原始響應,以最終將兩個Cookie返回給客戶端。看起來「設置」操作覆蓋了所有出現的相同標題。將值附加到beresp中的set-cookie標頭。在光油2.1
這可能嗎?
您可以使用regsub()或regsuball()來處理HTTP標頭。
https://www.varnish-cache.org/docs/2.1/reference/vcl.html
編輯: 了我的頭頂部,它應該類似於以下
set beresp.http.Set-Cookie = regsub(beresp.http.Set-Cookie, "^(.+)$", "\1; secure; httponly");
VCL沒有明確的字符串連接運算符。但是,可以通過將值設置爲變量來連接值:
set req.http._message = "one string", " a second string"
然後可以將其分配給其他值或使用。
你的具體情況,你應該能夠做這樣的事情:
if (some-condition) {
set beresp.http.Set-Cookie = beresp.http.Set-Cookie, "my second cookie";
}
你能提供來自Apache的一個餅乾頭的請求的例子嗎? – nouney 2014-11-21 23:37:01