
내 서버의 특정 도메인 이름에 대한 화이트리스트를 정의하려고 합니다. 나는 컨텍스트를 사용하여 이 작업을 수행하는 방법을 알아냈지만 이제 맵 컨텍스트에서 정의한 변수에 대한 map
을 얻고 있습니다 . invalid parameter "$whitelist"
이전에 이미 이 방법을 시도했고 효과가 있었지만 갑자기 오류가 발생합니다. 그래도 왜 그런지 잘 모르겠습니다.
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;
}
답변1
allow
지시문은 다음에 설명된 대로 IP 주소, CIDR 범위 unix:
또는 all
인수로만 허용합니다.지시 문서.
구성에서 항목은 지원되지 않는 도메인 이름입니다.