Então, graças à dica da HD, aqui está como eu resolvi essa:
Aproveitou este fato do formulário Geo docs: Quando o padrão não é especificado, o valor padrão será uma string vazia.
geo $allowed_client {
10.0.0.0/8 allowed;
}
server {
...
set $appname app1;
location / {
$maintmode "${appname}${allowed_client}"
if (-f /var/www/maintmode/$maintmode) {
return 503;
}
try_files $uri $uri/;
}
}
para que eu ainda possa touch app1
no comando maint desligar um aplicativo específico, porque se tivermos um IP válido $maintmode = app1allowed
, o que passará pelo 503. Todos os outros IPs terão $maintmode = app1
, o que cairá no 503. Obrigado HD!