1VSL(7) VSL(7)
2
3
4
6 VSL - Varnish Shared Memory Logging
7
9 This document describes the format and content of all the Varnish
10 shared memory logging tags. These tags are used by the varnishlog(1),
11 varnishtop(1), etc. logging tools supplied with Varnish.
12
13 VSL tags
14 BackendClose - Backend connection closed
15 Logged when a backend connection is closed.
16
17 The format is:
18
19 %d %s %s [ %s ]
20 | | | |
21 | | | +- Optional reason
22 | | +------ "close" or "recycle"
23 | +--------- Backend display name
24 +------------ Connection file descriptor
25
26 BackendOpen - Backend connection opened
27 Logged when a new backend connection is opened.
28
29 The format is:
30
31 %d %s %s %s %s %s %s
32 | | | | | | |
33 | | | | | | +- "connect" or "reuse"
34 | | | | | +---- Local port
35 | | | | +------- Local address
36 | | | +---------- Remote port
37 | | +------------- Remote address
38 | +---------------- Backend display name
39 +------------------- Connection file descriptor
40
41 Backend_health - Backend health check
42 The result of a backend health probe.
43
44 The format is:
45
46 %s %s %s %s %u %u %u %f %f %s
47 | | | | | | | | | |
48 | | | | | | | | | +- Probe HTTP response / error information
49 | | | | | | | | +---- Average response time
50 | | | | | | | +------- Response time
51 | | | | | | +---------- Probe window size
52 | | | | | +------------- Probe threshold level
53 | | | | +---------------- Number of good probes in window
54 | | | +------------------- Probe window bits
55 | | +---------------------- "healthy" or "sick"
56 | +------------------------- "Back", "Still" or "Went"
57 +---------------------------- Backend name
58
59 Probe window bits are:
60
61 '-': Could not connect
62 '4': Good IPv4
63 '6': Good IPv6
64 'U': Good UNIX
65 'x': Error Xmit
66 'X': Good Xmit
67 'r': Error Recv
68 'R': Good Recv
69 'H': Happy
70
71 When the backend is just created, the window bits for health
72 check slots that haven't run yet appear as '-' like failures to
73 connect.
74
75 Begin - Marks the start of a VXID
76 The first record of a VXID transaction.
77
78 The format is:
79
80 %s %d %s [%u]
81 | | | |
82 | | | +- Task sub-level
83 | | +----- Reason
84 | +-------- Parent vxid
85 +----------- Type ("sess", "req" or "bereq")
86
87 BereqAcct - Backend request accounting
88 Contains byte counters from backend request processing.
89
90 The format is:
91
92 %d %d %d %d %d %d
93 | | | | | |
94 | | | | | +- Total bytes received
95 | | | | +---- Body bytes received
96 | | | +------- Header bytes received
97 | | +---------- Total bytes transmitted
98 | +------------- Body bytes transmitted
99 +---------------- Header bytes transmitted
100
101 BereqHeader - Backend request header
102 HTTP header contents.
103
104 The format is:
105
106 %s: %s
107 | |
108 | +- Header value
109 +----- Header name
110
111 NOTE: HTTP header fields are free form records and not strictly
112 made of 2 fields. Accessing a specific header with the prefix
113 notation helps treating the header value as a single string.
114
115 BereqMethod - Backend request method
116 The HTTP request method used.
117
118 BereqProtocol - Backend request protocol
119 The HTTP protocol version information.
120
121 BereqURL - Backend request URL
122 The HTTP request URL.
123
124 BereqUnset - Backend request unset header
125 HTTP header contents.
126
127 The format is:
128
129 %s: %s
130 | |
131 | +- Header value
132 +----- Header name
133
134 NOTE: HTTP header fields are free form records and not strictly
135 made of 2 fields. Accessing a specific header with the prefix
136 notation helps treating the header value as a single string.
137
138 BerespHeader - Backend response header
139 HTTP header contents.
140
141 The format is:
142
143 %s: %s
144 | |
145 | +- Header value
146 +----- Header name
147
148 NOTE: HTTP header fields are free form records and not strictly
149 made of 2 fields. Accessing a specific header with the prefix
150 notation helps treating the header value as a single string.
151
152 BerespProtocol - Backend response protocol
153 The HTTP protocol version information.
154
155 BerespReason - Backend response reason
156 The HTTP response reason string.
157
158 BerespStatus - Backend response status
159 The HTTP response status code.
160
161 BerespUnset - Backend response unset header
162 HTTP header contents.
163
164 The format is:
165
166 %s: %s
167 | |
168 | +- Header value
169 +----- Header name
170
171 NOTE: HTTP header fields are free form records and not strictly
172 made of 2 fields. Accessing a specific header with the prefix
173 notation helps treating the header value as a single string.
174
175 BogoHeader - Bogus HTTP received
176 Contains the first 20 characters of received HTTP headers we
177 could not make sense of. Applies to both req.http and
178 beresp.http.
179
180 CLI - CLI communication
181 CLI communication between varnishd master and child process.
182
183 Debug - Debug messages
184 Debug messages can normally be ignored, but are sometimes help‐
185 ful during trouble-shooting. Most debug messages must be ex‐
186 plicitly enabled with parameters.
187
188 Debug messages may be added, changed or removed without prior
189 notice and shouldn't be considered stable.
190
191 NB: This log record is masked by default.
192
193 ESI_xmlerror - ESI parser error or warning message
194 An error or warning was generated during parsing of an ESI ob‐
195 ject. The log record describes the problem encountered.
196
197 End - Marks the end of a VXID
198 The last record of a VXID transaction.
199
200 Error - Error messages
201 Error messages are stuff you probably want to know.
202
203 ExpBan - Object evicted due to ban
204 Logs the VXID when an object is banned.
205
206 ExpKill - Object expiry event
207 Logs events related to object expiry. The events are:
208
209 EXP_Rearm
210 Logged when the expiry time of an object changes.
211
212 EXP_Inbox
213 Logged when the expiry thread picks an object from the
214 inbox for processing.
215
216 EXP_Kill
217 Logged when the expiry thread kills an object from the
218 inbox.
219
220 EXP_When
221 Logged when the expiry thread moves an object on the bin‐
222 heap.
223
224 EXP_Expired
225 Logged when the expiry thread expires an object.
226
227 LRU_Cand
228 Logged when an object is evaluated for LRU force expiry.
229
230 LRU Logged when an object is force expired due to LRU.
231
232 LRU_Fail
233 Logged when no suitable candidate object is found for LRU
234 force expiry.
235
236 The format is:
237
238 EXP_Rearm p=%p E=%f e=%f f=0x%x
239 EXP_Inbox p=%p e=%f f=0x%x
240 EXP_Kill p=%p e=%f f=0x%x
241 EXP_When p=%p e=%f f=0x%x
242 EXP_Expired x=%u t=%f
243 LRU_Cand p=%p f=0x%x r=%d
244 LRU x=%u
245 LRU_Fail
246
247 Legend:
248 p=%p Objcore pointer
249 t=%f Remaining TTL (s)
250 e=%f Expiry time (unix epoch)
251 E=%f Old expiry time (unix epoch)
252 f=0x%x Objcore flags
253 r=%d Objcore refcount
254 x=%u Object VXID
255
256 FetchError - Error while fetching object
257 Logs the error message of a failed fetch operation.
258
259 Error messages should be self-explanatory, yet the http connec‐
260 tion (HTC) class of errors is reported with these symbols:
261
262 • junk (-5): Received unexpected data
263
264 • close (-4): Connection closed
265
266 • timeout (-3): Timed out
267
268 • overflow (-2): Buffer/workspace too small
269
270 • eof (-1): Unexpected end of input
271
272 • empty (0): Empty response
273
274 • more (1): More data required
275
276 • complete (2): Data complete (no error)
277
278 • idle (3): Connection was closed while idle
279
280 Notice that some HTC errors are never emitted.
281
282 Fetch_Body - Body fetched from backend
283 Ready to fetch body from backend.
284
285 The format is:
286
287 %d %s %s
288 | | |
289 | | +---- 'stream' or '-'
290 | +------- Text description of body fetch mode
291 +---------- Body fetch mode
292
293 Filters - Body filters
294 List of filters applied to the body
295
296 Gzip - G(un)zip performed on object
297 A Gzip record is emitted for each instance of gzip or gunzip
298 work performed. Worst case, an ESI transaction stored in gzip'ed
299 objects but delivered gunziped, will run into many of these.
300
301 The format is:
302
303 %c %c %c %d %d %d %d %d
304 | | | | | | | |
305 | | | | | | | +- Bit length of compressed data
306 | | | | | | +---- Bit location of 'last' bit
307 | | | | | +------- Bit location of first deflate block
308 | | | | +---------- Bytes output
309 | | | +------------- Bytes input
310 | | +---------------- 'E': ESI, '-': Plain object
311 | +------------------- 'F': Fetch, 'D': Deliver
312 +---------------------- 'G': Gzip, 'U': Gunzip, 'u': Gunzip-test
313
314 Examples:
315
316 U F E 182 159 80 80 1392
317 G F E 159 173 80 1304 1314
318
319 H2RxBody - Received HTTP2 frame body
320 Binary data
321
322 H2RxHdr - Received HTTP2 frame header
323 Binary data
324
325 H2TxBody - Transmitted HTTP2 frame body
326 Binary data
327
328 H2TxHdr - Transmitted HTTP2 frame header
329 Binary data
330
331 Hash - Value added to hash
332 This value was added to the object lookup hash.
333
334 NB: This log record is masked by default.
335
336 Hit - Hit object in cache
337 Object looked up in cache.
338
339 The format is:
340
341 %u %f %f %f [%u [%u]]
342 | | | | | |
343 | | | | | +- Content length
344 | | | | +----- Fetched so far
345 | | | +--------- Keep period
346 | | +------------ Grace period
347 | +--------------- Remaining TTL
348 +------------------ VXID of the object
349
350 HitMiss - Hit for miss object in cache.
351 Hit-for-miss object looked up in cache.
352
353 The format is:
354
355 %u %f
356 | |
357 | +- Remaining TTL
358 +---- VXID of the object
359
360 HitPass - Hit for pass object in cache.
361 Hit-for-pass object looked up in cache.
362
363 The format is:
364
365 %u %f
366 | |
367 | +- Remaining TTL
368 +---- VXID of the object
369
370 HttpGarbage - Unparseable HTTP request
371 Logs the content of unparseable HTTP requests.
372
373 Length - Size of object body
374 Logs the size of a fetch object body.
375
376 Link - Links to a child VXID
377 Links this VXID to any child VXID it initiates.
378
379 The format is:
380
381 %s %d %s [%u]
382 | | | |
383 | | | +- Child task sub-level
384 | | +----- Reason
385 | +-------- Child vxid
386 +----------- Child type ("sess", "req" or "bereq")
387
388 LostHeader - Failed attempt to set HTTP header
389 Logs the header name of a failed HTTP header operation due to
390 resource exhaustion or configured limits.
391
392 Notice - Informational messages about request handling
393 Informational log messages on events occurred during request
394 handling.
395
396 The format is:
397
398 %s: %s
399 | |
400 | +- Short description of the notice message
401 +----- Manual page containing the detailed description
402
403 See the NOTICE MESSAGES section below or the individual VMOD
404 manual pages for detailed information of notice messages.
405
406 ObjHeader - Object header
407 HTTP header contents.
408
409 The format is:
410
411 %s: %s
412 | |
413 | +- Header value
414 +----- Header name
415
416 NOTE: HTTP header fields are free form records and not strictly
417 made of 2 fields. Accessing a specific header with the prefix
418 notation helps treating the header value as a single string.
419
420 ObjProtocol - Object protocol
421 The HTTP protocol version information.
422
423 ObjReason - Object reason
424 The HTTP response reason string.
425
426 ObjStatus - Object status
427 The HTTP response status code.
428
429 ObjUnset - Object unset header
430 HTTP header contents.
431
432 The format is:
433
434 %s: %s
435 | |
436 | +- Header value
437 +----- Header name
438
439 NOTE: HTTP header fields are free form records and not strictly
440 made of 2 fields. Accessing a specific header with the prefix
441 notation helps treating the header value as a single string.
442
443 PipeAcct - Pipe byte counts
444 Contains byte counters for pipe sessions.
445
446 The format is:
447
448 %d %d %d %d
449 | | | |
450 | | | +------- Piped bytes to client
451 | | +---------- Piped bytes from client
452 | +------------- Backend request headers
453 +---------------- Client request headers
454
455 Proxy - PROXY protocol information
456 PROXY protocol information.
457
458 The format is:
459
460 %d %s %d %s %d
461 | | | | |
462 | | | | +- server port
463 | | | +---- server ip
464 | | +------- client port
465 | +---------- client ip
466 +------------- PROXY protocol version
467
468 All fields are "local" for PROXY local connections (command 0x0)
469
470 ProxyGarbage - Unparseable PROXY request
471 A PROXY protocol header was unparseable.
472
473 ReqAcct - Request handling byte counts
474 Contains byte counts for the request handling. The body bytes
475 count includes transmission overhead (ie: chunked encoding).
476 ESI sub-requests show the body bytes this ESI fragment including
477 any subfragments contributed to the top level request. The for‐
478 mat is:
479
480 %d %d %d %d %d %d
481 | | | | | |
482 | | | | | +- Total bytes transmitted
483 | | | | +---- Body bytes transmitted
484 | | | +------- Header bytes transmitted
485 | | +---------- Total bytes received
486 | +------------- Body bytes received
487 +---------------- Header bytes received
488
489 ReqHeader - Client request header
490 HTTP header contents.
491
492 The format is:
493
494 %s: %s
495 | |
496 | +- Header value
497 +----- Header name
498
499 NOTE: HTTP header fields are free form records and not strictly
500 made of 2 fields. Accessing a specific header with the prefix
501 notation helps treating the header value as a single string.
502
503 ReqMethod - Client request method
504 The HTTP request method used.
505
506 ReqProtocol - Client request protocol
507 The HTTP protocol version information.
508
509 ReqStart - Client request start
510 Start of request processing. Logs the client address, port num‐
511 ber and listener endpoint name (from the -a command-line argu‐
512 ment).
513
514 The format is:
515
516 %s %s %s
517 | | |
518 | | +-- Listener name (from -a)
519 | +----- Client Port number (0 for Unix domain sockets)
520 +-------- Client IP4/6 address (0.0.0.0 for UDS)
521
522 ReqURL - Client request URL
523 The HTTP request URL.
524
525 ReqUnset - Client request unset header
526 HTTP header contents.
527
528 The format is:
529
530 %s: %s
531 | |
532 | +- Header value
533 +----- Header name
534
535 NOTE: HTTP header fields are free form records and not strictly
536 made of 2 fields. Accessing a specific header with the prefix
537 notation helps treating the header value as a single string.
538
539 RespHeader - Client response header
540 HTTP header contents.
541
542 The format is:
543
544 %s: %s
545 | |
546 | +- Header value
547 +----- Header name
548
549 NOTE: HTTP header fields are free form records and not strictly
550 made of 2 fields. Accessing a specific header with the prefix
551 notation helps treating the header value as a single string.
552
553 RespProtocol - Client response protocol
554 The HTTP protocol version information.
555
556 RespReason - Client response reason
557 The HTTP response reason string.
558
559 RespStatus - Client response status
560 The HTTP response status code.
561
562 RespUnset - Client response unset header
563 HTTP header contents.
564
565 The format is:
566
567 %s: %s
568 | |
569 | +- Header value
570 +----- Header name
571
572 NOTE: HTTP header fields are free form records and not strictly
573 made of 2 fields. Accessing a specific header with the prefix
574 notation helps treating the header value as a single string.
575
576 SessClose - Client connection closed
577 SessClose is the last record for any client connection.
578
579 The format is:
580
581 %s %f
582 | |
583 | +- How long the session was open
584 +---- Why the connection closed
585
586 SessError - Client connection accept failed
587 Accepting a client connection has failed.
588
589 The format is:
590
591 %s %s %s %d %d %s
592 | | | | | |
593 | | | | | +- Detailed error message
594 | | | | +---- Error Number (errno) from accept(2)
595 | | | +------- File descriptor number
596 | | +---------- Local TCP port / 0 for UDS
597 | +------------- Local IPv4/6 address / 0.0.0.0 for UDS
598 +---------------- Socket name (from -a argument)
599
600 SessOpen - Client connection opened
601 The first record for a client connection, with the socket-end‐
602 points of the connection.
603
604 The format is:
605
606 %s %d %s %s %s %f %d
607 | | | | | | |
608 | | | | | | +- File descriptor number
609 | | | | | +---- Session start time (unix epoch)
610 | | | | +------- Local TCP port / 0 for UDS
611 | | | +---------- Local IPv4/6 address / 0.0.0.0 for UDS
612 | | +------------- Socket name (from -a argument)
613 | +---------------- Remote TCP port / 0 for UDS
614 +------------------- Remote IPv4/6 address / 0.0.0.0 for UDS
615
616 Storage - Where object is stored
617 Type and name of the storage backend the object is stored in.
618
619 The format is:
620
621 %s %s
622 | |
623 | +- Name of storage backend
624 +---- Type ("malloc", "file", "persistent" etc.)
625
626 TTL - TTL set on object
627 A TTL record is emitted whenever the ttl, grace or keep values
628 for an object is set as well as whether the object is cacheable
629 or not.
630
631 The format is:
632
633 %s %d %d %d %d [ %d %d %u %u ] %s
634 | | | | | | | | | |
635 | | | | | | | | | +- "cacheable" or "uncacheable"
636 | | | | | | | | +------ Max-Age from Cache-Control header
637 | | | | | | | +--------- Expires header
638 | | | | | | +------------ Date header
639 | | | | | +--------------- Age (incl Age: header value)
640 | | | | +-------------------- Reference time for TTL
641 | | | +----------------------- Keep
642 | | +-------------------------- Grace
643 | +----------------------------- TTL
644 +-------------------------------- "RFC", "VCL" or "HFP"
645
646 The four optional fields are only present in "RFC" headers.
647
648 Examples:
649
650 RFC 60 10 -1 1312966109 1312966109 1312966109 0 60 cacheable
651 VCL 120 10 0 1312966111 uncacheable
652 HFP 2 0 0 1312966113 uncacheable
653
654 Timestamp - Timing information
655 Contains timing information for the Varnish worker threads.
656
657 Time stamps are issued by Varnish on certain events, and show
658 the absolute time of the event, the time spent since the start
659 of the work unit, and the time spent since the last timestamp
660 was logged. See the TIMESTAMPS section below for information
661 about the individual time stamps.
662
663 The format is:
664
665 %s: %f %f %f
666 | | | |
667 | | | +- Time since last timestamp
668 | | +---- Time since start of work unit
669 | +------- Absolute time of event
670 +----------- Event label
671
672 VCL_Error - VCL execution error message
673 Logs error messages generated during VCL execution.
674
675 VCL_Log - Log statement from VCL
676 User generated log messages insert from VCL through std.log()
677
678 VCL_acl - VCL ACL check results
679 ACLs with the +log flag emits this record with the result.
680
681 The format is:
682
683 %s %s [%s [fixed: %s]]
684 | | | |
685 | | | +- Fixed entry (see acl +pedantic flag)
686 | | +------------ Matching entry (only for MATCH)
687 | +---------------- Name of the ACL
688 +-------------------- MATCH or NO_MATCH
689
690 MATCH denotes an ACL match NO_MATCH denotes that a checked ACL
691 has not matched
692
693 VCL_call - VCL method called
694 Logs the VCL method name when a VCL method is called.
695
696 VCL_return - VCL method return value
697 Logs the VCL method terminating statement.
698
699 VCL_trace - VCL trace data
700 Logs VCL execution trace data.
701
702 The format is:
703
704 %s %u %u.%u.%u
705 | | | | |
706 | | | | +- VCL program line position
707 | | | +---- VCL program line number
708 | | +------- VCL program source index
709 | +---------- VCL trace point index
710 +------------- VCL configname
711
712 NB: This log record is masked by default.
713
714 VCL_use - VCL in use
715 Records the name of the VCL being used.
716
717 The format is:
718
719 %s [ %s %s ]
720 | | |
721 | | +- Name of label used to find it
722 | +---- "via"
723 +--------- Name of VCL put in use
724
725 VSL - VSL API warnings and error message
726 Warnings and error messages generated by the VSL API while read‐
727 ing the shared memory log.
728
729 VdpAcct - Deliver filter accounting
730 Contains name of VDP and statistics.
731
732 The format is:
733
734 %s %d %d
735 | | |
736 | | +- Total bytes produced
737 | +---- Number of calls made
738 +------- Name of filter
739
740 NB: This log record is masked by default.
741
742 VfpAcct - Fetch filter accounting
743 Contains name of VFP and statistics.
744
745 The format is:
746
747 %s %d %d
748 | | |
749 | | +- Total bytes produced
750 | +---- Number of calls made
751 +------- Name of filter
752
753 NB: This log record is masked by default.
754
755 Witness - Lock order witness records
756 Diagnostic recording of locking order.
757
758 WorkThread - Logs thread start/stop events
759 Logs worker thread creation and termination events.
760
761 The format is:
762
763 %p %s
764 | |
765 | +- [start|end]
766 +---- Worker struct pointer
767
768 NB: This log record is masked by default.
769
771 Timestamps are inserted in the log on completing certain events during
772 the worker thread's task handling. The timestamps has a label showing
773 which event was completed. The reported fields show the absolute time
774 of the event, the time spent since the start of the task and the time
775 spent since the last timestamp was logged.
776
777 The timestamps logged automatically by Varnish are inserted after com‐
778 pleting events that are expected to have delays (e.g. network IO or
779 spending time on a waitinglist). Timestamps can also be inserted from
780 VCL using the std.timestamp() function. If one is doing time consuming
781 tasks in the VCL configuration, it's a good idea to log a timestamp af‐
782 ter completing that task. This keeps the timing information in subse‐
783 quent timestamps from including the time spent on the VCL event.
784
785 Request handling timestamps
786 Start The start of request processing (first byte received or
787 restart).
788
789 Req Complete client request received.
790
791 ReqBody
792 Client request body processed (discarded, cached or passed to
793 the backend).
794
795 Waitinglist
796 Came off waitinglist.
797
798 Fetch Fetch processing finished (completely fetched or ready for
799 streaming).
800
801 Process
802 Processing finished, ready to deliver the client response.
803
804 Resp Delivery of response to the client finished.
805
806 Restart
807 Client request is being restarted.
808
809 Pipe handling timestamps
810 The following timestamps are client timestamps specific to pipe trans‐
811 actions:
812
813 Pipe Opened a pipe to the backend and forwarded the request.
814
815 PipeSess
816 The pipe session has finished.
817
818 The following timestamps change meaning in a pipe transaction:
819
820 Process
821 Processing finished, ready to begin the pipe delivery.
822
823 Backend fetch timestamps
824 Start Start of the backend fetch processing.
825
826 Fetch Came off vcl_backend_fetch ready to send the backend request.
827
828 Connected
829 Successfully established a backend connection, or selected a re‐
830 cycled connection from the pool.
831
832 Bereq Backend request sent.
833
834 Beresp Backend response headers received.
835
836 Process
837 Processing finished, ready to fetch the response body.
838
839 BerespBody
840 Backend response body received.
841
842 Retry Backend request is being retried.
843
844 Error Backend request failed to vcl_backend_error.
845
847 Notice messages contain informational messages about the handling of a
848 request. These can be exceptional circumstances encountered that causes
849 deviation from the normal handling. The messages are prefixed with vsl:
850 for core Varnish generated messages, and VMOD authors are encouraged to
851 use vmod_<name>: for their own notice messages. This matches the name
852 of the manual page where detailed descriptions of notice messages are
853 expected.
854
855 The core messages are described below.
856
857 Conditional fetch wait for streaming object
858 The backend answered 304 Not Modified on a conditional fetch using an
859 object that has not yet been fully fetched as the stale template ob‐
860 ject. This can only happen when the TTL of the object is less than the
861 time it takes to fetch it. The fetch is halted until the stale object
862 is fully fetched, upon which the new object is created as normal. While
863 waiting, any grace time on the stale object will be in effect.
864
865 High number of variants
866 Objects are primarily looked up from an index using the hash key com‐
867 puted from the hash_data() VCL function. When variants are involved,
868 that is to say when a backend response was stored with a Vary header, a
869 secondary lookup is performed but it is not indexed. As the number of
870 variants for a given key increases, this can slow cache lookups down,
871 and since this happens under a lock, this can greatly increase lock
872 contention, even more so for frequently requested objects. Variants
873 should therefore be used sparingly on cacheable responses, but since
874 they can originate from either VCL or origin servers, this notice
875 should help identify problematic resources.
876
878 This document was initially written by Poul-Henning Kamp, and later up‐
879 dated by Martin Blix Grydeland.
880
882 • varnishhist(1)
883
884 • varnishlog(1)
885
886 • varnishncsa(1)
887
888 • varnishtop(1)
889
891 This document is licensed under the same licence as Varnish itself. See
892 LICENCE for details.
893
894 • Copyright (c) 2006 Verdens Gang AS
895
896 • Copyright (c) 2006-2015 Varnish Software AS
897
898
899
900
901 VSL(7)