Поиск по сайту:

Как настроить 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. Подсказка не позволяет вам получить доступ к веб-сайту, пока вы не введете правильные учетные данные.