
サーバー上の特定のドメイン名のホワイトリストを定義しようとしています。コンテキストを使用してこれを行う方法を見つけました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
引数としてのみ受け入れます。指令文書。
設定ではエントリはドメイン名ですが、これはサポートされていません。