Home » Настройка серверных блоков (виртуальных хостов) Nginx на Ubuntu 24.04
Настройка серверных блоков (виртуальных хостов) Nginx на Ubuntu 24.04

Настройка серверных блоков (виртуальных хостов) Nginx на Ubuntu 24.04

В этой статье разберёмся, как настроить серверные блоки (виртуальные хосты) Nginx на Ubuntu 24.04. Если ты когда-нибудь пытался поднять несколько сайтов на одном сервере, то точно сталкивался с этим вопросом. Серверные блоки — это не просто “ещё один конфиг”, а ключ к грамотному управлению сайтами, экономии ресурсов и автоматизации. Здесь будет всё: как это работает, как быстро всё настроить, какие грабли могут встретиться и как их обойти. Погнали!

Как это работает? — Серверные блоки Nginx простым языком

Nginx — это не просто веб-сервер, а настоящий швейцарский нож для современных проектов. Серверные блоки (server blocks, aka виртуальные хосты) позволяют запускать на одном сервере сразу несколько сайтов с разными доменами, настройками, SSL-сертификатами и даже разными пользователями.

  • Один сервер — много сайтов: Каждый блок — это отдельный сайт, который Nginx обслуживает по своим правилам.
  • Гибкость: Можно задать разные корневые директории, логи, SSL, редиректы и даже проксировать на разные backend’ы.
  • Изоляция: Ошибки или настройки одного сайта не влияют на остальные.

Всё это реализуется через конфиги в /etc/nginx/sites-available/ и симлинки в /etc/nginx/sites-enabled/. Nginx читает все файлы из enabled, и каждый такой файл — это отдельный серверный блок.

Как быстро и просто всё настроить?

