我已经安装了 varnish 4.1.2,它可以从命令行正常启动,但重新启动服务器时无法启动。
系统日志显示该地址已被使用(端口 8080)。此服务器上没有安装任何其他东西,它是专用的 varnish 服务器。
从启动时看起来像是发生了恐慌,这是 varnishadm 中的 panic.show 的输出
"Assert error in child_sigsegv_handler(), mgt/mgt_child.c line 282:
Condition(Segmentation fault by instruction at 0x20bf68) not true.
thread = (cache-worker)
version = varnish-4.1.2 revision 0d7404e
ident = Linux,3.13.0-45-generic,x86_64,-junix,-smalloc,-smalloc,-hcritbit,epoll
Backtrace:
0x433976: varnishd() [0x433976]
0x452c43: varnishd() [0x452c43]
0x7fdc2af61340: libpthread.so.0(+0x10340) [0x7fdc2af61340]
0x43fba9: varnishd(VCL_DefaultDirector+0x19) [0x43fba9]
0x436e05: varnishd(CNT_Request+0x9a5) [0x436e05]
0x44e9d3: varnishd(HTTP1_Session+0xd3) [0x44e9d3]
0x439d0d: varnishd(SES_Proto_Req+0x5d) [0x439d0d]
0x4493d1: varnishd() [0x4493d1]
0x44983b: varnishd() [0x44983b]
0x7fdc2af59182: libpthread.so.0(+0x8182) [0x7fdc2af59182]
req = 0x7fdc2219a020 {
vxid = 327766, step = R_STP_RECV,
req_body = R_BODY_NONE,
restarts = 0, esi_level = 0,
sp = 0x7fdc2a1c0220 {
fd = 22, vxid = 327765,
client = 192.168.55.13 47216,
step = S_STP_H1PROC,
},
worker = 0x7fdc2c2bac40 {
stack = {0x7fdc2c2bb000 -> 0x7fdc2c2af000},
ws = 0x7fdc2c2bae38 {
id = \"wrk\",
{s,f,r,e} = {0x7fdc2c2ba3e0,0x7fdc2c2ba3e0,(nil),+2040},
},
VCL::method = SYNTH,
VCL::return = deliver,
VCL::methods = {},
},
ws = 0x7fdc2219a200 {
id = \"req\",
{s,f,r,e} = {0x7fdc2219c000,+152,(nil),+57336},
},
http_conn = 0x7fdc2219a128 {
fd = 22,
doclose = NULL,
ws = 0x7fdc2219a200,
{rxbuf_b, rxbuf_e} = {0x7fdc2219c048, 0x7fdc2219c073},
{pipeline_b, pipeline_e} = {(nil), (nil)},
content_length = -1,
body_status = none,
first_byte_timeout = 0.000000,
between_bytes_timeout = 0.000000,
},
http[req] = 0x7fdc2219a298 {
ws[req] = 0x7fdc2219a200,
hdrs {
\"GET\",
\"/ping\",
\"HTTP/1.0\",
\"Host: www.example.com\",
\"X-Forwarded-For: 192.168.55.13\",
},
},
vcl = {
temp = warm
srcname = {
"
使用 varnishd -C -f /etc/varnish/default.vcl 时VCL文件编译文件
看起来主进程仍在运行。终止所有 varnishd、varnishlog 和 varnishncsa 进程可让服务重新启动。