Вступление
Nginx является одним из ведущих веб-серверов в активном использовании. Он и его коммерческое издание Nginx Plus разработаны Nginx, Inc.
В этом руководстве вы узнаете, как ограничить доступ к веб-сайту на платформе Nginx, используя базовый метод аутентификации HTTP в Ubuntu 14.04. Базовая аутентификация HTTP - это простой метод аутентификации по имени пользователя и паролю.
Предпосылки
Для завершения этого урока вам понадобится следующее:
-
Одна капля CentOS 7 с пользователем не-root sudo, которую вы можете настроить, следуя this руководство по начальной настройке сервера .
-
Nginx установлен и настроен на вашем сервере, что вы можете сделать, следуя https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7 такому руководству по установке Nginx].
Шаг 1 - Установка инструментов HTTPD
Вам потребуется команда + htpassword +
для настройки пароля, который ограничит доступ к целевому веб-сайту. Эта команда является частью пакета + httpd-tools +
, поэтому первым шагом является установка этого пакета.
sudo yum install -y httpd-tools
Шаг 2. Настройка учетных данных для базовой аутентификации HTTP
На этом шаге вы создадите пароль для пользователя, работающего с сайтом.
Этот пароль и соответствующее имя пользователя будут сохранены в указанном вами файле. Пароль будет зашифрован, а имя файла может быть любым. Здесь мы используем файл + / etc / nginx / .htpasswd +
и имя пользователя * nginx *.
Чтобы создать пароль, выполните следующую команду.
sudo htpasswd -c /etc/nginx/.htpasswd nginx
Вы можете проверить содержимое вновь созданного файла, чтобы увидеть имя пользователя и хешированный пароль.
cat /etc/nginx/.htpasswd
Пример /etc/nginx/.htpasswd
nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/
Шаг 3 - Обновление конфигурации Nginx
Теперь, когда вы создали учетные данные базовой аутентификации HTTP, следующий шаг - обновить конфигурацию Nginx для целевого веб-сайта, чтобы использовать его.
Базовая аутентификация HTTP возможна благодаря директивам + auth_basic +
и + auth_basic_user_file +
. Значение + auth_basic +
- любая строка, которая будет отображаться в приглашении для аутентификации; значение + auth_basic_user_file +
- это путь к файлу паролей, который был создан на шаге 2.
Обе директивы должны находиться в файле конфигурации целевого сайта, который обычно находится в каталоге + / etc / nginx / +
. Откройте этот файл, используя + nano +
или ваш любимый текстовый редактор.
sudo nano /etc/nginx/nginx.conf
В разделе * server * добавьте обе директивы:
/etc/nginx/nginx.conf
. . .
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
. . .
Сохраните и закройте файл.
Шаг 4 - Тестирование установки
Чтобы применить изменения, сначала перезагрузите Nginx.
sudo systemctl reload nginx
Теперь попробуйте зайти на только что защищенный веб-сайт, перейдя по ссылке + http: /// +
в своем любимом браузере. Вам должно быть представлено окно аутентификации (в котором указано «Частная собственность», строка, которую мы установили для + auth_basic +
), и вы не сможете получить доступ к веб-сайту, пока не введете правильные учетные данные. Если вы введете имя пользователя и пароль, которые вы установили, вы увидите домашнюю страницу Nginx по умолчанию.
Заключение
Вы только что выполнили основное ограничение доступа к веб-сайту Nginx. Дополнительную информацию об этом методе и других средствах ограничения доступа можно получить по адресу in в документации Nginx.