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 (req.http.host == "www.trinitycollege.vic.edu.au" ||
3         req.http.host == "www.trinitycollege.vic.edu.au:80") {
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: www.trinitycollege.vic.edu.au:80
    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.host = "www.trinitycollege.vic.edu.au"
 req.http.hostport = "80"

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

_______________________________________________
varnish-dev mailing list
[email protected]
http://lists.varnish-cache.org/mailman/listinfo/varnish-dev

Reply via email to