Nginx basic http authentication

Задача: из соображений безопасности настроить виртуальный хост веб-сервера Nginx на вход по логину/паролю.
Генерировать пароль будем утилитой от веб-сервера Apache.
Создадим виртуальный хост

mcedit /etc/nginx/sites-available/scan.reeves.su.conf

Добавим в него необходимые директивы

server {
listen   80;
server_name  scan.reeves.su;
access_log  /var/log/nginx/scan.reeves.su.log;
root   /var/www/scan.reeves.su/;
index  index.html index.htm index.php;
include /etc/nginx/templates/php-fpm.conf;
location / {
auth_basic "Enter PaSsw0rD"; # предложение сервера ввести логин:пароль
auth_basic_user_file /etc/nginx/.htpasswd; # путь к файлу с логином:паролем
}
}

Создадим символьную ссылку

ln -s /etc/nginx/sites-available/scan.reeves.su.conf /etc/nginx/sites-enabled/scan.reeves.su.conf

Создадим директорию где будет лежать сайт

mkdir /var/www/scan.reeves.su

Создадим файл в котором будет лежать логин:пароль

touch /etc/nginx/.htpasswd

Ставим утилиту для генерации пароля

apt-get install apache2-utils

Сгенерируем пароль для пользователя admin и поместим результат в файл /etc/nginx/.htpasswd

htpasswd -c /etc/nginx/.htpasswd admin

Перезапустим веб-сервер Nginx

service nginx restart

Все готово, осталось только положить сайт в папку /var/www/scan.reeves.su/