Site icon 8HOST.COM

Настройка HTTP-авторизации Nginx в Ubuntu 12.10

Что такое Nginx?

Nginx – это гибкий обратный прокси-сервер HTTP, а также почтовый прокси-сервер, более легкий, чем сервер Apache. Официальную документацию Nginx можно найти здесь.

Что значит красный цвет?

Строки, выделенные красным, нужно ввести или отредактировать самостоятельно. Остальное можно просто скопировать и вставить.

Требования

Для выполнения данного руководства необходимо выполнить начальную настройку VPS, а также установить Nginx. Чтобы получить инструкции, читайте следующие статьи:

1: Утилиты Apache

Для создания и шифрования паролей Basic Authentication понадобится .htpasswd. Чтобы получить доступ к этой утилите, установите apache2-utils:

sudo apt-get install apache2-utils

2: Создание пользователя и пароля

Создайте файл .htpasswd в каталоге веб-сайта. Следующая команда создаст нужный файл, а также добавит пользователя и зашифрованный пароль для него.

sudo htpasswd -c /var/www/mywebsite.com/.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 /var/www/mywwebsite.com/.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 /var/www/mywebsite.com/.htpasswd;  #For Basic Auth
}
}

4: Перезапуск Nginx

Чтобы внесенные изменения активировались, нужно перезапустить Nginx, а затем попробовать перейти на свой домен, защищенный с помощью Basic Authentication.

$ sudo /etc/init.d/nginx reload
* Reloading nginx configuration...

Теперь откройте веб-сайт или путь домена, который был защищен. При этом браузер должен попросить ввести логин и пароль. Введите данные, использованные при создании файла .htpasswd. Теперь получить доступ к веб-сайту можно, только указав правильные учетные данные.

Готово! Теперь домен надежно защищен.