Настройка виртуального хоста Nginx на Debian 12

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 присутствуют в списке.

Состояние брандмауэра UFW - Настройка виртуального хоста Nginx

Вывод информации о состоянии самой службы Nginx можно осуществить при помощи инструкции:

$ systemctl status nginx

Состояние службы Nginx - Настройка виртуального хоста Nginx

На данном этапе вы уже можете открыть тестовую страницу Nginx. Для чего запустите браузер и перейдите по пути вида http://X.X.X.X, где вместо X.X.X.X используйте IP-адрес вашего VPS.

Тестовая страница Nginx

Настройка виртуального хоста 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

Если ошибок нет, перезапустите службу Nginx:

$ sudo systemctl restart nginx

И, наконец, запустите браузер и перейдите на страницу веб-сайта. В нашем примере адрес сайта выглядит как http://vash-domain.ru.

Стартовая страница веб-сайта, работающего на Nginx

Таким образом, мы установили и запустили на виртуальном выделенном сервере веб-сервер Nginx, открыв доступ к работающим на нём ресурсам по протоколу HTTP. Также на установленном веб-сервере мы разместили страницу сайта и проверили её доступность через браузер.

Вам также может понравиться