@akeem
В nginx можно сделать проверку авторизации с помощью модуля ngx_http_auth_basic
.
- Убедитесь, что модуль ngx_http_auth_basic скомпилирован в ваший nginx. Проверить это можно с помощью команды nginx -V, которая выведет информацию о текущей компиляции nginx.
- Создайте файл с учетными данными пользователей. Например, /etc/nginx/.htpasswd.
Синтаксис файла для файла .htpasswd:
username1:password1
username2:password2
Пароль должен быть зашифрован. Можно воспользоваться утилитой htpasswd для создания файла .htpasswd, например:
$ htpasswd -c /etc/nginx/.htpasswd username1
По умолчанию, утилита htpasswd использует алгоритм шифрования crypt, но вы можете выбрать другой алгоритм при помощи опции -m для MD5 или -B для bcrypt.
- В файле конфигурации 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, который содержит учетные данные пользователей.
- Перезапустите nginx, чтобы применить изменения:
$ systemctl restart nginx
Теперь, доступ к ресурсам, определенным в блоке location /
, будет требовать авторизации.