Nginx — легковесный, по сравнению с Apache, HTTP, обратный прокси сервер написанный Igor Sysoe. Официальную документацию к Nginx вы найдете здесь.
Прежде чем начать
Для начала я полагаю, что вы создали свой VPS сервер и установили на него Nginx. Если же вы этого еще не сделали, то статья по начальной настройке сервера поможет вам настроить свой VPS сервер, а информация по установке Nginx вы найдете в нашем сообществе.
Шаг 1: Утилиты Apache
Для создания шифрованных паролей для базовой аутентификации нам понадобится htpasswd
. Для этого установим apache2-utils
:
sudo apt-get install apache2-utils
Шаг 2: Создание пользователя и пароля
Создайте файл .htpasswd
в корневом каталоге своего сайта. При помощи следующей команды вы сможете не только создать этот файл, но и указать нового пользователя и его пароль:
sudo htpasswd -c /etc/nginx/.htpasswd exampleuser
Утилита запросить желаемый пароль.
New password:
Re-type new password:
Adding password for user exampleuser
Файл .htpasswd
выглядит следующим образом:
login: password
Обратите внимание, что файл должен быть доступен для чтения пользователю, под которым запущен Nginx.
Шаг 3: обновление настройки nginx
Файл настроек вашего сайта должен располагаться в /etc/nginx/sites-available/
. Добавьте следующие строки для защищаемого домена:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
Во второй строке вы указываете путь к файлу .htpasswd
.
Например, допустим что файл настроек сайта лежит в /etc/nginx/sites-availabe/website_nginx.conf
, откроем его при помощи nano
или любого другого текстового редактора:
sudo nano /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
Чтобы изменения вступили в силу мы должны перезагрузить сервер. После чего попробуйте открыть страницу на вашем домене и проверьте была ли активирована базовая аутентификация.
$ sudo /etc/init.d/nginx reload
* Reloading nginx configuration...
Вы должны увидеть запрос на ввод идентификационных данных. Используйте логин и пароль, который вы указали при создании файла .htpasswd
. Пока вы не введете корректные данные вы не получите доступ к сайту.
Вот и все! Теперь все пути вашего домена защищены при помощи базовой аутентификации nginx.