Для чего это нужно

К примеру, Вы хотите разместить статический билд клиентского Web приложения на некоем ресурсе и хотите закрыть доступ к этой странице всем, кроме тех кто введет логин и пароль. Такой инстанс можно назвать Staging и он явно должен быть не для всех.

Шаг 1. Конфигурация

cd /etc/nginx/conf.d/
sudo nano 50-pravosleva.pro.conf

Изменение части конфигурации

location /dist.project-1 {
  index index.html;
  root /root/projects; # NOTE: В моем случае, это директория с билдами проектов
  autoindex on;

  auth_basic "Administrator’s Area";
  auth_basic_user_file /var/www/html/.htpasswd;
}

Подробнее о настройке инфраструктуры, которую я использую для простого примера

Шаг 2. Файл-хранилище хэшей паролей

В моем случае потребовалось это:

apt install apache2-utils

Как проверить:

htpasswd -v

Где-нибудь в каталоге создаем файл-хранилище

cd /var/www/html
htpasswd -c ./.htpasswd tester

Далее программа спросит пароль и его подтверждение

Шаг 3. Перезапуск Web сервера NGINX

sudo systemctl reload nginx

Шаг 4. Добавить пользователя

Чтобы добавить нового пользователя или изменить пароль существующего в файле .htpasswd, используйте утилиту htpasswd без флага -c

htpasswd /path/to/.htpasswd username
  • /path/to/.htpasswd — абсолютный или относительный путь к существующему файлу.
  • username — имя пользователя, которого нужно добавить (или обновить).

После выполнения система попросит дважды ввести пароль для этого пользователя.

Важно: Не используйте флаг -c (htpasswd -c), так как он перезапишет (очистит) существующий файл и создаст его заново