varnish 503 service unavailable

lichengwu picture lichengwu · Oct 24, 2012 · Viewed 21.2k times · Source

My varnish version is 3.0.

My server works well while I curl the URLs, but when use varnish cache it return 503 service unavailable occasionally.

The log info likes is:

0 Debug        - "VCL_error(200, OK)"
24 VCL_call     c recv error
24 VCL_call     c error deliver
24 SessionClose c error
0 Debug        - "VCL_error(200, OK)"
27 VCL_call     c recv error
27 VCL_call     c error deliver
27 SessionClose c error
0 Debug        - "VCL_error(200, OK)"
16 VCL_call     c recv error
16 VCL_call     c error deliver
16 SessionClose c error
14 Debug        - "Write error, retval = 2998272, len = 8465870, errno = Success"
0 Debug        - "VCL_error(200, OK)"
14 VCL_call     c recv error
14 VCL_call     c error deliver
14 SessionClose c error
0 Debug        - "VCL_error(200, OK)"
21 VCL_call     c recv error
21 VCL_call     c error deliver
21 SessionClose c error

PS:The server response 200 when I curl or type the urls on browsers.

Answer

lichengwu picture lichengwu · Jan 11, 2013

varnish 503 can be fixed by steps below:

  1. Increase the connect_timeout,.first_byte_timeout and .between_bytes_timeout in you backend setting:

    backend default {
      .host = "www.example.com";
      .connect_timeout = 5s;
      .first_byte_timeout = 10s;
      .between_bytes_timeout = 10s;
    }
    
  2. Increase the parameter to 8192 when start varnish.

    varnishd [options] http_resp_hdr_len=8192
    
  3. Checkout you network or backend server.

    If Step 1 and Step 2 can not help you, please check you network connection and banckend server's availability.