====== Базовая аутентификация в 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://ваш_домен
Браузер должен запросить имя пользователя и пароль. Если вы введете данные, указанные на этапе генерации (''%%имя_пользователя%%'' и ''%%ваш_пароль%%''), доступ к ресурсу будет разрешен.