upstream production {
server 10.0.0.1:80;
}
upstream stage {
server 10.0.0.2:80;
}
# map to different upstream backends based on header
map $http_x_which_deployment $pool {
default "production";
stage "stage";
}
server {
listen 80;
server_name _;
location / {
proxy_pass http://$pool;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_true_client_ip;
proxy_set_header Host $host;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600; }
}
Then if you add "X-Which-Deployment" header and set it to "stage", you will be pointed to "Stage Server" (here 10.0.0.2).