
Estoy intentando definir una lista blanca para ciertos nombres de dominio en mi servidor. Descubrí una manera de hacer esto usando el map
contexto, pero ahora obtengo invalid parameter "$whitelist"
una variable que definí en el contexto del mapa. Ya probé este método antes y funcionó, pero ahora de repente aparece un error. Aunque no estoy seguro de por qué es así.
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;
}
Respuesta1
allow
La directiva acepta solo direcciones IP, rangos CIDR unix:
o all
como argumento, como se documenta endocumentación directiva.
En su configuración, las entradas son nombres de dominio, que no son compatibles.