nginx reports [upstream sent no valid HTTP/1.0 header] when used with varnish

Maxim Dounin mdounin at mdounin.ru
Tue Apr 22 10:21:07 UTC 2014


Hello!

On Tue, Apr 22, 2014 at 03:30:37PM +0530, Joydeep Bakshi wrote:

> @Lukas - attached is the cap file
> 
> @Maxim -  after starting varnish only the following port comes up
> 
> # netstat -nat | grep 60
> tcp        0      0 0.0.0.0:6082            0.0.0.0:*               LISTEN
> tcp        0      0 :::6082                 :::*                    LISTEN

Check varnish starup options.  As per documentation, the "-a" 
argument of the varnishd is what you have to check:

https://www.varnish-cache.org/docs/4.0/reference/varnishd.html
https://www.varnish-cache.org/docs/4.0/tutorial/putting_varnish_on_port_80.html

Anyway, it doesn't looks like something nginx-related.

> 
> 
> On Tue, Apr 22, 2014 at 2:56 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> 
> > Hello!
> >
> > On Tue, Apr 22, 2014 at 12:55:07PM +0530, Joydeep Bakshi wrote:
> >
> > > Hello all,
> > >
> > > My setting works well  through nginx->apache but not through
> > > nginx->varnish->apache
> > >
> > > apache is configured to listen to port 8080 . when nginx uses
> > >
> > > proxy_pass http://127.0.0.1:8080
> > >
> > > the sites are running fine.
> > >
> > > If I introduce varnish after nginx  by  [proxy_pass
> > http://127.0.0.1:6082]
> > >  the nginx starts throwing following error and browser also shows "*Zero
> > > Sized Reply"*
> > >
> > >
> > > [error] 17147#0: *207 upstream sent no valid HTTP/1.0 header while
> > reading
> > > response header from upstream
> > >
> > > and /var/log/messages shows
> > >
> > > varnishd[16984]: CLI telnet 127.0.0.1 42212 127.0.0.1 6082 Wr 101 Unknown
> > > request.#012Type 'help' for more info.#012all commands are in lower-case.
> > >
> > > varnishd[16984]: CLI telnet 127.0.0.1 42212 127.0.0.1 6082 Rd
> > > Cache-Control: max-age=0
> > >
> > > obviously varnish is configured to listen to apache
> > >
> > > backend default {
> > >         .host = "127.0.0.1";
> > >         .port = "8080";
> > > }
> > >
> > > Can anyone please suggest the possible reason which is causing the
> > problem ?
> >
> > It looks like you've configured nginx to pass http to varnish CLI
> > port.  For obvious reasons this isn't going to work.
> >
> > --
> > Maxim Dounin
> > http://nginx.org/
> >
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx
> >


> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx


-- 
Maxim Dounin
http://nginx.org/



More information about the nginx mailing list