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