Введение в мультисайтовый хостинг на выделенных серверах (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.
Нужен выделенный сервер?
Compare prices from top providers. Configure and order in minutes.
Шаг 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 и пути к логам в соответствии со вторым сайтом. Такой модульный подход гарантирует, что если на одном сайте возникнет высокий трафик или ошибки конфигурации, он останется изолированным от других.
Нужен выделенный сервер?
Compare prices from top providers. Configure and order in minutes.
Шаг 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.comCertbot автоматически обновит ваши конфигурационные файлы Nginx для обработки терминации SSL и перенаправления всего HTTP-трафика на HTTPS.
Распространенные варианты использования мультисайтовых выделенных серверов
| Вариант использования | Зачем использовать выделенный сервер? | Преимущество Nginx |
|---|---|---|
| Порталы игровых серверов | Высокая тактовая частота процессора для игровой логики. | Быстрая доставка статического контента для ассетов. |
| Сети электронной коммерции | Изоляция ресурсов базы данных для безопасности. | Отличная обработка продаж с большим количеством одновременных подключений. |
| Разработка SaaS | Предсказуемая производительность для конвейеров CI/CD. | Простое обратное проксирование к бэкенд-микросервисам. |
| Стриминговые медиа | Выделенная безлимитная пропускная способность 1 Гбит/с+. | Эффективная буферизация и пропускная способность данных. |
Нужен выделенный сервер?
Compare prices from top providers. Configure and order in minutes.
Решение распространенных проблем
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 в соответствии с количеством ядер вашего выделенного процессора.