Change the reverse proxy upstream of Nginx without Lua

前回の記事(Change the reverse proxy upstream of Nginx by time zone) を見て、 matsuu さん が下記のような設定をGistに掲載されていたので試してみました。

結果、問題なくできたので前回の設定は次のようにシンプルになりました。

map $time_iso8601 $upstream {
    default "app-b.example.org";
    "~T(0|1[01])" "app-a.example.org";
}

server {
    server_name app.example.org;
    rewrite ^ $scheme://$upstream$request_uri permanent;
}

upstream app-a.example.org {
    server app-a.example.net;
}

server {
    server_name app-a.example.org;
    access_log /var/log/nginx/app-a.access.log;
    location / {
        proxy_pass http://app-a.example.org/;
    }
}

upstream app-b.example.org {
    server app-b.example.net;
}

server {
    server_name app-b.example.org
    access_log /var/log/nginx/app-b.access.log;
    location / {
        proxy_pass http://app-b.example.org/;
    }
}

matsuu さん、どうもありがとうございました。