Первым делом заготовим файл, в котором будем хранить перечень ip адресов, для которых будем производить авторизацию. Положим его в /etc/nginx/ipsets/authips.conf
. Собственно его содержимое будет примерно таким:
...
deny 1.1.0.0/19;
deny 2.2.3.0/24;
deny 3.3.3.0/22;
deny 4.4.4.4/32;
...
Для того, чтобы авторизация заработала, нам также надо создать файл, содержащий учётные записи с паролями. Для этого с помощью утилиты htpasswd
(если таковой не нашлось в системе, то доставим её, находится она в пакете apache2-utils: sudo apt install apache2-utils) создаём его:
htpasswd -c /etc/nginx/.htpasswd username
По ходу создания учётной записи, вводим пароль пару раз...
Открываем собственно конфигурационный файл нашего сайта и добавляем в необходимую локацию собственно авторизацию:
...
location /special_place {
...
satisfy any;
include ipsets/authips.conf;
allow all;
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
...
После внесённых правок не забываем перезагрузить nginx: sudo systemctl restart nginx .
Собственно всё, теперь все те, кто перечислен в файле /etc/nginx/ipsets/authips.conf
будут вынуждены производить авторизацию, а все кто не перечислен там - производить авторизацию не нужно...
Комментариев нет:
Отправить комментарий