Как поставить пароль на сайт или каталог в Nginx
- AJIekceu4
- 15.04.2019
- 13 450
- 0
- 9
- 9
- 0
В тех случаях, когда необходимо закрыть паролем доступ ко всему сайту целиком или же к определенной его части. Например, к каталогу с определенными материалами, phpmyadmin и так далее, необходимо в вебсервере Nginx настроить базовую аутентификацию.
Создаем файл с паролями
С помощью htpasswd
Для этого, устанавливаем следующий пакет:
sudo apt-get install apache2-utils
После чего, создаем файл с паролем .htpasswd:
sudo htpasswd -c /etc/nginx/.htpasswd sysadmin
/etc/nginx/.htpasswd
- это путь к файлу авторизации
sysadmin
- это имя пользователя
После ввода данной команды, вам нужно будет напечатать желаемый пароль в консоли и подтвердить его еще раз.
В результате будет создан файл .htpasswd содержащий в себе логин и хеш пароля (в нашем примере это пароль 12345). Вот его содержимое:
sysadmin:$apr1$OAhXelmi$Q7y4E4cYfB/ABQc.c9yhY/
С помощью онлайн инструментов
Если вы не хотите устанавливать дополнительный софт, то можно создать файл воспользовавшись онлайн сервисом, например этим:
http://www.htaccesstools.com/htpasswd-generator/
Вводим туда необходимые данные:
- username - желаемое имя пользователя
- password - желаемый пароль
И жмем кнопку Create .htpasswd file
В результате получаем аналогичную с предыдущим пунктом строку, содержащую в себе логин и хеш пароля. Далее необходимо создать файл /etc/nginx/.htpasswd
и вставить в него эту строку, которую нам сформировал сайт.
Закрываем паролем доступ к определенному каталогу
Для того, чтобы закрыть доступ только к определенному каталогу сайта, необходимо в конфиг nginx (по умолчанию он находится в /etc/nginx/sites-available/default.conf
), внести следующие строки:
location ^~ /phpMyAdmin {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
...
}
После внесенных изменений, сохраняем файл и применяем новые для Nginx настройки командой:
sudo service nginx reload
Таким образом, при попытке обратиться к каталогу phpMyAdmin на вашем сайте, будет выведено сообщение "Restricted" и форма для ввода логина и пароля.
Закрываем паролем доступ к сайту целиком
Если же необходимо закрыть доступ к сайту целиком, чтобы посещать его могли только те, кто имеет логин и пароль, то необходимо внести следующие изменения в конфиг Nginx (по умолчанию он находится в /etc/nginx/sites-available/default.conf
):
location /
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
...
}
После внесенных изменений, сохраняем файл и применяем новые для Nginx настройки командой:
sudo service nginx reload
После этого, при попытке открыть любую страницу вашего сайта, должно будет появиться окошко с надписью "Restricted" и формой для ввода логина и пароля.
Добавить комментарий