Por que estou recebendo parâmetros inválidos para uma variável que defini no mapa?

Por que estou recebendo parâmetros inválidos para uma variável que defini no mapa?

Estou tentando definir a lista de permissões para determinados nomes de domínio no meu servidor. Eu descobri uma maneira de fazer isso usando o mapcontexto, mas agora estou recebendo uma invalid parameter "$whitelist"variável que defini no contexto do mapa. Já tentei esse método antes e funcionou, mas agora estou recebendo um erro de repente. Não sei por que esse é o caso.

map $http_host $whitelist {
  default 0;
  "~^(?<subdomain>\w+)\.(?<domain>domain-name\.example\.com)$" $domain;

  # whitelist domains
  whitelist1 example.com;
  whitelist2 subdomain.example.com;
}

server {
  listen 80;
  resolver 127.0.0.11 ipv6=off;
  proxy_intercept_errors on;


  # error_page 400 403 = @fallback;
  if ($whitelist = 0) {
    return 403;
  }

  location /v1/ {

    allow $whitelist;
    deny all;
  }

  location @fallback {
    return 400;
}

Responder1

allowA diretiva aceita apenas endereços IP, intervalos CIDR unix:ou allcomo argumento, conforme documentado emdocumentação diretiva.

Na sua configuração, as entradas são nomes de domínio, que não são suportados.

informação relacionada