README
varnish vcl generator
Have a try http://aslant.site/varnish-generator/!
Installation
$ npm install varnish-generator -g
RUN
varnish-generator -c ./examples/config.json -t ./examples/default.vcl
varnishConfig
name
The varnish instance's namevarnish
The varnish version, support'4'
and'5'
, default is'5'
stale
The seconds of stale, default is 3version
The vcl version , default isnew Date().toISOString()
timeout
The timeout setting for all directorsconnect
The connect timeout, default is2
firstByte
The firstByte timeout, default is5
betweenBytes
The betweenBytes timeout, default is2
urlPassList
The url match(RegExp) the setting will be passhisForPassTTL
The hit for pass ttlhash
The hash settingdirectors
Director list, Arrayname
The director's nameprefix
The prefix of the url for the director, optionalhost
The host for the director, optionaltype
The algorithm of load balance, it can be 'fallback', 'hash', 'random', 'round_robin'. The default is 'round_robin'timeout
The director timeout setting, if not set , it will be use the global timeout settingconnect
The connect timeoutfirstByte
The firstByte timeoutbetweenBytes
The betweenBytes timeout
backends
The backend list, Arrayip
The ip of backendport
The port of backendweight
The weight of backend, it's used forrandom
andhash
{
"name": "varnish-test",
"stale": 2,
"varnish": "4",
"timeout": {
"connect": 1,
"firstByte": 2,
"betweenBytes": 2
},
"urlPassList": [
"cache-control=no-cache"
],
"hisForPassTTL": 300,
"hash": [
"req.url",
[
"req.http.host",
"server.ip"
]
],
"directors": [
{
"name": "timtam",
"prefix": "/timtam",
"type": "fallback",
"timeout": {
"connect": 1,
"firstByte": 1,
"betweenBytes": 1
},
"backends": [
{
"ip": "127.0.0.1",
"port": 3000
},
{
"ip": "127.0.0.1",
"port": 3010
}
]
},
{
"name": "dcharts",
"prefix": "/dcharts",
"host": "dcharts.com",
"type": "hash",
"hashKey": "req.http.cookie",
"backends": [
{
"ip": "127.0.0.1",
"port": 3020,
"weight": 5
},
{
"ip": "127.0.0.1",
"port": 3030,
"weight": 3
}
]
},
{
"name": "vicanso",
"host": "vicanso.com",
"type": "random",
"backends": [
{
"ip": "127.0.0.1",
"port": 3040,
"weight": 10
},
{
"ip": "127.0.0.1",
"port": 3050,
"weight": 5
}
]
},
{
"name": "aslant",
"backends": [
{
"ip": "127.0.0.1",
"port": 8000
}
]
}
]
}
How to use varnish better?
Please read my suggestion about using varnish.
How the cache of varnish is created?
How to run
varnishd -f ./default.vcl -p default_ttl=0 -p default_grace=1800 -p default_keep=10 -a :8001 -F
Using docker
docker pull vicanso/varnish
docker run -v $HOME/default.vcl:/etc/varnish/default.vcl -p 8001:80 -d --restart=always vicanso/varnish
License
MIT