De acordo com a documentação da diretiva auth_basic
, você não pode usar a diretiva em um bloco if
, mas você pode usar variáveis como valores.
Portanto, use um mapa para testar condições específicas e use a variável resultante.
map $http_<header_name> $authentication {
default "off";
"~^" "my_realm";
}
server {
...
location /foo {
auth_basic $authentication;
auth_basic_user_file /path/to/htpasswd/file;
...
}
}
O padrão <header_name>
deve ser substituído pelo nome do cabeçalho usando letras minúsculas e sublinhado em vez de traços (por exemplo, My-Header
se torna $http_my_header
)