Multiple proxy_pass

Should it be possible to use a different proxy_pass statement under a
single
location using if statement?
I’ve tried using the following config but all traffic gets passed to the
‘primary’ upstream regardless of the value of $host.

upstream primary {
server x.x.x.x;
}

upstream secondary {
server x.x.x.x;
}

location / {
if ($host = ‘secondary.example.com’) {
proxy_pass http://secondary;
}
proxy_set_header Host $http_host;
proxy_pass http://primary;
}

Many thanks,
-Jake

Turns out my if statment just neede a “break;”…
.
if ($host = ‘secondary.example.com’) {
proxy_pass http://secondary;
break;
}

Thanks.
-Jake

On Mon, Aug 04, 2008 at 09:27:34AM -0400, J Davis wrote:

Turns out my if statment just neede a “break;”…
.
if ($host = ‘secondary.example.com’) {
proxy_pass http://secondary;
break;
}

Actually, you need two servers:

server {
      server_name primary.example.com;
      location / {
          proxy_pass http://primary;
          proxy_set_header Host $http_host;
     }
}

server {
      server_name secondary.example.com;

      location / {
          proxy_pass http://secondary;
          proxy_set_header Host $http_host;
      }
}

Perfect. Thank you!