proxy, upstream, apache vhosts not working

Isaac Hailperin i.hailperin at heinlein-support.de
Fri Jul 27 09:15:21 UTC 2012


So I finally found the reason: the nginx cache bit me :)
First I did not have the line
           proxy_set_header        Host            $host;
which got me that default page into my cache. Any subsequent
calls pulled that default page, since nginx does not know that
its just a default page I guess. So any changes I made to the config did 
not change the cache. Once I removed the cache, the config line
stated above did the trick.

I noticed this because when I came back to work this morning it 
suddently was working. So I tried to change the config and see what
it was, and was stuck again with the default page.
I then started tcpdump to see what the header would look like that got 
send to apache. I realized that nothing got send to apache, which lead
me to the conclusion that nginx was serving out of cache. Removing
the cache did the trick.

Sorry for bothering you.

Isaac


On 07/27/2012 10:45 AM, Isaac Hailperin wrote:
>
>
> On 07/26/2012 05:42 PM, Valentin V. Bartenev wrote:
>> On Thursday 26 July 2012 18:48:45 Isaac Hailperin wrote:
>>> Hi,
>>>
>>> I want to configure nginx as a proxy to a bunch of apaches, all serving
>>> the same multiple websites via vhosts.
>>>
>>> I had it working with something like
>>>           location  ~* \.(jpg|gif|png|css|js) {
>>>                   try_files $uri @proxy;
>>>           }
>>>           location @proxy {
>>>                  proxy_pass http://www.acme.net;
>>>           }
>>>           location / {
>>>                  proxy_pass http://www.acme.net;
>>> }
>>>
>>> in my server section.
>>> But this only asked a single apache, the one configured in /etc/hosts
>>> for http://www.acme.net.
>>>
>>> Now I am trying to use all of my apaches. I defined an upstream block
>>> like this:
>>>           upstream backend-all-apaches {
>>>                   server 10.10.1.25;
>>>                   server 10.10.1.26;
>>>                   server 10.10.1.27;
>>>                   server 10.10.1.28;
>>>                   server 10.10.1.15;
>>>                   server 10.10.1.18;
>>>                   server 10.10.1.20;
>>>           }
>>>           proxy_set_header        Host            $host;
>>>
>>> And the following in my server block:
>>>             location @proxy {
>>>                   proxy_pass http://backend-all-apaches;
>>>           }
>>> All I get in my browser is a default page that also gets deliverd when I
>>> call http://10.10.1.25 in my browser. So I assume the apaches don't get
>>> the right host value in the http header. I thought that
>>>           proxy_set_header        Host            $host;
>>> would solve this problem, but apprently it does not.
>>>
>>> What am I doing wrong here, or what else could I try?
>>>
>>
>> Is the above configuration is exactly what you're actually use?
> Almost. I changed IPs and servername, the rest is the same.
>
> Isaac
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx



More information about the nginx mailing list