Давай без воды — вот пошаговая инструкция, как поднять два сайта на одном сервере с Ubuntu 24.04 и Nginx.

  1. Установка Nginx

    sudo apt update
    sudo apt install nginx


    Проверь, что всё работает:

    systemctl status nginx
  2. Создание директорий для сайтов

    sudo mkdir -p /var/www/site1.ru/html
    sudo mkdir -p /var/www/site2.ru/html
    sudo chown -R $USER:$USER /var/www/site1.ru/html /var/www/site2.ru/html
    sudo chmod -R 755 /var/www


    Положи туда свои index.html для теста.
  3. Создание серверных блоков

    sudo nano /etc/nginx/sites-available/site1.ru


    Пример конфига для первого сайта:

    
    server {
        listen 80;
        server_name site1.ru www.site1.ru;
    
        root /var/www/site1.ru/html;
        index index.html index.htm;
    
        access_log /var/log/nginx/site1.access.log;
        error_log /var/log/nginx/site1.error.log;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
        

    Аналогично для второго сайта (site2.ru).

  4. Активация серверных блоков

    sudo ln -s /etc/nginx/sites-available/site1.ru /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/site2.ru /etc/nginx/sites-enabled/
  5. Отключение дефолтного блока (по желанию)

    sudo rm /etc/nginx/sites-enabled/default
  6. Проверка конфигов и перезапуск

    sudo nginx -t
    sudo systemctl reload nginx
  7. Настройка DNS
    Убедись, что домены site1.ru и site2.ru смотрят на IP твоего сервера.

Вуаля! Теперь оба сайта работают независимо друг от друга. Если нужно SSL — ставь certbot и получай бесплатные сертификаты.

Примеры, схемы, практические советы

Давай рассмотрим пару кейсов — как делать надо и как делать не стоит.

Кейс Что происходит Рекомендация
Один серверный блок на все сайты Все сайты лежат в одной папке, конфиг один, логи общие. При взломе одного сайта — доступ ко всем. Так делать не стоит. Разделяй каждый сайт отдельным серверным блоком и директорией.
Симлинки руками Забыл создать симлинк — сайт не работает. Перепутал — не тот сайт грузится. Проверяй симлинки и используй nginx -t перед перезапуском.
SSL на каждый сайт Каждый сайт с отдельным сертификатом, отдельными настройками безопасности. Это правильно. Используй certbot для автоматизации.
Автоматизация через скрипты Добавление новых сайтов через bash-скрипт, автоматическое создание директорий, конфигов, симлинков. Идеально для хостинга или частых деплоев. Можно использовать Ansible, bash, или даже Python.

Полный список команд для настройки


# Установка Nginx
sudo apt update
sudo apt install nginx

# Создание директорий для сайтов
sudo mkdir -p /var/www/site1.ru/html
sudo mkdir -p /var/www/site2.ru/html
sudo chown -R $USER:$USER /var/www/site1.ru/html /var/www/site2.ru/html
sudo chmod -R 755 /var/www

# Создание серверных блоков
sudo nano /etc/nginx/sites-available/site1.ru
sudo nano /etc/nginx/sites-available/site2.ru

# Активация серверных блоков
sudo ln -s /etc/nginx/sites-available/site1.ru /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.ru /etc/nginx/sites-enabled/

# Отключение дефолтного блока
sudo rm /etc/nginx/sites-enabled/default

# Проверка конфигов и перезапуск
sudo nginx -t
sudo systemctl reload nginx

# Установка certbot для SSL
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

Похожие решения, программы и утилиты

  • Apache HTTP Server — тоже поддерживает виртуальные хосты, но синтаксис другой и работает медленнее на статике.
  • Caddy — автоматический HTTPS, простой конфиг, но меньше гибкости, чем у Nginx.
  • Lighttpd — лёгкий, но редко используется для сложных проектов.
  • Hitch, HAProxy — для балансировки и SSL-терминации, но не для статики и PHP.

Nginx — золотая середина между скоростью, гибкостью и простотой. Если хочется автоматизации — смотри в сторону Ansible или Terraform для инфраструктуры.

Статистика и сравнение с другими решениями

Сервер Производительность (RPS, статика) Конфигурируемость Автоматизация SSL
Nginx ~30 000+ Высокая Легко Да, через certbot
Apache ~10 000 Очень высокая Средне Да
Caddy ~25 000 Средняя Очень легко Авто-SSL

Nginx — лидер по производительности и гибкости. Не зря его используют Facebook, Netflix, Dropbox, GitHub и куча других крупных проектов.

Интересные факты и нестандартные способы использования

  • Reverse Proxy: Nginx может проксировать запросы к backend-серверам (Node.js, Python, Go, PHP-FPM) и балансировать нагрузку.
  • API Gateway: Можно настроить серверные блоки для разных API, с отдельными лимитами, логами и авторизацией.
  • Static CDN: Используй Nginx как CDN для статики — кешируй, раздавай с разных доменов, минимизируй задержки.
  • Автоматизация деплоя: Скрипты на bash или Ansible позволяют за минуту поднять новый сайт с SSL, логами и мониторингом.
  • Безопасность: Можно изолировать сайты по пользователям, ограничивать доступ по IP, включать WAF (например, ModSecurity).

Новые возможности и автоматизация

С выходом Ubuntu 24.04 и свежих версий Nginx стало ещё проще автоматизировать рутину:

  • systemd: Быстрый рестарт и мониторинг сервисов.
  • certbot с хуками: Автоматическое продление SSL и перезагрузка Nginx.
  • Скрипты для массового деплоя: Можно заскриптовать добавление новых сайтов, создание конфигов, симлинков и даже настройку DNS через API регистраторов.
  • Интеграция с CI/CD: После пуша в git — автоматический деплой сайта и обновление серверного блока.

Это экономит часы времени и снижает риск ошибок. А если хочется совсем “по-взрослому” — используй Ansible для управления сотнями серверов.

Вывод — почему, как и где использовать серверные блоки Nginx

Серверные блоки Nginx — это must-have для любого, кто хочет держать под контролем свои сайты, экономить ресурсы и не бояться масштабирования. Это быстро, гибко, надёжно и легко автоматизируется. Неважно, запускаешь ты лендинг, блог, интернет-магазин или целый SaaS — серверные блоки позволят держать всё в порядке, не мешать сайтам друг другу и быстро внедрять новые фичи.

  • Для малых проектов — удобно держать несколько сайтов на одном VPS, не переплачивая за хостинг.
  • Для бизнеса — легко масштабировать, добавлять новые домены, настраивать SSL и безопасность.
  • Для разработчиков — автоматизация, деплой, тестовые стенды и CI/CD становятся проще.

Если нужен VPS для экспериментов или продакшена — заказать VPS можно тут. Для крупных проектов — выделенный сервер с быстрым SSD и поддержкой.

Официальная документация по Nginx: https://nginx.org/en/docs/
Документация Ubuntu: https://help.ubuntu.com/

Прокачивай свой сервер, автоматизируй рутину и не бойся экспериментировать — Nginx и Ubuntu 24.04 дают для этого все инструменты!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked