with port numbers

Geoff Crompton geoffc at
Mon Aug 23 04:19:29 CEST 2010

Is VCL meant to handle port numbers in HTTP Host headers more 
gracefully? I was trying to check my varnish configuration by calling 
the nagios-plugins check_http utility, and to get it to work I had to 
add line 3 in the following:

1 sub vcl_recv {
2     if ( == "" ||
3 == "") {
4         set req.backend = backend;
5     }

Here is some output from varnishlog that shows that the check_http 
program formats it's Host header with a port number.
     7 RxRequest    c GET
     7 RxURL        c /
     7 RxProtocol   c HTTP/1.1
     7 RxHeader     c Host:
     7 RxHeader     c User-Agent: check_http/v1991 (nagios-plugins 1.4.12)
     7 RxHeader     c Connection: close

I thought that was a bit odd, but apparently it's permitted in RFC 2616. 
I wonder if varnish should decode such a header to something like: = ""
  req.http.hostport = "80"

Is this worth a bug report?
+-Geoff Crompton
+--Debian System Administrator
+---Trinity College

More information about the varnish-dev mailing list