Используя директивы auth_basic и auth_basic_user_file, можно ограничить доступ ко всему серверу, сайту, каталогу или любому URL по маске, с авторизацией по протоколу "HTTP Basic Authentication".
Формат файла со списком логинов и паролей такой же, как в Apache. Создание такого файла утилитой htpasswd подробно описано на странице: Apache: Простое ограничение доступа по паролю.
Добавьте в нужную секцию файла конфигурации две директивы:
location /admin/ { auth_basic "Admin Zone"; auth_basic_user_file /var/www/example.com/admin/.htpasswd; }
auth_basic задает имя ресурса (realm), которое будет показано посетителю в окне ввода пароля. auth_basic_user_file — путь к файлу с логинами и паролями. Данные из файла считываются заново при каждом обращении посетителя к ресурсу.
Если необходимо, чтобы файл с паролями находился в каталоге, доступном посетителям, скрыть его от всех можно следующим кодом:
server { listen 80; server_name example.com; location / { ... } location ~ /\.ht { deny all; } }
Этот код скроет от посетителя все файлы, начинающиеся с ".ht", так же, как в конфигурации Apache по умолчанию.