Назад | Перейти на главную страницу

настроить nginx для использования необязательного .htpasswd

Привет, участники Serverfault.

Я хочу, чтобы мой NginX использовал дополнительный файл .htpasswd. Причина в том, что моя конфигурация динамически обслуживает веб-контент. На основе $ http_host.

Итак, я пробовал следующее:

if (-f "/foo/$http_host/.htpasswd") {
    auth_basic "Restricted";
    auth_basic_user_file "/foo/$http_host/.htpasswd";
}

Но это не работает, потому что auth_basic не допускается внутри if. Если я использую только две строки auth_basic, он показывает мне 403 для веб-контента без .htpasswd.

Есть ли возможность добиться этого без использования отдельного файла конфигурации для защищенного содержимого?

На стороне nginx это сделать невозможно, потому что nginx auth_basic_user_file не позволяет использовать переменные.