мета-данные страницы
Базовая аутентификация в Nginx (htpasswd)
Базовая аутентификация в Nginx (Basic Auth)
Руководство по защите веб-ресурсов или проксируемых путей с помощью связки логин-пароль, используя утилиту htpasswd.
Часть 1: Установка пакетов и генерация пароля
Для создания файла с хешированными паролями нам понадобится утилита htpasswd, которая поставляется вместе с пакетом apache2-utils.
Copy
apt-get update && apt-get install -y apache2-htpasswd
Создайте файл .htpasswd с нужным пользователем и паролем (флаг -b позволяет передать пароль в команде, флаг -c создает новый файл):
Copy
htpasswd -bc /etc/nginx/.htpasswd имя_пользователя 'ваш_пароль'
Файл будет сохранен по пути /etc/nginx/.htpasswd. Пароль внутри файла хранится в зашифрованном виде.
Часть 2: Настройка конфигурации Nginx
Откройте файл конфигурации вашего сайта (прокси или обычного виртуального хоста):
Copy
vim /etc/nginx/sites-available.d/имя_конфига.conf
В блоке server найдите блок location, который вы хотите защитить (например, location /), и добавьте в него директивы аутентификации.
Пример конфигурации:
Copy
server {
server_name ваш_домен;
# ... другие настройки (listen и т.д.) ...
location / {
# ... ваши текущие настройки (например proxy_pass) ...
# Включить аутентификацию и задать отображаемый текст в окне браузера
auth_basic "Restricted Access";
# Указать абсолютный путь к файлу с данными логин/пароль
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Часть 3: Применение настроек и проверка
Чтобы Nginx применил новые правила, перезагрузите его конфигурацию (без остановки текущих соединений):
Copy
systemctl reload nginx
Проверка работы:
Откройте браузер и перейдите по адресу вашего защищенного ресурса:
Copy
http://ваш_домен
Браузер должен запросить имя пользователя и пароль. Если вы введете данные, указанные на этапе генерации (имя_пользователя и ваш_пароль), доступ к ресурсу будет разрешен.