Как настроить HTTP-аутентификацию с помощью Nginx в Ubuntu 12.10
Что означает красный цвет
Строки, которые пользователь должен ввести или настроить, будут выделены красным цветом в этом руководстве! Остальное в основном должно быть доступно для копирования и вставки.
О Nginx
Nginx (произносится как движок x) — это HTTP и обратный прокси-сервер, а также почтовый прокси-сервер, написанный Игорем Сысоевым, который является гибкой и легкой программой по сравнению с apache. Официальная документация по nginx находится здесь.
Предпосылки
В качестве предварительного условия мы предполагаем, что вы ознакомились со статьей о том, как настроить свой VPS, а также установили на нем Nginx. Если нет, вы можете найти статью по настройке VPS в разделе Установка nginx в нашем сообществе.
Шаг 1: Утилиты Apache
Нам нужен htpasswd для создания и генерации зашифрованного для пользователя, использующего обычную аутентификацию. Установите apache2-utils с помощью приведенной ниже команды.
sudo apt-get install apache2-utils
Шаг 2: Создайте пользователя и пароль
Создайте файл .htpasswd в каталоге вашего веб-сайта, обслуживаемом nginx. Следующая команда создаст файл, а также добавит в него пользователя и зашифрованный пароль.
sudo htpasswd -c /etc/nginx/.htpasswd exampleuser
Инструмент запросит у вас пароль.
New password: Re-type new password: Adding password for user exampleuser
Структура файла htpasswd будет такой:
login:password
Обратите внимание, что этот htpasswd должен быть доступен для учетной записи пользователя, под которой работает Nginx.
Шаг 3. Обновите конфигурацию Nginx.
Ваш файл конфигурации nginx для веб-сайта должен находиться в папке /etc/nginx/sites-available/. Добавьте две записи ниже для пути к домену, который вы хотите защитить.
auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd;
Вторая строка — это расположение файла htpasswd для вашего сайта.
Например, предположим, что наш файл конфигурации nginx — это /etc/nginx/sites-available/website_nginx.conf, откройте файл с помощью vi или любого редактора по вашему выбору.
sudo vi /etc/nginx/sites-available/website_nginx.conf
Затем добавьте две строки в следующий путь:
server { listen portnumber; server_name ip_address; location / { root /var/www/mywebsite.com; index index.html index.htm; auth_basic "Restricted"; #For Basic Auth auth_basic_user_file /etc/nginx/.htpasswd; #For Basic Auth } }
Шаг 4: Перезагрузите Nginx
Чтобы отразить изменения на нашем веб-сайте, перезагрузите конфигурацию nginx и попробуйте получить доступ к домену, защищенному с помощью базовой аутентификации.
$ sudo /etc/init.d/nginx reload * Reloading nginx configuration...
Теперь попробуйте получить доступ к вашему веб-сайту или защищенному доменному пути, и вы увидите приглашение браузера, в котором вас попросят ввести логин и пароль. Введите данные, которые вы использовали при создании файла .htpasswd. Подсказка не позволяет вам получить доступ к веб-сайту, пока вы не введете правильные учетные данные.