Как настроить базовую HTTP-аутентификацию на NGINX

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

В заключение хочу сказать, что при доступе к информации, защищенной аутентификацией, вам будет предложено ввести имя пользователя и пароль.

аутентификация по паролю с помощью nginx auth passwd

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *