Nginx и HTTP Auth basic

Редактируем файл /etc/nginx/nginx.conf и в секции location добавляем такие строки:

location / {
auth_basic "Hello! Enter password";
auth_basic_user_file /etc/nginx/nginx.htpasswd;
}
  • auth_basic - указываем на включение режима http авторизации;
  • auth_basic_user_file - указываем пусть к файлу с паролями.

Файл с паролями имеет следующий синтаксис:

# комментарий
логин1:пароль1
логин2:пароль2:комментарий

Пароли хранятся в зашифрованном виде. Nginx поддерживает три типа шифрования: стандартный crypt, апачевский метод и md5. Генерировать пароль можно либо через утилиту htpasswd из пакета Apache, либо через openssl.

Стандартный метод nginx:

openssl passwd -crypt PASSWORD

Метод Apache2:

openssl passwd -apr1 PASSWORD
htpasswd -c /etc/nginx/nginx.htpasswd admin

md5 метод:

openssl passwd -1 PASSWORD

Если необходимо на какой-то суб-директории отключить авторизацию, то вместо пригласительного текста пишем off:

location /api/ {
auth_basic off;
}

Источники: