Защита директорий паролем в VestaCP Nginx + Apache
Иногда возникает необходимость защитить определенные директории паролем, чтобы кто попало не лазил с намерениями брутфорса паролей в админку и т.п.
Для этого и создан этот небольшой мануал:
cd /home/{user}/conf/web
если файл .htaccess отсутствует:
touch .htpasswd
Добавляем в файл .htaccess новую пару логин пароль:
htpasswd -b .htpasswd username password
Если система ругается на отсутствие команды htpasswd, установите apache2-utils:
apt-get install apache2-utils
Далее создаем конфиг нашей защищенной директории:
touch nginx.you_site.ru.conf_restricted
и записываем в него этот код:
location ^~ /administrator/ {
auth_basic "Restricted Area";
auth_basic_user_file /home/{user}/conf/web/.htpasswd;
proxy_pass http://XXX.XXX.XXX.XXX:8080;
}
где {user} - заменить на реальное имя пользователя,
XXX.XXX.XXX.XXX - IP адрес сервера, который слушает апач. (если ваш сервер работает без апача, эта строка не нужна)
Если на сайте используется https, нужно добавить еще один файл:
touch snginx.you_site.ru.conf_restricted
location ^~ /administrator/ {
auth_basic "Restricted Area";
auth_basic_user_file /home/{user}/conf/web/.htpasswd;
proxy_pass https://XXX.XXX.XXX.XXX:8443;
}
Рестартуем nginx:
service nginx restart