Что такое 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. Теперь получить доступ к веб-сайту можно, только указав правильные учетные данные.
Готово! Теперь домен надежно защищен.