
Ich versuche, Whitelists für bestimmte Domänennamen auf meinem Server zu definieren. Ich habe einen Weg gefunden, dies mithilfe des map
Kontexts zu tun, aber jetzt erhalte ich eine invalid parameter "$whitelist"
Fehlermeldung für eine Variable, die ich im Kartenkontext definiert habe. Ich habe diese Methode bereits zuvor ausprobiert und sie hat funktioniert, aber jetzt erhalte ich plötzlich eine Fehlermeldung. Ich bin mir jedoch nicht sicher, warum das so ist.
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;
}
Antwort1
allow
Die Direktive akzeptiert nur IP-Adressen, CIDR-Bereiche unix:
oder all
als Argument, wie inRichtliniendokumentation.
In Ihrer Konfiguration handelt es sich bei den Einträgen um Domänennamen, welche nicht unterstützt werden.