NGINX позволяет вам настроить базовую HTTP-аутентификацию на вашем веб-сайте, что позволяет вам ограничить доступ к одной или нескольким страницам вашего веб-сайта, используя простое имя пользователя и пароль. Вы можете использовать этот метод для защиты http, сервера или даже блокировки местоположения. Вы можете использовать его для защиты виртуальных хостов, веб-сайтов или конфиденциальных страниц вашего веб-сайта, таких как страницы администрирования. В этой статье мы рассмотрим, как настроить базовую аутентификацию в NGINX.
Как настроить базовую аутентификацию в NGINX
Вот шаги по настройке базовой аутентификации в NGINX.
- Установите утилиты Apache
Нам нужно использовать утилиту htpasswd для настройки базовой аутентификации. Для этого нам нужно установить apache2-utils или httpd-tools. Откройте терминал и выполните следующую команду
- Создайте пользователя/пароль
Затем запустите команду htpasswd, чтобы создать пользователя, которому будет предоставлен доступ к вашему веб-сайту.
# htpasswd -c /etc/nginx/conf.d/.htpasswd developer
Мы используем опцию -c, чтобы указать местоположение файла паролей. Когда вы нажмете Enter, вам будет предложено ввести пароль.
Например, когда мы создаем другого пользователя, мы не указываем расположение файла паролей.
# htpasswd /etc/nginx/conf.d/.htpasswd user
3. Откройте файл конфигурации NGINX
Откройте терминал и выполните следующую команду, чтобы открыть файл конфигурации сервера NGINX.
$ sudo vi /etc/nginx/nginx.conf
Если вы настроили отдельные виртуальные хосты для своего веб-сайта (например, www.example.com), например /etc/nginx/sites-enabled/website.conf, откройте его конфигурацию с помощью следующей команды.
$ sudo vi /etc/nginx/sites-enabled/website.conf
Или вы также можете открыть файл конфигурации виртуального хоста по умолчанию.
$ sudo vi /etc/nginx/sites-enabled/default
4. Защита NGINX паролем
Чтобы защитить паролем ваш веб-сайт или определенные веб-страницы, нам необходимо использовать директивы auth_basic и auth_basic_user_file в конфигурации сервера NGINX.
Например, если вы хотите настроить базовую аутентификацию для виртуальных хостов (весь блок http), добавьте две вышеуказанные директивы, как показано ниже, в блок http.
http{
...
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
...
}
В приведенном выше коде мы указываем путь к файлу паролей в директиве auth_basic_user_file и сообщение, которое будет отображаться в директиве auth_basic.
Аналогично, вот код для защиты блокировки сервера, то есть реализации базовой аутентификации для веб-сайта или домена.
server{
...
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
...
}
Вы также можете настроить базовую аутентификацию для определенных веб-страниц/подкаталогов (например, /admin), добавив директивы auth_basic и auth_basic_user_file в блок location.
location /admin/ {
...
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
...
}
5. Перезапустите сервер NGINX.
Запустите следующую команду, чтобы проверить синтаксис обновленного файла конфигурации.
$ sudo nginx -t
Если ошибок нет, выполните следующую команду, чтобы перезапустить сервер NGINX.
$ sudo service nginx reload #debian/ubuntu
$ systemctl restart nginx #redhat/centos
6. Проверьте базовую аутентификацию.
Откройте браузер и посетите URL-адрес (например, www.example.com/admin), который вы защитили. Вы должны увидеть экран аутентификации, как показано ниже.
