動かざることバグの如し

近づきたいよ 君の理想に

NginxでGETパラメーターによってアクセス先を分岐したい

以下の番外編というべきか

環境

  • Nginx 1.14

やりたいこと

デバッグ用途として、特定のGETパラメーターがついたURLでアクセスされたときはAのサーバーへ、それ以外はBのサーバーへ振りたい

設定

例えば http://example.com/?debug=1 のようにdebugというGETパラメータで条件分岐したい場合は $arg_debug を見ればいい。

set $target_proxy_server "server1";
if ($arg_debug) {
    set $target_proxy_server "server2";
}

location / {
    proxy_pass http://$target_proxy_server;
}

setは上書き可能なので、特定のときだけあとから再度setして変数を書き換えればおk