Введение в мультисайтовый хостинг на выделенных серверах (Bare Metal)
Инвестируя в выделенный сервер Valebyte, вы получаете чистую, неограниченную мощность. В отличие от общих сред или небольших виртуальных частных серверов, выделенный сервер предоставляет такты процессора, оперативную память и NVMe-хранилище, необходимые для одновременной работы нескольких веб-сайтов промышленного уровня. Независимо от того, являетесь ли вы веб-агентством, управляющим портфелями клиентов, разработчиком, запускающим различные среды CI/CD, или владельцем бизнеса, владеющим несколькими брендами, Nginx является отраслевым стандартом веб-сервера для этой задачи.
Почему стоит использовать Nginx для нескольких веб-сайтов?
Nginx использует асинхронную архитектуру, управляемую событиями, которая позволяет ему обрабатывать тысячи одновременных соединений с минимальным объемом занимаемой памяти. На выделенном сервере это означает, что вы можете масштабировать свое веб-присутствие горизонтально по различным доменам, сохраняя при этом максимальную производительность для каждого посетителя. Секрет кроется в серверных блоках (Server Blocks, аналогичных виртуальным хостам Apache), которые позволяют Nginx направлять входящий трафик в нужный каталог на основе доменного имени в заголовке HTTP-запроса.
Предварительные условия и требования к серверу
Прежде чем мы начнем настройку, убедитесь, что ваша среда соответствует следующим требованиям:
- Выделенный сервер Valebyte: С чистой установкой дистрибутива Linux (рекомендуются Ubuntu 22.04 или Debian 12).
- Доступ Root или Sudo: У вас должны быть права администратора для установки пакетов и изменения конфигураций системы.
- Доменные имена: Как минимум два доменных имени (например, example1.com и example2.com) с A-записями, указывающими на публичный IP-адрес вашего сервера.
- Доступ через брандмауэр: Порты 80 (HTTP) и 443 (HTTPS) должны быть открыты.
Шаг 1: Установка Nginx на ваш выделенный сервер
Сначала обновите репозиторий пакетов и установите веб-сервер Nginx. Подключитесь к серверу по SSH и выполните следующие команды:
sudo apt update
sudo apt install nginx -y
После завершения установки убедитесь, что Nginx запущен:
sudo systemctl status nginx
Если служба активна, вы можете ввести IP-адрес вашего сервера в веб-браузере, чтобы увидеть стандартную целевую страницу Nginx.
rocket_launch
Quick pick
Looking for a server that just works?
Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.
View VPS plans
arrow_forward
Шаг 2: Создание структуры каталогов
Чтобы ваши сайты были организованы и защищены, рекомендуется создать отдельный каталог для каждого домена в пути /var/www/. Это предотвращает взаимное влияние файлов и упрощает управление резервными копиями.
sudo mkdir -p /var/www/example1.com/public_html
sudo mkdir -p /var/www/example2.com/public_html
Настройка прав доступа и владельца
По умолчанию владельцем этих каталогов является пользователь root. Чтобы веб-сервер и ваши инструменты развертывания могли взаимодействовать с файлами, измените владельца на вашего обычного пользователя, а группу — на www-data.
sudo chown -R $USER:www-data /var/www/example1.com/public_html
sudo chown -R $USER:www-data /var/www/example2.com/public_html
sudo chmod -R 755 /var/www
Шаг 3: Создание тестового контента
Чтобы протестировать нашу конфигурацию, давайте создадим простой HTML-файл для каждого сайта. Это поможет нам убедиться, что серверные блоки правильно направляют трафик.
Для первого сайта:
nano /var/www/example1.com/public_html/index.html
Вставьте следующее содержимое:
<html>
<head><title>Welcome to Example 1</title></head>
<body><h1>Успех! Example1.com работает на выделенном сервере Valebyte.</h1></body>
</html>
Повторите этот процесс для example2.com, соответствующим образом изменив текст.
Шаг 4: Настройка серверных блоков Nginx
Nginx хранит свои конфигурационные файлы в /etc/nginx/sites-available/. Мы создадим новый конфигурационный файл для каждого веб-сайта.
Конфигурация для Example1.com
sudo nano /etc/nginx/sites-available/example1.com
Вставьте следующий блок конфигурации:
server {
listen 80;
listen [::]:80;
root /var/www/example1.com/public_html;
index index.html index.htm;
server_name example1.com www.example1.com;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/example1.com.access.log;
error_log /var/log/nginx/example1.com.error.log;
}
Конфигурация для Example2.com
Создайте аналогичный файл для второго домена:
sudo nano /etc/nginx/sites-available/example2.com
Измените пути root, server_name и пути к логам в соответствии со вторым сайтом. Такой модульный подход гарантирует, что если на одном сайте возникнет высокий трафик или ошибки конфигурации, он останется изолированным от других.
rocket_launch
Quick pick
Looking for a server that just works?
Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.
View VPS plans
arrow_forward
Шаг 5: Активация конфигураций и тестирование
Nginx использует систему символических ссылок для определения активных сайтов. Создайте ссылки на ваши новые файлы из sites-available в sites-enabled:
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/
Перед перезапуском Nginx всегда проверяйте конфигурацию на наличие синтаксических ошибок:
sudo nginx -t
Если вы видите syntax is ok и test is successful, перезапустите службу Nginx, чтобы применить изменения:
sudo systemctl restart nginx
Шаг 6: Защита ваших сайтов с помощью SSL (Let's Encrypt)
В современном вебе протокол HTTPS является обязательным для SEO и безопасности. С помощью Certbot вы можете получить бесплатные SSL-сертификаты для всех доменов, размещенных на вашем сервере Valebyte.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example1.com -d www.example1.com
sudo certbot --nginx -d example2.com -d www.example2.com
Certbot автоматически обновит ваши конфигурационные файлы Nginx для обработки терминации SSL и перенаправления всего HTTP-трафика на HTTPS.
Распространенные варианты использования мультисайтовых выделенных серверов
| Вариант использования | Зачем использовать выделенный сервер? | Преимущество Nginx |
|---|
| Порталы игровых серверов | Высокая тактовая частота процессора для игровой логики. | Быстрая доставка статического контента для ассетов. |
| Сети электронной коммерции | Изоляция ресурсов базы данных для безопасности. | Отличная обработка продаж с большим количеством одновременных подключений. |
| Разработка SaaS | Предсказуемая производительность для конвейеров CI/CD. | Простое обратное проксирование к бэкенд-микросервисам. |
| Стриминговые медиа | Выделенная безлимитная пропускная способность 1 Гбит/с+. | Эффективная буферизация и пропускная способность данных. |
rocket_launch
Quick pick
Looking for a server that just works?
Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.
View VPS plans
arrow_forward
Решение распространенных проблем
1. Ошибка 403 Forbidden
Обычно это происходит из-за неправильных прав доступа к файлам. Убедитесь, что пользователь www-data имеет доступ на чтение к вашему веб-каталогу и доступ на выполнение к родительским каталогам.
2. Сайт показывает стандартную страницу Nginx
Проверьте, не перекрывает ли стандартная конфигурация ваши серверные блоки. Возможно, вам потребуется удалить стандартную ссылку: sudo rm /etc/nginx/sites-enabled/default и перезапустить Nginx.
3. Проблемы с распространением DNS
Если ваш браузер не может найти сайт, используйте команду dig, чтобы убедиться, что ваш домен правильно указывает на IP-адрес вашего выделенного сервера: dig +short example1.com.
Продвинутые советы по оптимизации
После того как ваши сайты будут запущены, вы сможете дополнительно оптимизировать свой сервер Valebyte, включив сжатие Gzip, настроив кэширование FastCGI для приложений PHP и точно настроив параметры worker_processes и worker_connections в /etc/nginx/nginx.conf в соответствии с количеством ядер вашего выделенного процессора.