Даже если вы ещё не знаете что такое Basic Auth, вы наверняка уже с ней сталкивались, например, при входе в интерфейс настройки роутера. Это механизм авторизации по имени пользователя и паролю на уровне веб-сервера. Такая авторизация поддерживается и в Apache и в Nginx.
В этой статье мы разберемся как настроить Basic Auth Nginx, для определённого маршрута или для всего сайта.
Настройка Basic Auth в Nginx
Окно авторизации Basic Auth выглядит вот так:
Думаю теперь вы знаете о чём идёт речь. Такую авторизацию можно настроить для определённого URL, для всего сайта или для всех сайтов. Но сначала надо создать файл со списком пользователей и паролей. Для этого используется утилита htpasswd. Синтаксис у команды такой:
$ sudo htpasswd -c /путь/к/файлу имя_пользователя
Опция -c используется для создания нового файла, для редактирования уже существующих её использовать не надо. Например:
sudo htpasswd -c /etc/nginx/auth.basic admin
Утилита два раза спросит пароль. Пароль вводится но не отображается. Это так должно быть для безопасности. После того, как файл будет создан можно переходить к настройке Nginx.
Для того чтобы защитить паролем все ваши сайты просто добавьте эти директиву в секцию http файла /etc/nginx/nginx.conf:
Для защиты только определённой URL добавьте эти же директивы в нужный блок location. Например для /wp-admin/admin-ajax.php:
Для WordPress такой location лучше размещать вложенным в location /. Тогда будут работать все правила описанные там, плюс ваше на защиту доступа. Если же наоборот надо разрешить доступ для определённого location то директива будут выглядеть так auth_basic "off". Например:
Здесь разместить этот блок location вложенным уже не получиться, поэтому следует добавить в него обработку php иначе веб-сервер просто предложит пользователям скачать php скрипт, к которому они обращаются.
Выводы
Как видите, авторизация по паролю nginx настраивется не так уж сложно, надо только правильно сформулировать блок location. Если у вас остались вопросы, спрашивайте в комментариях!
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали










В статье вы создаете файл /etc/nginx/basic.auth, а прописываете в конфиге nginx /etc/nginx/auth.basic
Это не ошибка?
Ошибка
Ну тогда исправлять нужно. Чё вводить людей в заблуждение то?
Добрый день . Linux Mint 17.1 мне нравитСЯ с него начал изучать платформу . Скоро прийду к вам для этого мне бы помощь надо оказать) Если есть желающие поддержать пишите на почту или в телеграм . С Уважением за ваш труд Сергей Цабий . Открыт для общения как и Linux)
а где скачать это
ну это программу
nginx.com
А как исключить например директорию на сайте при авторизации по паролю, с учетом того, что веб-сервер работает только на Nginx?
Есть варианты?