Nginx – мощный и универсальный веб-сервер, известный своей эффективностью и способностью одновременно обслуживать тысячи запросов при минимальной нагрузке на системные ресурсы благодаря архитектуре на основе событий. Nginx широко используется для доставки статического контента, проксирования HTTP-запросов и управления SSL/HTTPS-соединениями. Благодаря модульной структуре и гибкости конфигурации Nginx стал популярным выбором для многих веб-приложений и серверных архитектур. В настоящей статье попробуем разобраться, как производится настройка виртуального хоста Nginx на виртуальном выделенном сервере, работающем на Debian 12.
Установка Nginx на Debian 12
Перед установкой нового софта обновите список пакетов и их версий из репозиториев для того, чтобы система имела актуальную информацию о доступных версиях приложений:
$ sudo apt update
Следующей командой установите непосредственно Nginx:
$ sudo apt install nginx
Чтобы открыть доступ к страницам сайта, который будет работать на Nginx, необходимо добавить разрешающее правило в брандмауэр UFW. В UFW есть настроенные предопределённые правила для доступных профилей приложений. Список данных профилей можно вывести, выполнив команду:
$ sudo ufw app list
За доступ к веб-сайту на Nginx по протоколу HTTP отвечает правило, профиль которого называется Nginx HTTP
. Добавление разрешающего правила для данного профиля выполняется командой:
$ sudo ufw allow 'Nginx HTTP'
Для просмотра действующих правил брандмауэра выведите их список при помощи команды:
$ sudo ufw status
Необходимо убедиться, что разрешающие правила для Nginx HTTP
присутствуют в списке.
Вывод информации о состоянии самой службы Nginx можно осуществить при помощи инструкции:
$ systemctl status nginx
На данном этапе вы уже можете открыть тестовую страницу Nginx. Для чего запустите браузер и перейдите по пути вида http://X.X.X.X
, где вместо X.X.X.X
используйте IP-адрес вашего VPS.
Настройка виртуального хоста Nginx на Debian 12
Для запуска страницы на Nginx создайте каталог для файлов и директорий веб-сайта. В нашем примере мы используем vash-domain.ru
в качестве доменного имени тестового сайта:
$ sudo mkdir -p /var/www/vash-domain.ru/html
Чтобы предоставить своему текущему пользователю права на управление файлами в созданной директории, измените владельца и группу для всех файлов и папок в ней:
$ sudo chown -R $USER:$USER /var/www/vash-domain.ru/html
После чего установите права доступа к каталогу /var/www/vash-domain.ru/html/
, чтобы он был доступен для чтения веб-сервером. При этом файлы в данном каталоге будут защищены от изменения другими пользователями.
$ sudo chmod -R 755 /var/www/vash-domain.ru
Теперь создайте файл стартовой страницы сайта index.html
:
$ sudo nano /var/www/vash-domain.ru/html/index.html
Затем наполните его содержимым. В нашем примере мы используем следующую HTML-разметку:
<html>
<head>
<title>Your website on Nginx!</title>
</head>
<body>
<h1>VASH-DOMAIN.RU</h1>
<p>This is the start page of your website.</p>
</body>
</html>
Сохраните внесённые изменения и закройте файл.
На следующем этапе необходимо создать файл конфигурации для виртуального хоста. Этот файл должен содержать настройки, которые определяют, как сервер должен обрабатывать запросы, поступающие на домен.
$ sudo nano /etc/nginx/sites-available/vash-domain.ru
В данный файл добавьте следующее содержимое, имея в виду, что его необходимо соотнести с названием вашего веб-сайта:
server
{
listen 80;
listen [::]:80;
root /var/www/vash-domain.ru/html;
index index.html index.htm index.nginx-debian.html;
server_name vash-domain.ru www.vash-domain.ru;
location /
{
try_files $uri $uri/ =404;
}
}
После того, как вы закончите редактирование файла, закройте его с сохранением внесённых изменений.
Затем создайте ссылку, которая будет указывать на файл конфигурации vash-domain.ru
в директории sites-enabled
. Это позволит Nginx использовать этот конфигурационный файл для обработки запросов, сделав сайт активным.
$ sudo ln -s /etc/nginx/sites-available/vash-domain.ru /etc/nginx/sites-enabled/
Также отредактируйте файл nginx.conf
, расположенный в директории /etc/nginx/
:
$ sudo nano /etc/nginx/nginx.conf
В нём найдите строку server_names_hash_bucket_size
и удалите в её начале символ #
, чтобы лишить строку статуса комментария. Данный параметр позволяет обеспечить стабильную работу Nginx при наличии длинных или сложных имён серверов.
Далее запустите проверку синтаксиса конфигурации Nginx:
$ sudo nginx -t
Если Nginx работает корректно, вывод команды будет выглядеть как на скриншоте ниже:
Если ошибок нет, перезапустите службу Nginx:
$ sudo systemctl restart nginx
И, наконец, запустите браузер и перейдите на страницу веб-сайта. В нашем примере адрес сайта выглядит как http://vash-domain.ru
.
Таким образом, мы установили и запустили на виртуальном выделенном сервере веб-сервер Nginx, открыв доступ к работающим на нём ресурсам по протоколу HTTP. Также на установленном веб-сервере мы разместили страницу сайта и проверили её доступность через браузер.