nginx: директива «разрешить» в условии if

#nginx #nginx-config

#nginx #nginx-config

Вопрос:

Мое веб-приложение загружает разные представления на основе поддоменов, а поддомены являются динамическими, поэтому я запускаю конфигурацию virtualhost следующим образом:

 server {
listen                       443 ssl http2 default_server;
server_name                   ~^(?<subdomain>. ).test.com$;
add_header                   Strict-Transport-Security "max-age=31536000; includeSubdomains;";
...
}
 

Позже в директиве сервера я указываю управление доступом:

   location / {
    root                       /usr/share/webapp/;
    index                      /index.html;
    try_files                  $uri $uri/ =404;
    allow                      my.ip.sub.net/24;
    deny                       all;
  }
 

Теперь я хочу публично раскрыть некоторые поддомены. Попытка этого:

   location / {
    root                       /usr/share/webapp/;
    index                      /index.html;
    try_files                  $uri $uri/ =404;
    allow                      my.ip.sub.net/24;
    if ($subdomain = publicenv) {
      allow                       all;
    }
    deny                        all;
  }
 

выдает мне это сообщение об ошибке:

 nginx: [emerg] "allow" directive is not allowed here in /etc/nginx/conf.d/https.conf:119
 

Возможно ли вообще динамически загружать параметры белого списка на основе переменной?