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?
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
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.