Varnish backend request sent to itself?
Martynas Jusevičius
martynas at atomgraph.com
Wed Mar 18 12:53:32 UTC 2020
Nevermind, I figured out I wasn't even passing my VCL config correctly :)
On Wed, Mar 18, 2020 at 11:41 AM Martynas Jusevičius
<martynas at atomgraph.com> wrote:
>
> My attempt to obfuscate the hosts failed :) Sorry for that.
>
> In short: the configured backend is atomgraph.dydra.com but
> BereqHeader Host is atomgraph.dydra.varnish. Why?
>
> On Wed, Mar 18, 2020 at 11:36 AM Martynas Jusevičius
> <martynas at atomgraph.com> wrote:
> >
> > Hi,
> >
> > I'm using varnish-5.2.1 revision 67e562482 as a Docker image and
> > trying to restore the setup that was working some time ago.
> >
> > However I'm getting 503 Backend fetch failed.
> >
> > The VCL file clearly specifies the backend:
> >
> > backend default {
> > .host = "atomgraph.some_host.com";
> > .port = "80";
> > .first_byte_timeout = 60s;
> > }
> >
> > Varnish itself runs on atomgraph.some_host.varnish, as specified in
> > docker-compose.yml.
> >
> > When I login into the container, I see the client request:
> >
> > - ReqMethod GET
> > - ReqURL /smth/smth/...
> > - ReqProtocol HTTP/1.1
> > - ReqHeader Accept:
> > application/rdf+xml,text/rdf+n3,application/n-triples,text/csv,application/rdf+xml,application/rdf+thrift,text/turtle,application/rdf+json
> > - ReqHeader Cache-Control: no-cache
> > - ReqHeader Authorization: Basic bGlua2VkZGF0YWh1YjpqYThhc3BhdHV0YWtFdGhV
> > - ReqHeader Host: atomgraph.dydra.varnish
> > - ReqHeader Connection: Keep-Alive
> > - ReqHeader User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
> > - ReqHeader X-Forwarded-For: 172.30.0.3
> >
> > However when I look at the backend request:
> >
> > - BereqMethod GET
> > - BereqURL /smth/smth/...
> > - BereqProtocol HTTP/1.1
> > - BereqHeader Accept:
> > application/rdf+xml,text/rdf+n3,application/n-triples,text/csv,application/rdf+xml,application/rdf+thrift,text/turtle,application/rdf+json
> > - BereqHeader Authorization: Basic bGlua2VkZGF0YWh1YjpqYThhc3BhdHV0YWtFdGhV
> > - BereqHeader Host: atomgraph.dydra.varnish
> > - BereqHeader User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
> > - BereqHeader X-Forwarded-For: 172.30.0.3
> > - BereqHeader X-Varnish: 32783
> >
> > it looks like it is calling itself (i.e. the local fake .varnish
> > backend host instead of the real .com one), judging from the
> > BereqHeader Host.
> >
> > If that is the case, then no wonder that the backend request fails:
> >
> > - BerespProtocol HTTP/1.1
> > - BerespStatus 503
> > - BerespReason Service Unavailable
> > - BerespReason Backend fetch failed
> >
> > How can this be?
> >
> > Martynas
More information about the varnish-misc
mailing list