Как в nginx сделать проверку авторизации?

Пользователь

от akeem , в категории: Другие , 7 месяцев назад

Как в nginx сделать проверку авторизации?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jaylen.trantow , 7 месяцев назад

@akeem 

В nginx можно сделать проверку авторизации с помощью модуля ngx_http_auth_basic.

  1. Убедитесь, что модуль ngx_http_auth_basic скомпилирован в ваший nginx. Проверить это можно с помощью команды nginx -V, которая выведет информацию о текущей компиляции nginx.
  2. Создайте файл с учетными данными пользователей. Например, /etc/nginx/.htpasswd. Синтаксис файла для файла .htpasswd: username1:password1 username2:password2 Пароль должен быть зашифрован. Можно воспользоваться утилитой htpasswd для создания файла .htpasswd, например: $ htpasswd -c /etc/nginx/.htpasswd username1 По умолчанию, утилита htpasswd использует алгоритм шифрования crypt, но вы можете выбрать другой алгоритм при помощи опции -m для MD5 или -B для bcrypt.
  3. В файле конфигурации nginx (/etc/nginx/nginx.conf или /etc/nginx/conf.d/default.conf), добавьте следующий блок в секцию server { ... }: server { ... location / { auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd; # ваш настраиваемый код } ... } Где: auth_basic - текстовое описание сообщения авторизации, которое будет отображаться в окне авторизации браузера. auth_basic_user_file - путь к файлу .htpasswd, который содержит учетные данные пользователей.
  4. Перезапустите nginx, чтобы применить изменения: $ systemctl restart nginx


Теперь, доступ к ресурсам, определенным в блоке location /, будет требовать авторизации.