Intended behavior for Host header in Proxy scenario

Maxim Dounin mdounin at mdounin.ru
Thu Nov 22 21:13:38 UTC 2018


Hello!

On Thu, Nov 22, 2018 at 09:11:59PM +0100, Jack Henschel wrote:

> Hello everyone,
> 
> during my last debugging session with Nginx I was wondering how and when
> exactly Nginx passes upstream's hostname when proxying a request.
> 
> In particular, I have the following example:
> > upstream backend {
> >   server a.example.com:443;
> >   server b.example.com:443;
> > }
> 
> > server {
> >   proxy_pass https://backend/path;
> >   proxy_set_header Host $proxy_host; # default according to docs
> > }
> 
> I observed that Nginx does not always pass the appropriate Host header
> to the upstream server (i.e. "a.example.com" for "server
> a.example.com:443" and "b.example.com" for "server b.example.com:443").
> 
> Is this observation correct or am I missing something?

The Host header is set to what you wrote in the "proxy_pass" by 
default.  That is, it will be "backend" with the above 
configuration.

-- 
Maxim Dounin
http://mdounin.ru/


More information about the nginx mailing list