Run-Time Parameters(
运行时的参数)
运行参数有速记标志,避免重复出现相同的文件,该标志的含义:
experimental
对这个参数,我们没有固定的值来说明好不好,欢迎观察和反馈这个值。
delayed
这个值可以在不工作的时候改变,但是不会立即生效。
restart
工作进程会被停止,并且重新启动。
reload
VCL
程序会被重新装载。
下面是参数列表,目前是我们最后一次更新指南。下面的列表和
CLI
管理接口
的
param.show
命令产生的列表相同,如果某些描述在这里找不到,你可以在
CLI
使用命令找到相关描述。
下面是在一个
32
位的系统上的默认值,比如
sess_workspace
(
=16K
)和
thread_pool_stack
(
=64K
),可以减少这些值保持虚拟内存空间。
acceptor_sleep_decay
Default
:
0.900 Flags
:
experimental
如果我们的文件描述,或者工作线程等资源耗尽,接收器在接收两次接收
间隔中会休眠,这个参数减少成功接收的休眠时间。(
ie
:
0.9 = reduce by 10%
)
acceptor_sleep_incr
Units
:
s default
:
0.001 flags
:
experimental
如果我们的文件描述,或者工作线程等资源耗尽,接收器在两次接收
间隔中会休眠,这个参数控制休眠的时间。
acceptor_sleep_max
Units:s default:0.050 flags:xperimental
如果我们的文件描述,或者工作线程等资源耗尽,接收器在接收两次接收
间隔中会休眠,这个参数娴熟最长的休眠时间。
auto_restart
Units
:
bool default
:
on
如果子进程宕了,自动重启。
ban_lurker_sleep
Units
:
s default
:
0.0
How long time does the ban lurker thread sleeps between successfullattempts to push the last item up the purge list. It always sleeps a second when nothing can be done. A value of zero disables the ban lurker.
between_bytes_timeout
Units
:
s Default
:
60
在接收数据是,两个字节之间的超时时间,如果值是
0
,就表示用不超时,
VCL
配置文件的值可以覆盖这里的值,这个参数在
pipe
模式中无效。
cache_vbe_conns
Units
:
bool Default
:
off Flags
:
experimental
Cache vb_conn
依耐于
malloc
,这是一个问题。
cc_command
Default
:
exec cc �Cfpic �Cshared �CWl
,
�Cx �Co %o %s Flags
:
must_reload
编译
c
源代码的参数,
%s
将替换源文件名字,
,%o
将替换输出的文件名字。
cli_buffer
Units
:
bytes Default
:
8192
CLI
输入的缓冲区大小,如果你有一个很大
VCL
文件或者使用
vcl.inline
命
令,那么就需要增大这个值,注意必须使用
-p
,让所有的生效。
cli_timeout
Units
:
seconds Default
:
10
管理员对
CLI
的请求超时时间。
clock_skew
Units
:
s Default
:
10
在后端服务器和
varnish
之间,多少时差愿意接受。
connect_timeout
Units
:
s Default
:
0.4
连接后端服务器默认的连接超时时间,
VCL
的配置可以覆盖这个选项。
default_grace
Default:10Seconds Flags:delayed
定义
grace
宽度,我们会递交一个之前的内容,在其他线程想要新的拷贝。
default_ttl
Units
:
seconds Default
:
120
如果
backend
和
VCL
都没有给目标分配
TTL
,那么这个参数将会生效,已
经存在于缓存中的目标在他们从新从后端获取前不受影响,强制他们生效可以
使用“
purge.url
”刷新
cache
。
diag_bitmap
Units
:
bitmap default
:
0 bitmap controlling diagnostics code
:
0x00000001 - CNT_Session states.
0x00000002 - workspace debugging.
0x00000004 - kqueue debugging.
0x00000008 - mutex logging.
0x00000010 - mutex contests.
0x00000020 - waiting list.
0x00000040 - object workspace.
0x00001000 - do not core-dump child process.
0x00002000 - only short panic message.
0x00004000 - panic to stderr.
0x00008000 - panic to abort2().
0x00010000 - synchronize shmlog.
0x00020000 - synchronous start of persistence.
0x80000000 - do edge-detection on digest.
err_ttl
Units
:
seconds Default
:
0
TTl
分配给错误页面。
Esi_syntax
Units
:
bitmap Default
:
0 bitmap controlling ESI parsing code
:
0x00000001 - Don't check if it looks like XML
0x00000002 - Ignore non-esi elements
0x00000004 - Emit parsing debug records
fetch_chunksize
Units
:
kilobytes Default
:
128flags
:
experimental
Fetcher
使用默认的
chunksize
,这个值应该比多数目标大,而且
TTLS
更短,
first_byte_timeout
Units: s default:60
定义从后端服务器收到第一个数据的超时时间,我们只等待这个时间,如
果超过,就放弃。如果值是
0
,那么久永不放弃。
VCL
的配置可以覆盖这个值,
此值在
pipe
模式中无效。
group
Default
:
…. Flags
:
must_restart
使用哪个没有特权的组运行此进程。
http_headers
Units
:
header lines default
:
64
可以处理的最大数目的
HTTP
头
listen_address
Default
:
80 flags
:
must_restart
可以使使用的表达方式
host
,
host
:
port
,
port
listen_depth
Units
:
connections default
:
1024 flags
:
must_restart
监听队列深度。
log_hashstring
Units
:
bool default
:
off
日志是否记录共享内存里的
hash
字符
log_local_address
Units
:
bool default
:
off
是否记录本地
IP
的
tcp
连接。
lru_interval
Units
:
seconds default
:
2 flags:experimental
在目标从
LRU
表移除的前的宽限时间
max_esi_includes
Units
:
includes default
:
5
最大数量的
Esi
进程。
max_restarts
Units
:
restarts default
:
4
一个请求重试次数的最大限制,应该意识到重试次数会影响命中率,所以
不要轻易改变这个值。
overflow_max
Units
:
% default
:
100 flags
:
experimental
允许溢出队列长度的百分比。
这个设置排队请求工作的线程,超过上面的值就会丢弃。
ping_interval
Units
:
seconds default
:
3 flags
:
must_restart
子进程
ping
主进程的间隔。
0
就是禁止
ping
。
pipe_timeout
Units
:
seconds default
:
60
PIPE
会话的空闲超时时间,如果他们之间在此值期间没有数据收发,那么
就会关闭
session
。
prefer_ipv6
Units
:
bool default
:
off
当后端服务器支持
IPV4
和
IPV6
,在连接后端服务器的时候更喜欢
IPv6
地址。
purge_dups
Units
:
bool default
:
on
发现和消除重复的
purges
。
rush_exponent
Units
:
requests per request default
:
3 flags
:
experimental
How many parked request we start for each completed request on the object. NB: Even with the implict delay of delivery, this parameter controls an exponential increase in number of worker threads.
Purge expressions
一个
purge
表达包含一个或者多个条件,一个条件包含一个字段,一个运算符,一
个内容条件可以使用“
&&
”符号连接起来。
一个字段可以包含任何
VCL
的变量,例如
req.url
,
req.http.host
或者
obj.set-cookie
。
运算符包括“
==
”直接比较,“
~
”正则表达式匹配,和“
>
”“
<
”用于
size
比较。
先考虑运算符是否“!”,表示否者表达式。
内容需要引用字符串,正则表达式,整数。整数可以包含“
KB,MB,GB,TB
”相关的
单位
例子:所有请求的
req.url
匹配
/news
,就
purge cache
。
req.url == "/news"
例子:
purge
所有名字不是
”.ogg”
结尾的,并且大小超过
10MB
的文件。
req.url !~ "\.ogg$" && obj.size > 10MB
例子:
purge
所有提供服务主机名字为“
example.com
”和
www.example.com
,以及所有从后端服务器中收到的头信息
Set-Cookie
的值为“
USERID=1663
”的文件:
req.http.host ~ "^(www\.)example.com$" && obj.set-cookie ~ "USERID=1663"
SEE ALSO
* varnishlog(1)
* varnishhist(1)
* varnishncsa(1)
* varnishstat(1)
* varnishtop(1)
* vcl(7)
HISTORY
The varnishd daemon was developed by Poul-Henning Kamp in cooperation with Verdens Gang AS, Linpro AS and Varnish Software.
This manual page was written by Dag-Erling Smørgrav with updates by Stig Sandbeck Mathisen
⟨
[email protected]
⟩
COPYRIGHT
这个文档的版权和
varnish
自身的版权一样,请看
LICENCE
。
* Copyright (c) 2007-2008 Linpro AS
* Copyright (c) 2008-2010 Redpill Linpro AS
* Copyright (c) 2010 Varnish Software AS