Включаем авторизацию в nginx | Zhbert’s Home
Zhbert's Home
Домашняя страничка Zhbert'а

Включаем авторизацию в nginx

СТАТЬИ / АДМИНИСТРИРОВАНИЕ / ВКЛЮЧАЕМ АВТОРИЗАЦИЮ В NGINX


Nginx – классная штука. Например, если нужно раскидывать запросы по разным ресурсам на одной машине, то nginx в режиме реверс-прокси, это самое то, что нужно.

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

Генерируем пароль и юзера, под которыми будет осуществляться вход.

Сначала нужно поставить утилиты командной строки apache. Для Ubuntu и ей подобных это будет как-то так:

sudo apt install apache2-utils

Теперь генерим пароль:

sudo htpasswd -c /etc/nginx/htpasswd admin

Имя пользователя может быть любым, тем, которое будет использоваться для входа.

Система спросит у вас новый пароль:

$ sudo htpasswd -c /etc/nginx/htpasswd admin
New password:
Re-type new password:
Adding password for user admin

В файле будет сохранена хэш-сумма пароля, а не сам пароль! Но все равно пользоваться такой авторизацией без нормального шифрования по HTTPS не стоит!

Все готово.

Настраиваем nginx

Теперь осталось только сказать серверу, чтобы он запрашивал пароль при обращении на конкретный адрес.

Для этого в разделе location задаем ему требование пароля:

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;

Перезапускаем nginx.

Теперь при переходе на адрес будет запрошены логин и пароль.

А еще к ним можно прикрутить fail2ban, чтобы блокировать попытки взлома.