HTTP-аутентификация — это простой и надежный способ защиты конфиденциального содержимого от неавторизованных пользователей. В этой статье мы расскажем вам, как настроить базовую HTTP-аутентификацию на сервере NGINX, работающем под управлением Ubuntu и CentOS.
Предварительные условия
- Сервер Ubuntu 16.04, 18.04, 20.04 или 22.04 LTS / CentOS версии 6, 7 или 8 с пользователем, не являющимся пользователем root, с привилегиями sudo.
- На сервере установлен NGINX. Если вам нужна помощь в установке NGINX, вы можете следовать этому руководству по установке.
Шаг 1: Создание файла аутентификации
Мы начнем с создания файла аутентификации. Этот файл будет содержать комбинации имени пользователя и пароля, которые будут использоваться для аутентификации.
Сначала создайте файл аутентификации с комбинациями имен пользователей и паролей. Замените username
на имя пользователя, которое вы хотите использовать, и password
с соответствующим паролем:
$ sudo htpasswd -c /etc/nginx/.htpasswd username
При появлении запроса введите желаемый пароль для имени пользователя:
Password: password
Verifying - Password: password
Повторите описанные выше действия для каждой комбинации имени пользователя и пароля, которую вы хотите добавить.
Шаг 2: Настройте NGINX
Теперь мы можем настроить NGINX на использование созданного нами файла аутентификации.
Сначала откройте файл конфигурации NGINX в текстовом редакторе:
$ sudo nano /etc/nginx/sites-available/default
Конфигурационный файл по умолчанию содержит server
блок, который выглядит следующим образом:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
Мы добавим auth_basic
директиву к location
блок. Эта директива укажет NGINX использовать наш файл аутентификации для проверки подлинности. Блок location
блок теперь должен выглядеть следующим образом:
location / {
try_files $uri $uri/ =404;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Когда вы закончите, сохраните и закройте файл.
Шаг 3: Проверьте конфигурацию
Теперь, когда мы настроили NGINX на использование базовой HTTP-аутентификации, мы можем протестировать конфигурацию.
Сначала убедитесь, что в конфигурационном файле нет синтаксических ошибок:
$ sudo nginx -t
Если синтаксических ошибок нет, перезапустите NGINX, чтобы применить изменения:
$ sudo systemctl restart nginx
В заключение хочу сказать, что при доступе к информации, защищенной аутентификацией, вам будет предложено ввести имя пользователя и пароль.

Заключение
В этой статье мы показали, как настроить базовую HTTP-аутентификацию на сервере NGINX, работающем на Ubuntu или CentOS. Это простой и надежный способ защитить конфиденциальный контент от неавторизованных пользователей.