1VARNISHD(1) VARNISHD(1)
2
3
4
6 varnishd - HTTP accelerator daemon
7
9 varnishd [-a
10 [name=][address][:port][,PROTO][,user=<user>][,group=<group>][,mode=<mode>]]
11 [-b [host[:port]|path]] [-C] [-d] [-F] [-f config] [-h type[,options]]
12 [-I clifile] [-i identity] [-j jail[,jailoptions]] [-l vsl] [-M
13 address:port] [-n name] [-P file] [-p param=value] [-r
14 param[,param...]] [-S secret-file] [-s [name=]kind[,options]] [-T
15 address[:port]] [-t TTL] [-V] [-W waiter]
16
17 varnishd [-x parameter|vsl|cli|builtin|optstring]
18
19 varnishd [-?]
20
22 The varnishd daemon accepts HTTP requests from clients, passes them on
23 to a backend server and caches the returned documents to better satisfy
24 future requests for the same document.
25
27 Basic options
28 -a
29 <[name=][address][:port][,PROTO][,user=<user>][,group=<group>][,mode=<mode>]>
30 Listen for client requests on the specified address and port. The
31 address can be a host name ("localhost"), an IPv4 dotted-quad
32 ("127.0.0.1"), an IPv6 address enclosed in square brackets
33 ("[::1]"), or a path beginning with a '/' for a Unix domain socket
34 ("/path/to/listen.sock"). If address is not specified, varnishd will
35 listen on all available IPv4 and IPv6 interfaces. If port is not
36 specified, port 80 (http) is used. At least one of address or port
37 is required.
38
39 If a Unix domain socket is specified as the listen address, then the
40 user, group and mode sub-arguments may be used to specify the per‐
41 missions of the socket file -- use names for user and group, and a
42 3-digit octal value for mode. These sub-arguments are not permitted
43 if an IP address is specified. When Unix domain socket listeners are
44 in use, all VCL configurations must have version >= 4.1.
45
46 Name is referenced in logs. If name is not specified, "a0", "a1",
47 etc. is used. An additional protocol type can be set for the listen‐
48 ing socket with PROTO. Valid protocol types are: HTTP/1 (default),
49 and PROXY.
50
51 Multiple listening addresses can be specified by using different -a
52 arguments.
53
54 -b <[host[:port]|path]>
55 Use the specified host as backend server. If port is not speci‐
56 fied, the default is 8080.
57
58 If the value of -b begins with /, it is interpreted as the abso‐
59 lute path of a Unix domain socket to which Varnish connects. In
60 that case, the value of -b must satisfy the conditions required
61 for the .path field of a backend declaration, see vcl(7). Back‐
62 ends with Unix socket addresses may only be used with VCL ver‐
63 sions >= 4.1.
64
65 -b can be used only once, and not together with f.
66
67 -f config
68 Use the specified VCL configuration file instead of the builtin
69 default. See vcl(7) for details on VCL syntax.
70
71 If a single -f option is used, then the VCL instance loaded from
72 the file is named "boot" and immediately becomes active. If more
73 than one -f option is used, the VCL instances are named "boot0",
74 "boot1" and so forth, in the order corresponding to the -f argu‐
75 ments, and the last one is named "boot", which becomes active.
76
77 Either -b or one or more -f options must be specified, but not
78 both, and they cannot both be left out, unless -d is used to
79 start varnishd in debugging mode. If the empty string is speci‐
80 fied as the sole -f option, then varnishd starts without start‐
81 ing the worker process, and the management process will accept
82 CLI commands. You can also combine an empty -f option with an
83 initialization script (-I option) and the child process will be
84 started if there is an active VCL at the end of the initializa‐
85 tion.
86
87 When used with a relative file name, config is searched in the
88 vcl_path. It is possible to set this path prior to using -f
89 options with a -p option. During startup, varnishd doesn't com‐
90 plain about unsafe VCL paths: unlike the varnish-cli(7) that
91 could later be accessed remotely, starting varnishd requires
92 local privileges.
93
94 -n name
95 Specify the name for this instance. This name is used to con‐
96 struct the name of the directory in which varnishd keeps tempo‐
97 rary files and persistent state. If the specified name begins
98 with a forward slash, it is interpreted as the absolute path to
99 the directory.
100
101 Documentation options
102 For these options, varnishd prints information to standard output and
103 exits. When a -x option is used, it must be the only option (it outputs
104 documentation in reStructuredText, aka RST).
105
106 -?
107 Print the usage message.
108
109 -x parameter
110 Print documentation of the runtime parameters (-p options), see
111 List of Parameters.
112
113 -x vsl Print documentation of the tags used in the Varnish shared mem‐
114 ory log, see vsl(7).
115
116 -x cli Print documentation of the command line interface, see var‐
117 nish-cli(7).
118
119 -x builtin
120 Print the contents of the default VCL program builtin.vcl.
121
122 -x optstring
123 Print the optstring parameter to getopt(3) to help writing wrap‐
124 per scripts.
125
126 Operations options
127 -F Do not fork, run in the foreground. Only one of -F or -d can be
128 specified, and -F cannot be used together with -C.
129
130 -T <address[:port]>
131 Offer a management interface on the specified address and port.
132 See varnish-cli(7) for documentation of the management commands.
133 To disable the management interface use none.
134
135 -M <address:port>
136 Connect to this port and offer the command line interface.
137 Think of it as a reverse shell. When running with -M and there
138 is no backend defined the child process (the cache) will not
139 start initially.
140
141 -P file
142 Write the PID of the process to the specified file.
143
144 -i identity
145 Specify the identity of the Varnish server. This can be accessed
146 using server.identity from VCL and with VSM_Name() from utili‐
147 ties. If not specified the output of gethostname(3) is used.
148
149 -I clifile
150 Execute the management commands in the file given as clifile
151 before the the worker process starts, see CLI Command File.
152
153 Tuning options
154 -t TTL Specifies the default time to live (TTL) for cached objects.
155 This is a shortcut for specifying the default_ttl run-time
156 parameter.
157
158 -p <param=value>
159 Set the parameter specified by param to the specified value, see
160 List of Parameters for details. This option can be used multiple
161 times to specify multiple parameters.
162
163 -s <[name=]type[,options]>
164 Use the specified storage backend. See Storage Backend section.
165
166 This option can be used multiple times to specify multiple stor‐
167 age files. Name is referenced in logs, VCL, statistics, etc. If
168 name is not specified, "s0", "s1" and so forth is used.
169
170 -l <vsl>
171 Specifies size of the space for the VSL records. Scaling suf‐
172 fixes like 'K' and 'M' can be used up to (G)igabytes. Default
173 is 80 Megabytes.
174
175 Security options
176 -r <param[,param...]>
177 Make the listed parameters read only. This gives the system
178 administrator a way to limit what the Varnish CLI can do. Con‐
179 sider making parameters such as cc_command, vcc_allow_inline_c
180 and vmod_path read only as these can potentially be used to
181 escalate privileges from the CLI.
182
183 -S secret-file
184 Path to a file containing a secret used for authorizing access
185 to the management port. To disable authentication use none.
186
187 If this argument is not provided, a secret drawn from the system
188 PRNG will be written to a file called _.secret in the working
189 directory (see opt_n) with default ownership and permissions of
190 the user having started varnish.
191
192 Thus, users wishing to delegate control over varnish will proba‐
193 bly want to create a custom secret file with appropriate permis‐
194 sions (ie. readable by a unix group to delegate control to).
195
196 -j <jail[,jailoptions]>
197 Specify the jailing mechanism to use. See Jail section.
198
199 Advanced, development and debugging options
200 -d Enables debugging mode: The parent process runs in the fore‐
201 ground with a CLI connection on stdin/stdout, and the child
202 process must be started explicitly with a CLI command. Terminat‐
203 ing the parent process will also terminate the child.
204
205 Only one of -d or -F can be specified, and -d cannot be used
206 together with -C.
207
208 -C Print VCL code compiled to C language and exit. Specify the VCL
209 file to compile with the -f option. Either -f or -b must be used
210 with -C, and -C cannot be used with -F or -d.
211
212 -V Display the version number and exit. This must be the only
213 option.
214
215 -h <type[,options]>
216 Specifies the hash algorithm. See Hash Algorithm section for a
217 list of supported algorithms.
218
219 -W waiter
220 Specifies the waiter type to use.
221
222 Hash Algorithm
223 The following hash algorithms are available:
224
225 -h critbit
226 self-scaling tree structure. The default hash algorithm in Var‐
227 nish Cache 2.1 and onwards. In comparison to a more traditional
228 B tree the critbit tree is almost completely lockless. Do not
229 change this unless you are certain what you're doing.
230
231 -h simple_list
232 A simple doubly-linked list. Not recommended for production
233 use.
234
235 -h <classic[,buckets]>
236 A standard hash table. The hash key is the CRC32 of the object's
237 URL modulo the size of the hash table. Each table entry points
238 to a list of elements which share the same hash key. The buckets
239 parameter specifies the number of entries in the hash table.
240 The default is 16383.
241
242 Storage Backend
243 The following storage types are available:
244
245 -s <default[,size]>
246 The default storage type resolves to umem where available and
247 malloc otherwise.
248
249 -s <malloc[,size]>
250 malloc is a memory based backend.
251
252 -s <umem[,size]>
253 umem is a storage backend which is more efficient than malloc on
254 platforms where it is available.
255
256 See the section on umem in chapter Storage backends of The Var‐
257 nish Users Guide for details.
258
259 -s <file,path[,size[,granularity[,advice]]]>
260 The file backend stores data in a file on disk. The file will be
261 accessed using mmap. Note that this storage provide no cache
262 persistence.
263
264 The path is mandatory. If path points to a directory, a tempo‐
265 rary file will be created in that directory and immediately
266 unlinked. If path points to a non-existing file, the file will
267 be created.
268
269 If size is omitted, and path points to an existing file with a
270 size greater than zero, the size of that file will be used. If
271 not, an error is reported.
272
273 Granularity sets the allocation block size. Defaults to the sys‐
274 tem page size or the filesystem block size, whichever is larger.
275
276 Advice tells the kernel how varnishd expects to use this mapped
277 region so that the kernel can choose the appropriate read-ahead
278 and caching techniques. Possible values are normal, random and
279 sequential, corresponding to MADV_NORMAL, MADV_RANDOM and
280 MADV_SEQUENTIAL madvise() advice argument, respectively.
281 Defaults to random.
282
283 -s <persistent,path,size>
284 Persistent storage. Varnish will store objects in a file in a
285 manner that will secure the survival of most of the objects in
286 the event of a planned or unplanned shutdown of Varnish. The
287 persistent storage backend has multiple issues with it and will
288 likely be removed from a future version of Varnish.
289
290 You can also prefix the type with NAME= to explicitly name a storage:
291
292 -s myStorage=malloc,5G
293
294 This allows to address it more easily in VCL:
295
296 set beresp.storage = storage.myStorage;
297
298 If the name is omitted, Varnish will name storages sN, starting with s0
299 and incrementing N for every new storage.
300
301 Jail
302 Varnish jails are a generalization over various platform specific meth‐
303 ods to reduce the privileges of varnish processes. They may have spe‐
304 cific options. Available jails are:
305
306 -j solaris
307 Reduce privileges(5) for varnishd and sub-process to the mini‐
308 mally required set. Only available on platforms which have the
309 setppriv(2) call.
310
311 -j <unix[,user=`user`][,ccgroup=`group`][,workuser=`user`]>
312 Default on all other platforms when varnishd is started with an
313 effective uid of 0 ("as root").
314
315 With the unix jail mechanism activated, varnish will switch to
316 an alternative user for subprocesses and change the effective
317 uid of the master process whenever possible.
318
319 The optional user argument specifies which alternative user to
320 use. It defaults to varnish.
321
322 The optional ccgroup argument specifies a group to add to var‐
323 nish subprocesses requiring access to a c-compiler. There is no
324 default.
325
326 The optional workuser argument specifies an alternative user to
327 use for the worker process. It defaults to vcache.
328
329 -j none
330 last resort jail choice: With jail mechanism none, varnish will
331 run all processes with the privileges it was started with.
332
333 Management Interface
334 If the -T option was specified, varnishd will offer a command-line man‐
335 agement interface on the specified address and port. The recommended
336 way of connecting to the command-line management interface is through
337 varnishadm(1).
338
339 The commands available are documented in varnish-cli(7).
340
341 CLI Command File
342 The -I option makes it possible to run arbitrary management commands
343 when varnishd is launched, before the worker process is started. In
344 particular, this is the way to load configurations, apply labels to
345 them, and make a VCL instance active that uses those labels on startup:
346
347 vcl.load panic /etc/varnish_panic.vcl
348 vcl.load siteA0 /etc/varnish_siteA.vcl
349 vcl.load siteB0 /etc/varnish_siteB.vcl
350 vcl.load siteC0 /etc/varnish_siteC.vcl
351 vcl.label siteA siteA0
352 vcl.label siteB siteB0
353 vcl.label siteC siteC0
354 vcl.load main /etc/varnish_main.vcl
355 vcl.use main
356
357 Every line in the file, including the last line, must be terminated by
358 a newline or carriage return.
359
360 If a command in the file is prefixed with '-', failure will not abort
361 the startup.
362
364 Run Time Parameter Flags
365 Runtime parameters are marked with shorthand flags to avoid repeating
366 the same text over and over in the table below. The meaning of the
367 flags are:
368
369 · experimental
370
371 We have no solid information about good/bad/optimal values for this
372 parameter. Feedback with experience and observations are most wel‐
373 come.
374
375 · delayed
376
377 This parameter can be changed on the fly, but will not take effect
378 immediately.
379
380 · restart
381
382 The worker process must be stopped and restarted, before this parame‐
383 ter takes effect.
384
385 · reload
386
387 The VCL programs must be reloaded for this parameter to take effect.
388
389 · experimental
390
391 We're not really sure about this parameter, tell us what you find.
392
393 · wizard
394
395 Do not touch unless you really know what you're doing.
396
397 · only_root
398
399 Only works if varnishd is running as root.
400
401 Default Value Exceptions on 32 bit Systems
402 Be aware that on 32 bit systems, certain default values are reduced
403 relative to the values listed below, in order to conserve VM space:
404
405 · workspace_client: 16k
406
407 · http_resp_size: 8k
408
409 · http_req_size: 12k
410
411 · gzip_stack_buffer: 4k
412
413 · thread_pool_stack: 64k
414
415 List of Parameters
416 This text is produced from the same text you will find in the CLI if
417 you use the param.show command:
418
419 accept_filter
420 NB: This parameter depends on a feature which is not available on all
421 platforms.
422
423 · Units: bool
424
425 · Default: off
426
427 · Flags:
428
429 Enable kernel accept-filters.
430
431 acceptor_sleep_decay
432 · Default: 0.9
433
434 · Minimum: 0
435
436 · Maximum: 1
437
438 · Flags: experimental
439
440 If we run out of resources, such as file descriptors or worker threads,
441 the acceptor will sleep between accepts. This parameter (multiplica‐
442 tively) reduce the sleep duration for each successful accept. (ie: 0.9
443 = reduce by 10%)
444
445 acceptor_sleep_incr
446 · Units: seconds
447
448 · Default: 0.000
449
450 · Minimum: 0.000
451
452 · Maximum: 1.000
453
454 · Flags: experimental
455
456 If we run out of resources, such as file descriptors or worker threads,
457 the acceptor will sleep between accepts. This parameter control how
458 much longer we sleep, each time we fail to accept a new connection.
459
460 acceptor_sleep_max
461 · Units: seconds
462
463 · Default: 0.050
464
465 · Minimum: 0.000
466
467 · Maximum: 10.000
468
469 · Flags: experimental
470
471 If we run out of resources, such as file descriptors or worker threads,
472 the acceptor will sleep between accepts. This parameter limits how
473 long it can sleep between attempts to accept new connections.
474
475 auto_restart
476 · Units: bool
477
478 · Default: on
479
480 Automatically restart the child/worker process if it dies.
481
482 backend_idle_timeout
483 · Units: seconds
484
485 · Default: 60.000
486
487 · Minimum: 1.000
488
489 Timeout before we close unused backend connections.
490
491 backend_local_error_holddown
492 · Units: seconds
493
494 · Default: 10.000
495
496 · Minimum: 0.000
497
498 · Flags: experimental
499
500 When connecting to backends, certain error codes (EADDRNOTAVAIL, EAC‐
501 CESS, EPERM) signal a local resource shortage or configuration issue
502 for which retrying connection attempts may worsen the situation due to
503 the complexity of the operations involved in the kernel. This parame‐
504 ter prevents repeated connection attempts for the configured duration.
505
506 backend_remote_error_holddown
507 · Units: seconds
508
509 · Default: 0.250
510
511 · Minimum: 0.000
512
513 · Flags: experimental
514
515 When connecting to backends, certain error codes (ECONNREFUSED, ENETUN‐
516 REACH) signal fundamental connection issues such as the backend not
517 accepting connections or routing problems for which repeated connection
518 attempts are considered useless This parameter prevents repeated con‐
519 nection attempts for the configured duration.
520
521 ban_cutoff
522 · Units: bans
523
524 · Default: 0
525
526 · Minimum: 0
527
528 · Flags: experimental
529
530 Expurge long tail content from the cache to keep the number of bans
531 below this value. 0 disables.
532
533 When this parameter is set to a non-zero value, the ban lurker contin‐
534 ues to work the ban list as usual top to bottom, but when it reaches
535 the ban_cutoff-th ban, it treats all objects as if they matched a ban
536 and expurges them from cache. As actively used objects get tested
537 against the ban list at request time and thus are likely to be associ‐
538 ated with bans near the top of the ban list, with ban_cutoff, least
539 recently accessed objects (the "long tail") are removed.
540
541 This parameter is a safety net to avoid bad response times due to bans
542 being tested at lookup time. Setting a cutoff trades response time for
543 cache efficiency. The recommended value is proportional to
544 rate(bans_lurker_tests_tested) / n_objects while the ban lurker is
545 working, which is the number of bans the system can sustain. The addi‐
546 tional latency due to request ban testing is in the order of ban_cutoff
547 / rate(bans_lurker_tests_tested). For example, for
548 rate(bans_lurker_tests_tested) = 2M/s and a tolerable latency of 100ms,
549 a good value for ban_cutoff may be 200K.
550
551 ban_dups
552 · Units: bool
553
554 · Default: on
555
556 Eliminate older identical bans when a new ban is added. This saves CPU
557 cycles by not comparing objects to identical bans. This is a waste of
558 time if you have many bans which are never identical.
559
560 ban_lurker_age
561 · Units: seconds
562
563 · Default: 60.000
564
565 · Minimum: 0.000
566
567 The ban lurker will ignore bans until they are this old. When a ban is
568 added, the active traffic will be tested against it as part of object
569 lookup. Because many applications issue bans in bursts, this parameter
570 holds the ban-lurker off until the rush is over. This should be set to
571 the approximate time which a ban-burst takes.
572
573 ban_lurker_batch
574 · Default: 1000
575
576 · Minimum: 1
577
578 The ban lurker sleeps ${ban_lurker_sleep} after examining this many
579 objects. Use this to pace the ban-lurker if it eats too many
580 resources.
581
582 ban_lurker_holdoff
583 · Units: seconds
584
585 · Default: 0.010
586
587 · Minimum: 0.000
588
589 · Flags: experimental
590
591 How long the ban lurker sleeps when giving way to lookup due to lock
592 contention.
593
594 ban_lurker_sleep
595 · Units: seconds
596
597 · Default: 0.010
598
599 · Minimum: 0.000
600
601 How long the ban lurker sleeps after examining ${ban_lurker_batch}
602 objects. Use this to pace the ban-lurker if it eats too many
603 resources. A value of zero will disable the ban lurker entirely.
604
605 between_bytes_timeout
606 · Units: seconds
607
608 · Default: 60.000
609
610 · Minimum: 0.000
611
612 We only wait for this many seconds between bytes received from the
613 backend before giving up the fetch. A value of zero means never give
614 up. VCL values, per backend or per backend request take precedence.
615 This parameter does not apply to pipe'ed requests.
616
617 cc_command
618 · Default: exec clang -g -O2 -Wall -Werror -Wno-error=unused-result
619 t-Werror t-Wall t-Wno-format-y2k t-W t-Wstrict-prototypes t-Wmiss‐
620 ing-prototypes t-Wpointer-arith t-Wreturn-type t-Wcast-qual
621 t-Wwrite-strings t-Wswitch t-Wshadow t-Wunused-parameter
622 t-Wcast-align t-Wchar-subscripts t-Wnested-externs t-Wextra
623 t-Wno-sign-compare -fstack-protector -Wno-missing-field-initial‐
624 izers -pthread -fpic -shared -Wl,-x -o %o %s
625
626 · Flags: must_reload
627
628 Command used for compiling the C source code to a dlopen(3) loadable
629 object. Any occurrence of %s in the string will be replaced with the
630 source file name, and %o will be replaced with the output file name.
631
632 cli_limit
633 · Units: bytes
634
635 · Default: 48k
636
637 · Minimum: 128b
638
639 · Maximum: 99999999b
640
641 Maximum size of CLI response. If the response exceeds this limit, the
642 response code will be 201 instead of 200 and the last line will indi‐
643 cate the truncation.
644
645 cli_timeout
646 · Units: seconds
647
648 · Default: 60.000
649
650 · Minimum: 0.000
651
652 Timeout for the childs replies to CLI requests from the mgt_param.
653
654 clock_skew
655 · Units: seconds
656
657 · Default: 10
658
659 · Minimum: 0
660
661 How much clockskew we are willing to accept between the backend and our
662 own clock.
663
664 clock_step
665 · Units: seconds
666
667 · Default: 1.000
668
669 · Minimum: 0.000
670
671 How much observed clock step we are willing to accept before we panic.
672
673 connect_timeout
674 · Units: seconds
675
676 · Default: 3.500
677
678 · Minimum: 0.000
679
680 Default connection timeout for backend connections. We only try to con‐
681 nect to the backend for this many seconds before giving up. VCL can
682 override this default value for each backend and backend request.
683
684 critbit_cooloff
685 · Units: seconds
686
687 · Default: 180.000
688
689 · Minimum: 60.000
690
691 · Maximum: 254.000
692
693 · Flags: wizard
694
695 How long the critbit hasher keeps deleted objheads on the cooloff list.
696
697 debug
698 · Default: none
699
700 Enable/Disable various kinds of debugging.
701
702 none Disable all debugging
703
704 Use +/- prefix to set/reset individual bits:
705
706 req_state
707 VSL Request state engine
708
709 workspace
710 VSL Workspace operations
711
712 waiter VSL Waiter internals
713
714 waitinglist
715 VSL Waitinglist events
716
717 syncvsl
718 Make VSL synchronous
719
720 hashedge
721 Edge cases in Hash
722
723 vclrel Rapid VCL release
724
725 lurker VSL Ban lurker
726
727 esi_chop
728 Chop ESI fetch to bits
729
730 flush_head
731 Flush after http1 head
732
733 vtc_mode
734 Varnishtest Mode
735
736 witness
737 Emit WITNESS lock records
738
739 vsm_keep
740 Keep the VSM file on restart
741
742 drop_pools
743 Drop thread pools (testing)
744
745 slow_acceptor
746 Slow down Acceptor
747
748 h2_nocheck
749 Disable various H2 checks
750
751 vmod_so_keep
752 Keep copied VMOD libraries
753
754 processors
755 Fetch/Deliver processors
756
757 protocol
758 Protocol debugging
759
760 vcl_keep
761 Keep VCL C and so files
762
763 default_grace
764 · Units: seconds
765
766 · Default: 10.000
767
768 · Minimum: 0.000
769
770 · Flags: obj_sticky
771
772 Default grace period. We will deliver an object this long after it has
773 expired, provided another thread is attempting to get a new copy.
774
775 default_keep
776 · Units: seconds
777
778 · Default: 0.000
779
780 · Minimum: 0.000
781
782 · Flags: obj_sticky
783
784 Default keep period. We will keep a useless object around this long,
785 making it available for conditional backend fetches. That means that
786 the object will be removed from the cache at the end of ttl+grace+keep.
787
788 default_ttl
789 · Units: seconds
790
791 · Default: 120.000
792
793 · Minimum: 0.000
794
795 · Flags: obj_sticky
796
797 The TTL assigned to objects if neither the backend nor the VCL code
798 assigns one.
799
800 esi_iovs
801 · Units: struct iovec
802
803 · Default: 10
804
805 · Minimum: 3
806
807 · Maximum: 1024
808
809 · Flags: wizard
810
811 Number of io vectors to allocate on the thread workspace for ESI
812 requests.
813
814 feature
815 · Default: none
816
817 Enable/Disable various minor features.
818
819 none Disable all features.
820
821 Use +/- prefix to enable/disable individual feature:
822
823 short_panic
824 Short panic message.
825
826 wait_silo
827 Wait for persistent silo.
828
829 no_coredump
830 No coredumps.
831
832 esi_ignore_https
833 Treat HTTPS as HTTP in ESI:includes
834
835 esi_disable_xml_check
836 Don't check of body looks like XML
837
838 esi_ignore_other_elements
839 Ignore non-esi XML-elements
840
841 esi_remove_bom
842 Remove UTF-8 BOM
843
844 https_scheme
845 Also split https URIs
846
847 http2 Support HTTP/2 protocol
848
849 http_date_postel
850 Relax parsing of timestamps in HTTP headers
851
852 fetch_chunksize
853 · Units: bytes
854
855 · Default: 16k
856
857 · Minimum: 4k
858
859 · Flags: experimental
860
861 The default chunksize used by fetcher. This should be bigger than the
862 majority of objects with short TTLs. Internal limits in the stor‐
863 age_file module makes increases above 128kb a dubious idea.
864
865 fetch_maxchunksize
866 · Units: bytes
867
868 · Default: 0.25G
869
870 · Minimum: 64k
871
872 · Flags: experimental
873
874 The maximum chunksize we attempt to allocate from storage. Making this
875 too large may cause delays and storage fragmentation.
876
877 first_byte_timeout
878 · Units: seconds
879
880 · Default: 60.000
881
882 · Minimum: 0.000
883
884 Default timeout for receiving first byte from backend. We only wait for
885 this many seconds for the first byte before giving up. A value of 0
886 means it will never time out. VCL can override this default value for
887 each backend and backend request. This parameter does not apply to
888 pipe.
889
890 gzip_buffer
891 · Units: bytes
892
893 · Default: 32k
894
895 · Minimum: 2k
896
897 · Flags: experimental
898
899 Size of malloc buffer used for gzip processing. These buffers are used
900 for in-transit data, for instance gunzip'ed data being sent to a
901 client.Making this space to small results in more overhead, writes to
902 sockets etc, making it too big is probably just a waste of memory.
903
904 gzip_level
905 · Default: 6
906
907 · Minimum: 0
908
909 · Maximum: 9
910
911 Gzip compression level: 0=debug, 1=fast, 9=best
912
913 gzip_memlevel
914 · Default: 8
915
916 · Minimum: 1
917
918 · Maximum: 9
919
920 Gzip memory level 1=slow/least, 9=fast/most compression. Memory impact
921 is 1=1k, 2=2k, ... 9=256k.
922
923 h2_header_table_size
924 · Units: bytes
925
926 · Default: 4k
927
928 · Minimum: 0b
929
930 HTTP2 header table size. This is the size that will be used for the
931 HPACK dynamic decoding table.
932
933 h2_initial_window_size
934 · Units: bytes
935
936 · Default: 65535b
937
938 · Minimum: 0b
939
940 · Maximum: 2147483647b
941
942 HTTP2 initial flow control window size.
943
944 h2_max_concurrent_streams
945 · Units: streams
946
947 · Default: 100
948
949 · Minimum: 0
950
951 HTTP2 Maximum number of concurrent streams. This is the number of
952 requests that can be active at the same time for a single HTTP2 connec‐
953 tion.
954
955 h2_max_frame_size
956 · Units: bytes
957
958 · Default: 16k
959
960 · Minimum: 16k
961
962 · Maximum: 16777215b
963
964 HTTP2 maximum per frame payload size we are willing to accept.
965
966 h2_max_header_list_size
967 · Units: bytes
968
969 · Default: 2147483647b
970
971 · Minimum: 0b
972
973 HTTP2 maximum size of an uncompressed header list.
974
975 h2_rx_window_increment
976 · Units: bytes
977
978 · Default: 1M
979
980 · Minimum: 1M
981
982 · Maximum: 1G
983
984 · Flags: wizard
985
986 HTTP2 Receive Window Increments. How big credits we send in WIN‐
987 DOW_UPDATE frames Only affects incoming request bodies (ie: POST, PUT
988 etc.)
989
990 h2_rx_window_low_water
991 · Units: bytes
992
993 · Default: 10M
994
995 · Minimum: 65535b
996
997 · Maximum: 1G
998
999 · Flags: wizard
1000
1001 HTTP2 Receive Window low water mark. We try to keep the window at
1002 least this big Only affects incoming request bodies (ie: POST, PUT
1003 etc.)
1004
1005 http_gzip_support
1006 · Units: bool
1007
1008 · Default: on
1009
1010 Enable gzip support. When enabled Varnish request compressed objects
1011 from the backend and store them compressed. If a client does not sup‐
1012 port gzip encoding Varnish will uncompress compressed objects on
1013 demand. Varnish will also rewrite the Accept-Encoding header of clients
1014 indicating support for gzip to:
1015 Accept-Encoding: gzip
1016
1017 Clients that do not support gzip will have their Accept-Encoding header
1018 removed. For more information on how gzip is implemented please see the
1019 chapter on gzip in the Varnish reference.
1020
1021 When gzip support is disabled the variables beresp.do_gzip and
1022 beresp.do_gunzip have no effect in VCL.
1023
1024 http_max_hdr
1025 · Units: header lines
1026
1027 · Default: 64
1028
1029 · Minimum: 32
1030
1031 · Maximum: 65535
1032
1033 Maximum number of HTTP header lines we allow in
1034 {req|resp|bereq|beresp}.http (obj.http is autosized to the exact number
1035 of headers). Cheap, ~20 bytes, in terms of workspace memory. Note
1036 that the first line occupies five header lines.
1037
1038 http_range_support
1039 · Units: bool
1040
1041 · Default: on
1042
1043 Enable support for HTTP Range headers.
1044
1045 http_req_hdr_len
1046 · Units: bytes
1047
1048 · Default: 8k
1049
1050 · Minimum: 40b
1051
1052 Maximum length of any HTTP client request header we will allow. The
1053 limit is inclusive its continuation lines.
1054
1055 http_req_size
1056 · Units: bytes
1057
1058 · Default: 32k
1059
1060 · Minimum: 0.25k
1061
1062 Maximum number of bytes of HTTP client request we will deal with. This
1063 is a limit on all bytes up to the double blank line which ends the HTTP
1064 request. The memory for the request is allocated from the client
1065 workspace (param: workspace_client) and this parameter limits how much
1066 of that the request is allowed to take up.
1067
1068 http_resp_hdr_len
1069 · Units: bytes
1070
1071 · Default: 8k
1072
1073 · Minimum: 40b
1074
1075 Maximum length of any HTTP backend response header we will allow. The
1076 limit is inclusive its continuation lines.
1077
1078 http_resp_size
1079 · Units: bytes
1080
1081 · Default: 32k
1082
1083 · Minimum: 0.25k
1084
1085 Maximum number of bytes of HTTP backend response we will deal with.
1086 This is a limit on all bytes up to the double blank line which ends the
1087 HTTP response. The memory for the response is allocated from the back‐
1088 end workspace (param: workspace_backend) and this parameter limits how
1089 much of that the response is allowed to take up.
1090
1091 idle_send_timeout
1092 · Units: seconds
1093
1094 · Default: 60.000
1095
1096 · Minimum: 0.000
1097
1098 · Flags: delayed
1099
1100 Send timeout for individual pieces of data on client connections. May
1101 get extended if 'send_timeout' applies.
1102
1103 When this timeout is hit, the session is closed.
1104
1105 See the man page for setsockopt(2) under SO_SNDTIMEO for more informa‐
1106 tion.
1107
1108 listen_depth
1109 · Units: connections
1110
1111 · Default: 1024
1112
1113 · Minimum: 0
1114
1115 · Flags: must_restart
1116
1117 Listen queue depth.
1118
1119 lru_interval
1120 · Units: seconds
1121
1122 · Default: 2.000
1123
1124 · Minimum: 0.000
1125
1126 · Flags: experimental
1127
1128 Grace period before object moves on LRU list. Objects are only moved
1129 to the front of the LRU list if they have not been moved there already
1130 inside this timeout period. This reduces the amount of lock operations
1131 necessary for LRU list access.
1132
1133 max_esi_depth
1134 · Units: levels
1135
1136 · Default: 5
1137
1138 · Minimum: 0
1139
1140 Maximum depth of esi:include processing.
1141
1142 max_restarts
1143 · Units: restarts
1144
1145 · Default: 4
1146
1147 · Minimum: 0
1148
1149 Upper limit on how many times a request can restart.
1150
1151 max_retries
1152 · Units: retries
1153
1154 · Default: 4
1155
1156 · Minimum: 0
1157
1158 Upper limit on how many times a backend fetch can retry.
1159
1160 nuke_limit
1161 · Units: allocations
1162
1163 · Default: 50
1164
1165 · Minimum: 0
1166
1167 · Flags: experimental
1168
1169 Maximum number of objects we attempt to nuke in order to make space for
1170 a object body.
1171
1172 pcre_match_limit
1173 · Default: 10000
1174
1175 · Minimum: 1
1176
1177 The limit for the number of calls to the internal match() function in
1178 pcre_exec().
1179
1180 (See: PCRE_EXTRA_MATCH_LIMIT in pcre docs.)
1181
1182 This parameter limits how much CPU time regular expression matching can
1183 soak up.
1184
1185 pcre_match_limit_recursion
1186 · Default: 20
1187
1188 · Minimum: 1
1189
1190 The recursion depth-limit for the internal match() function in a
1191 pcre_exec().
1192
1193 (See: PCRE_EXTRA_MATCH_LIMIT_RECURSION in pcre docs.)
1194
1195 This puts an upper limit on the amount of stack used by PCRE for cer‐
1196 tain classes of regular expressions.
1197
1198 We have set the default value low in order to prevent crashes, at the
1199 cost of possible regexp matching failures.
1200
1201 Matching failures will show up in the log as VCL_Error messages with
1202 regexp errors -27 or -21.
1203
1204 Testcase r01576 can be useful when tuning this parameter.
1205
1206 ping_interval
1207 · Units: seconds
1208
1209 · Default: 3
1210
1211 · Minimum: 0
1212
1213 · Flags: must_restart
1214
1215 Interval between pings from parent to child. Zero will disable pinging
1216 entirely, which makes it possible to attach a debugger to the child.
1217
1218 pipe_timeout
1219 · Units: seconds
1220
1221 · Default: 60.000
1222
1223 · Minimum: 0.000
1224
1225 Idle timeout for PIPE sessions. If nothing have been received in either
1226 direction for this many seconds, the session is closed.
1227
1228 pool_req
1229 · Default: 10,100,10
1230
1231 Parameters for per worker pool request memory pool. The three numbers
1232 are:
1233
1234 min_pool
1235 minimum size of free pool.
1236
1237 max_pool
1238 maximum size of free pool.
1239
1240 max_age
1241 max age of free element.
1242
1243 pool_sess
1244 · Default: 10,100,10
1245
1246 Parameters for per worker pool session memory pool. The three numbers
1247 are:
1248
1249 min_pool
1250 minimum size of free pool.
1251
1252 max_pool
1253 maximum size of free pool.
1254
1255 max_age
1256 max age of free element.
1257
1258 pool_vbo
1259 · Default: 10,100,10
1260
1261 Parameters for backend object fetch memory pool. The three numbers
1262 are:
1263
1264 min_pool
1265 minimum size of free pool.
1266
1267 max_pool
1268 maximum size of free pool.
1269
1270 max_age
1271 max age of free element.
1272
1273 prefer_ipv6
1274 · Units: bool
1275
1276 · Default: off
1277
1278 Prefer IPv6 address when connecting to backends which have both IPv4
1279 and IPv6 addresses.
1280
1281 rush_exponent
1282 · Units: requests per request
1283
1284 · Default: 3
1285
1286 · Minimum: 2
1287
1288 · Flags: experimental
1289
1290 How many parked request we start for each completed request on the
1291 object. NB: Even with the implict delay of delivery, this parameter
1292 controls an exponential increase in number of worker threads.
1293
1294 send_timeout
1295 · Units: seconds
1296
1297 · Default: 600.000
1298
1299 · Minimum: 0.000
1300
1301 · Flags: delayed
1302
1303 Total timeout for ordinary HTTP1 responses. Does not apply to some
1304 internally generated errors and pipe mode.
1305
1306 When 'idle_send_timeout' is hit while sending an HTTP1 response, the
1307 timeout is extended unless the total time already taken for sending the
1308 response in its entirety exceeds this many seconds.
1309
1310 When this timeout is hit, the session is closed
1311
1312 shm_reclen
1313 · Units: bytes
1314
1315 · Default: 255b
1316
1317 · Minimum: 16b
1318
1319 · Maximum: 4084
1320
1321 Old name for vsl_reclen, use that instead.
1322
1323 shortlived
1324 · Units: seconds
1325
1326 · Default: 10.000
1327
1328 · Minimum: 0.000
1329
1330 Objects created with (ttl+grace+keep) shorter than this are always put
1331 in transient storage.
1332
1333 sigsegv_handler
1334 · Units: bool
1335
1336 · Default: on
1337
1338 · Flags: must_restart
1339
1340 Install a signal handler which tries to dump debug information on seg‐
1341 mentation faults, bus errors and abort signals.
1342
1343 syslog_cli_traffic
1344 · Units: bool
1345
1346 · Default: on
1347
1348 Log all CLI traffic to syslog(LOG_INFO).
1349
1350 tcp_fastopen
1351 · Units: bool
1352
1353 · Default: off
1354
1355 · Flags: must_restart
1356
1357 Enable TCP Fast Open extension.
1358
1359 tcp_keepalive_intvl
1360 · Units: seconds
1361
1362 · Default: 75.000
1363
1364 · Minimum: 1.000
1365
1366 · Maximum: 100.000
1367
1368 · Flags: experimental
1369
1370 The number of seconds between TCP keep-alive probes. Ignored for Unix
1371 domain sockets.
1372
1373 tcp_keepalive_probes
1374 · Units: probes
1375
1376 · Default: 9
1377
1378 · Minimum: 1
1379
1380 · Maximum: 100
1381
1382 · Flags: experimental
1383
1384 The maximum number of TCP keep-alive probes to send before giving up
1385 and killing the connection if no response is obtained from the other
1386 end. Ignored for Unix domain sockets.
1387
1388 tcp_keepalive_time
1389 · Units: seconds
1390
1391 · Default: 7200.000
1392
1393 · Minimum: 1.000
1394
1395 · Maximum: 7200.000
1396
1397 · Flags: experimental
1398
1399 The number of seconds a connection needs to be idle before TCP begins
1400 sending out keep-alive probes. Ignored for Unix domain sockets.
1401
1402 thread_pool_add_delay
1403 · Units: seconds
1404
1405 · Default: 0.000
1406
1407 · Minimum: 0.000
1408
1409 · Flags: experimental
1410
1411 Wait at least this long after creating a thread.
1412
1413 Some (buggy) systems may need a short (sub-second) delay between creat‐
1414 ing threads. Set this to a few milliseconds if you see the
1415 'threads_failed' counter grow too much.
1416
1417 Setting this too high results in insufficient worker threads.
1418
1419 thread_pool_destroy_delay
1420 · Units: seconds
1421
1422 · Default: 1.000
1423
1424 · Minimum: 0.010
1425
1426 · Flags: delayed, experimental
1427
1428 Wait this long after destroying a thread.
1429
1430 This controls the decay of thread pools when idle(-ish).
1431
1432 thread_pool_fail_delay
1433 · Units: seconds
1434
1435 · Default: 0.200
1436
1437 · Minimum: 0.010
1438
1439 · Flags: experimental
1440
1441 Wait at least this long after a failed thread creation before trying to
1442 create another thread.
1443
1444 Failure to create a worker thread is often a sign that the end is
1445 near, because the process is running out of some resource. This delay
1446 tries to not rush the end on needlessly.
1447
1448 If thread creation failures are a problem, check that thread_pool_max
1449 is not too high.
1450
1451 It may also help to increase thread_pool_timeout and thread_pool_min,
1452 to reduce the rate at which treads are destroyed and later recreated.
1453
1454 thread_pool_max
1455 · Units: threads
1456
1457 · Default: 5000
1458
1459 · Minimum: 100
1460
1461 · Flags: delayed
1462
1463 The maximum number of worker threads in each pool. The minimum value
1464 depends on thread_pool_min.
1465
1466 Do not set this higher than you have to, since excess worker threads
1467 soak up RAM and CPU and generally just get in the way of getting work
1468 done.
1469
1470 thread_pool_min
1471 · Units: threads
1472
1473 · Default: 100
1474
1475 · Maximum: 5000
1476
1477 · Flags: delayed
1478
1479 The minimum number of worker threads in each pool. The maximum value
1480 depends on thread_pool_max.
1481
1482 Increasing this may help ramp up faster from low load situations or
1483 when threads have expired.
1484
1485 Minimum is 10 threads.
1486
1487 thread_pool_reserve
1488 · Units: threads
1489
1490 · Default: 0
1491
1492 · Maximum: 95
1493
1494 · Flags: delayed
1495
1496 The number of worker threads reserved for vital tasks in each pool.
1497
1498 Tasks may require other tasks to complete (for example, client requests
1499 may require backend requests). This reserve is to ensure that such
1500 tasks still get to run even under high load.
1501
1502 Increasing the reserve may help setups with a high number of backend
1503 requests at the expense of client performance. Setting it too high will
1504 waste resources by keeping threads unused.
1505
1506 Default is 0 to auto-tune (currently 5% of thread_pool_min). Minimum
1507 is 1 otherwise, maximum is 95% of thread_pool_min.
1508
1509 thread_pool_stack
1510 · Units: bytes
1511
1512 · Default: 48k
1513
1514 · Minimum: 16k
1515
1516 · Flags: delayed
1517
1518 Worker thread stack size. This will likely be rounded up to a multiple
1519 of 4k (or whatever the page_size might be) by the kernel.
1520
1521 The required stack size is primarily driven by the depth of the
1522 call-tree. The most common relevant determining factors in varnish core
1523 code are GZIP (un)compression, ESI processing and regular expression
1524 matches. VMODs may also require significant amounts of additional
1525 stack. The nesting depth of VCL subs is another factor, although typi‐
1526 cally not predominant.
1527
1528 The stack size is per thread, so the maximum total memory required for
1529 worker thread stacks is in the order of size = thread_pools x
1530 thread_pool_max x thread_pool_stack.
1531
1532 Thus, in particular for setups with many threads, keeping the stack
1533 size at a minimum helps reduce the amount of memory required by Var‐
1534 nish.
1535
1536 On the other hand, thread_pool_stack must be large enough under all
1537 circumstances, otherwise varnish will crash due to a stack overflow.
1538 Usually, a stack overflow manifests itself as a segmentation fault (aka
1539 segfault / SIGSEGV) with the faulting address being near the stack
1540 pointer (sp).
1541
1542 Unless stack usage can be reduced, thread_pool_stack must be increased
1543 when a stack overflow occurs. Setting it in 150%-200% increments is
1544 recommended until stack overflows cease to occur.
1545
1546 thread_pool_timeout
1547 · Units: seconds
1548
1549 · Default: 300.000
1550
1551 · Minimum: 10.000
1552
1553 · Flags: delayed, experimental
1554
1555 Thread idle threshold.
1556
1557 Threads in excess of thread_pool_min, which have been idle for at least
1558 this long, will be destroyed.
1559
1560 thread_pool_watchdog
1561 · Units: seconds
1562
1563 · Default: 60.000
1564
1565 · Minimum: 0.100
1566
1567 · Flags: experimental
1568
1569 Thread queue stuck watchdog.
1570
1571 If no queued work have been released for this long, the worker process
1572 panics itself.
1573
1574 thread_pools
1575 · Units: pools
1576
1577 · Default: 2
1578
1579 · Minimum: 1
1580
1581 · Maximum: 32
1582
1583 · Flags: delayed, experimental
1584
1585 Number of worker thread pools.
1586
1587 Increasing the number of worker pools decreases lock contention. Each
1588 worker pool also has a thread accepting new connections, so for very
1589 high rates of incoming new connections on systems with many cores,
1590 increasing the worker pools may be required.
1591
1592 Too many pools waste CPU and RAM resources, and more than one pool for
1593 each CPU is most likely detrimental to performance.
1594
1595 Can be increased on the fly, but decreases require a restart to take
1596 effect.
1597
1598 thread_queue_limit
1599 · Default: 20
1600
1601 · Minimum: 0
1602
1603 · Flags: experimental
1604
1605 Permitted request queue length per thread-pool.
1606
1607 This sets the number of requests we will queue, waiting for an avail‐
1608 able thread. Above this limit sessions will be dropped instead of
1609 queued.
1610
1611 thread_stats_rate
1612 · Units: requests
1613
1614 · Default: 10
1615
1616 · Minimum: 0
1617
1618 · Flags: experimental
1619
1620 Worker threads accumulate statistics, and dump these into the global
1621 stats counters if the lock is free when they finish a job
1622 (request/fetch etc.) This parameters defines the maximum number of
1623 jobs a worker thread may handle, before it is forced to dump its accu‐
1624 mulated stats into the global counters.
1625
1626 timeout_idle
1627 · Units: seconds
1628
1629 · Default: 5.000
1630
1631 · Minimum: 0.000
1632
1633 Idle timeout for client connections.
1634
1635 A connection is considered idle until we have received the full request
1636 headers.
1637
1638 This parameter is particularly relevant for HTTP1 keepalive connec‐
1639 tions which are closed unless the next request is received before this
1640 timeout is reached.
1641
1642 timeout_linger
1643 · Units: seconds
1644
1645 · Default: 0.050
1646
1647 · Minimum: 0.000
1648
1649 · Flags: experimental
1650
1651 How long the worker thread lingers on an idle session before handing it
1652 over to the waiter. When sessions are reused, as much as half of all
1653 reuses happen within the first 100 msec of the previous request com‐
1654 pleting. Setting this too high results in worker threads not doing
1655 anything for their keep, setting it too low just means that more ses‐
1656 sions take a detour around the waiter.
1657
1658 vcc_allow_inline_c
1659 · Units: bool
1660
1661 · Default: off
1662
1663 Allow inline C code in VCL.
1664
1665 vcc_err_unref
1666 · Units: bool
1667
1668 · Default: on
1669
1670 Unreferenced VCL objects result in error.
1671
1672 vcc_unsafe_path
1673 · Units: bool
1674
1675 · Default: on
1676
1677 Allow '/' in vmod & include paths. Allow 'import ... from ...'.
1678
1679 vcl_cooldown
1680 · Units: seconds
1681
1682 · Default: 600.000
1683
1684 · Minimum: 0.000
1685
1686 How long a VCL is kept warm after being replaced as the active VCL
1687 (granularity approximately 30 seconds).
1688
1689 vcl_dir
1690 · Default: /opt/varnish/etc/varnish:/opt/varnish/share/varnish/vcl
1691
1692 Old name for vcl_path, use that instead.
1693
1694 vcl_path
1695 · Default: /opt/varnish/etc/varnish:/opt/varnish/share/varnish/vcl
1696
1697 Directory (or colon separated list of directories) from which relative
1698 VCL filenames (vcl.load and include) are to be found. By default Var‐
1699 nish searches VCL files in both the system configuration and shared
1700 data directories to allow packages to drop their VCL files in a stan‐
1701 dard location where relative includes would work.
1702
1703 vmod_dir
1704 · Default: /opt/varnish/lib/varnish/vmods
1705
1706 Old name for vmod_path, use that instead.
1707
1708 vmod_path
1709 · Default: /opt/varnish/lib/varnish/vmods
1710
1711 Directory (or colon separated list of directories) where VMODs are to
1712 be found.
1713
1714 vsl_buffer
1715 · Units: bytes
1716
1717 · Default: 4k
1718
1719 · Minimum: 267
1720
1721 Bytes of (req-/backend-)workspace dedicated to buffering VSL records.
1722 When this parameter is adjusted, most likely workspace_client and
1723 workspace_backend will have to be adjusted by the same amount.
1724
1725 Setting this too high costs memory, setting it too low will cause more
1726 VSL flushes and likely increase lock-contention on the VSL mutex.
1727
1728 The minimum tracks the vsl_reclen parameter + 12 bytes.
1729
1730 vsl_mask
1731 · Default: -ObjProtocol,-ObjStatus,-ObjReason,-Obj‐
1732 Header,-VCL_trace,-Work‐
1733 Thread,-Hash,-VfpAcct,-H2RxHdr,-H2RxBody,-H2TxHdr,-H2TxBody
1734
1735 Mask individual VSL messages from being logged.
1736
1737 default
1738 Set default value
1739
1740 Use +/- prefix in front of VSL tag name, to mask/unmask individual VSL
1741 messages.
1742
1743 vsl_reclen
1744 · Units: bytes
1745
1746 · Default: 255b
1747
1748 · Minimum: 16b
1749
1750 · Maximum: 4084b
1751
1752 Maximum number of bytes in SHM log record.
1753
1754 The maximum tracks the vsl_buffer parameter - 12 bytes.
1755
1756 vsl_space
1757 · Units: bytes
1758
1759 · Default: 80M
1760
1761 · Minimum: 1M
1762
1763 · Maximum: 4G
1764
1765 · Flags: must_restart
1766
1767 The amount of space to allocate for the VSL fifo buffer in the VSM mem‐
1768 ory segment. If you make this too small, varnish{ncsa|log} etc will
1769 not be able to keep up. Making it too large just costs memory
1770 resources.
1771
1772 vsm_free_cooldown
1773 · Units: seconds
1774
1775 · Default: 60.000
1776
1777 · Minimum: 10.000
1778
1779 · Maximum: 600.000
1780
1781 How long VSM memory is kept warm after a deallocation (granularity
1782 approximately 2 seconds).
1783
1784 vsm_space
1785 · Units: bytes
1786
1787 · Default: 1M
1788
1789 · Minimum: 1M
1790
1791 · Maximum: 1G
1792
1793 DEPRECATED: This parameter is ignored. There is no global limit on
1794 amount of shared memory now.
1795
1796 workspace_backend
1797 · Units: bytes
1798
1799 · Default: 64k
1800
1801 · Minimum: 1k
1802
1803 · Flags: delayed
1804
1805 Bytes of HTTP protocol workspace for backend HTTP req/resp. If larger
1806 than 4k, use a multiple of 4k for VM efficiency.
1807
1808 workspace_client
1809 · Units: bytes
1810
1811 · Default: 64k
1812
1813 · Minimum: 9k
1814
1815 · Flags: delayed
1816
1817 Bytes of HTTP protocol workspace for clients HTTP req/resp. Use a mul‐
1818 tiple of 4k for VM efficiency. For HTTP/2 compliance this must be at
1819 least 20k, in order to receive fullsize (=16k) frames from the client.
1820 That usually happens only in POST/PUT bodies. For other traffic-pat‐
1821 terns smaller values work just fine.
1822
1823 workspace_session
1824 · Units: bytes
1825
1826 · Default: 0.50k
1827
1828 · Minimum: 0.25k
1829
1830 · Flags: delayed
1831
1832 Allocation size for session structure and workspace. The workspace
1833 is primarily used for TCP connection addresses. If larger than 4k, use
1834 a multiple of 4k for VM efficiency.
1835
1836 workspace_thread
1837 · Units: bytes
1838
1839 · Default: 2k
1840
1841 · Minimum: 0.25k
1842
1843 · Maximum: 8k
1844
1845 · Flags: delayed
1846
1847 Bytes of auxiliary workspace per thread. This workspace is used for
1848 certain temporary data structures during the operation of a worker
1849 thread. One use is for the IO-vectors used during delivery. Setting
1850 this parameter too low may increase the number of writev() syscalls,
1851 setting it too high just wastes space. ~0.1k + UIO_MAXIOV *
1852 sizeof(struct iovec) (typically = ~16k for 64bit) is considered the
1853 maximum sensible value under any known circumstances (excluding exotic
1854 vmod use).
1855
1857 Varnish and bundled tools will, in most cases, exit with one of the
1858 following codes
1859
1860 · 0 OK
1861
1862 · 1 Some error which could be system-dependent and/or transient
1863
1864 · 2 Serious configuration / parameter error - retrying with the same
1865 configuration / parameters is most likely useless
1866
1867 The varnishd master process may also OR its exit code
1868
1869 · with 0x20 when the varnishd child process died,
1870
1871 · with 0x40 when the varnishd child process was terminated by a signal
1872 and
1873
1874 · with 0x80 when a core was dumped.
1875
1877 · varnishlog(1)
1878
1879 · varnishhist(1)
1880
1881 · varnishncsa(1)
1882
1883 · varnishstat(1)
1884
1885 · varnishtop(1)
1886
1887 · varnish-cli(7)
1888
1889 · vcl(7)
1890
1892 The varnishd daemon was developed by Poul-Henning Kamp in cooperation
1893 with Verdens Gang AS and Varnish Software.
1894
1895 This manual page was written by Dag-Erling Smørgrav with updates by
1896 Stig Sandbeck Mathisen <ssm@debian.org>, Nils Goroll and others.
1897
1899 This document is licensed under the same licence as Varnish itself. See
1900 LICENCE for details.
1901
1902 · Copyright (c) 2007-2015 Varnish Software AS
1903
1904
1905
1906
1907 VARNISHD(1)