0
我有一個簡單的VCL文件,如下所示:當我嘗試使用std.syslog時,Varnish基本配置文件會拋出「VCL編譯失敗」。爲什麼?
vcl 4.0;
import std;
backend default {
.host = "127.0.0.1";
.port = "3333";
}
sub vcl_recv {
std.log("req.host: "+req.host);
}
sub vcl_backend_response {
}
sub vcl_deliver {
}
當我嘗試用這個配置在我的Mac開始varnishd
,我得到以下錯誤:
Error:
Message from VCC-compiler:
Symbol not found: 'req.host' (expected type STRING):
('/Users/jononomo/dev/my_project/deploy/testing.vcl' Line 30 Pos 26)
std.log("req.host: "+req.host);
-------------------------########--
('/Users/jononomo/dev/my_project/deploy/testing.vcl' Line 30 Pos 5) -- ('/Users/jononomo/dev/my_project/deploy/testing.vcl' Line 30 Pos 25)
std.log("req.host: "+req.host);
----#####################----------
Running VCC-compiler failed, exited with 2
VCL compilation failed
我已經嘗試了不同的變化這一行:
std.log("req.host: "+req.host);
如:
std.log(req.host: '+req.host);
std.log("req.host: ",req.host);
std.log('req.host: ',req.host);
std.log('hello');
但他們都沒有工作。
如何從我的VCL文件進行簡單日誌記錄?
謝謝。
更新:std.log("hello")
似乎編譯...但是,我需要記錄請求對象的信息和req
,request
等不存在。
謝謝 - 和正確的!但是,我怎樣才能更普遍地檢查'req'對象呢? – jononomo
無法轉儲''''req'''對象及其所有內容,但文檔[here](http://www.varnish-cache.org/docs/4.0/reference/vcl.html#req )包含有關可用變量的一些見解。所以基本上'''req.http.arbitary-header-name'''允許你在請求中檢查客戶端提供的任何HTTP頭。 –