Nginx dynamic proxy_pass keeps redirecting to wrong domain

Ruben D rdocter at gmail.com
Sat Nov 18 05:51:48 UTC 2017


Thank you, now it seems to work!


Verstuurd vanaf mijn iPhone

> Op 17 nov. 2017 om 15:02 heeft Francis Daly <francis at daoine.org> het volgende geschreven:
> 
> On Fri, Nov 17, 2017 at 02:16:41PM +0100, Ruben wrote:
> 
> Hi there,
> 
>> instance-001 log when making the request:
>> 
>> "GET /cdn/test/test.jpg HTTP/1.0" 301 185 "-" "Mozilla/5.0 (Windows NT
>> 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
>> Chrome/62.0.3202.94 Safari/537.36"
> 
> Ok, that's good to know.
> 
> The client asks nginx for /cdn/test/test.jpg (with a Host: header
> of example.com); nginx asks upstream for /cdn/test/test.jpg (with a
> Host: header that we have not yet confirmed); upstream says to ask for
> /cdn/test/test.jpg with a Host: header of instance-001.
> 
> One possibility is to change the web server on instance-001 to serve the
> content to all requests, no matter what Host: header they use. That is
> a bit unfriendly to instance-001.
> 
> Another possibility is to make sure than nginx sends a Host: header
> of instance-001 when it make a request of instance-001. That should need
> no changes to instance-001.
> 
> You could check fuller logs, or tcpdump the traffic, to see what Host:
> header nginx currently sends to instance-001. But if you don't really
> care, you can just configure nginx to send what you want.
> 
> (Yet another possibility is to change the web server on instance-001
> to serve the instance-001 content whenever it gets the Host: header
> that nginx currently sends. That only works if you know what nginx
> currently sends.)
> 
> The second choice above is the one that is within nginx's control. So
> (assuming that you have no proxy_set_header values already configured
> at server{} or http{} level), in the same place where you currently have
> 
>  proxy_pass http://$instance;
> 
> add
> 
>  proxy_set_header Host $instance;
> 
> and see what changes.
> 
> If it doesn't all Just Work, then you may need to see what exactly nginx
> is sending; but hopefully it won't come to that.
> 
> Note: I think that this should not be necessary; since I think that
> nginx should probably already be setting the Host header to the value
> of $instance. But obviously something is going wrong, so I think that
> it is worth being explicit.
> 
> Good luck with it,
> 
>    f
> -- 
> Francis Daly        francis at daoine.org
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx


More information about the nginx mailing list