Держать сайт на виртуальном хостинге — это как покупать готовый ПК в офисе. Скучно, нет свободы и запаха паяльника. Другое дело — свой сервер. Железяка, которая гудит в соседней комнате (или на стойке в ЦОД), и ты контролируешь каждый бит трафика.
Но здесь есть подводный камень: «свой сервер» бывает двух видов. Первый — физический сервер дома, на коленке. Второй — настоящий сервер в дата-центре. Далее рассмотрим оба пути, но сразу предупредим: домашний сервер для публичного сайта — это боль. Поехали.
- Часть 1. Выбираем железо: не перепутайте с ПК для игр
- Материнская плата и процессор
- Оперативная память
- Накопители
- Корпус и блок питания
- Сеть
- Часть 2. Домашний сервер или аренда стойки?
- Вариант А: Сервер дома
- Вариант Б: Сервер в ЦОД (колокейшн)
- Часть 3. Установка софта: операционка и веб-окружение
- Часть 4. Где взять IP-адрес? (самый больной вопрос)
- Часть 5. Покупка домена и привязка к IP
- Часть 6. Финальный чек-лист и запуск
- Грустная правда в конце
Часть 1. Выбираем железо: не перепутайте с ПК для игр
Сервер — это не «компьютер под столом». Требования другие:
Материнская плата и процессор
Вам не нужна частота 5 ГГц. Вам нужны потоки и ECC-память.
- Начальный уровень (дома/офис): Intel Xeon E3-12xx v5/v6 или AMD Ryzen Pro (поддерживают ECC, если мать разрешит). Или современный Intel Atom C3000 (встроенный 10GbE, низкое TDP).
- Для ЦОДа: Supermicro с чипсетом C246 или Intel C621. Два процессора? Только если вы делаете биржу или видеохостинг.
Совет: Берите б/у Xeon из корпоративных выбросов на eBay/Aвито. За 10-15 тыс. руб. можно взять 12-ядерный монстр.
Оперативная память
Только ECC Registered (для Xeon) или ECC Unbuffered (для Ryzen). Без ECC через месяц поймаете битый сектор в базе данных сайта.
- Минимум: 16 ГБ (Debian + nginx + PHP + MySQL + хватит на 50 тыс. посетителей/мес).
- Комфорт: 32–64 ГБ (если используете ZFS или Redis).
Накопители
Забудьте про HDD для системы и базы. Только NVMe SSD.
- Система и БД: 2 x NVMe в зеркале (ZFS mirror или mdadm RAID1).
- Для файлов (изображения, видео): можно RAID10 из SATA SSD или даже HDD, но с большим кэшем.
Модели: Samsung PM983 / Intel Optane P4800X (для логов и метаданных — огонь) / Kingston DC1000.
Корпус и блок питания
Домашний сервер: Fractal Design Node 304 (компактный) или Silverstone RM21-308 (стоечный).
Блок питания — 80+ Gold/Platinum, мощностью с запасом 30%. Не экономьте: дешёвый БП убьёт диски при скачке.
Сеть
Минимум 1 GbE (две сетевых карты — для failover или прямого подключения к админу). Хорошо — 10 GbE (Intel X710-DA2 или Mellanox ConnectX-3 за копейки на вторичке).
Часть 2. Домашний сервер или аренда стойки?
Вариант А: Сервер дома
Плюсы: железо ваше навсегда, нет абонентки (кроме электричества).
Минусы:
- Домашний IP — динамический, заблокированы 80/443 порты (почти всеми провайдерами РФ).
- Шум. Xeon с активным охлаждением — это звук взлетающего Boeing.
- Нет холодного резервирования. Отключили свет — ваш сайт умер.
- DDoS-атака ляжет на весь домашний канал.
Когда можно: только для личного блога при наличии белого статического IP у провайдера и разрешённых 80/443. Либо через туннель (Cloudflare Tunnel, ngrok) — но это уже не «честный свой сервер».
Вариант Б: Сервер в ЦОД (колокейшн)
Вы привозите свою железку в дата-центр, платите за стойку (1U — от 3–5 тыс. руб/мес), электричество и канал. Они дают:
- Белый статический IP (и блок /29, до 5 своих IP).
- Бесперебойное питание, кондиционирование, охрану.
- Канал от 100 Мбит/с до 10 Гбит с SLA.
Вывод для новичка: Не собирайте сервер для дома. Арендуйте выделенный или виртуальный сервер в FirstVDS или TimeWeb за 3000-5000 руб./мес. Но раз статья про «создать свой» — идём по хардкорному пути колокейшна.
Часть 3. Установка софта: операционка и веб-окружение
После сборки сервера:
- Операционная система: Debian 12 (стабильность) или FreeBSD (если параноик и любишь ZFS). Ubuntu Server — тоже ок.
- Web-стек:
- nginx (лучше из официального репо, не из дефолтного).
- PHP-FPM (последняя версия).
- MariaDB (она же MySQL).
- Redis для кэша.
- Безопасность:
- Настройка fail2ban.
- SSH только по ключам, порт не 22.
- UFW (закрыты все порты, кроме 80, 443, 22).
Пример минимального конфига nginx для вашего сайта:
server {
listen 80;
server_name site.ru;
root /var/www/site;
index index.php;
} Часть 4. Где взять IP-адрес? (самый больной вопрос)
Если сервер дома — вы не можете купить свой IP-адрес. IPv4 закончились. Провайдер даёт вам один статический IP за доплату (обычно около 200 руб./мес.). Этого хватит для одного сайта.
Если сервер в ЦОД — вам выделяют IP из пула дата-центра. Но купить свой собственный IP (автономную систему, AS) и принести его в ЦОД — это дорого и сложно:
- Нужна регистрация в RIPE NCC (членский взнос около €2000 в год).
- Покупка блока IPv4 (/24, 256 адресов) — сейчас от $10 000-15 000.
- Пирринг, настройка BGP, собственный ASN.
Для обычного сайта это бессмысленно. Просто используйте IP от провайдера/ЦОДа. Свой IP покупают, чтобы не зависеть от репутации ЦОДа или для почтовых серверов.
Часть 5. Покупка домена и привязка к IP
- Регистратор: Руцентр, Доменус, Webnames. Разницы почти нет.
- Выбор домена: .ru/.рф (дёшево и подходит для проектов на Россию), .com (международо, престижно). Избегайте .tk, .ml — они в спам-базах.
- Настройка DNS:
- У регистратора обычно есть бесплатный DNS-хостинг.
- Лучше перевести зону на Cloudflare DNS (бесплатно + скрытие реального IP за прокси).
- Создайте A-запись:
@-> ваш IP-адрес сервера. - Для поддоменов:
www-> тоже IP.
Если IP статический — всё работает. Если динамический (дома) — понадобится DDNS-клиент (например, DuckDNS или вшитый в роутер).
Часть 6. Финальный чек-лист и запуск
- Собрали сервер, установили ОС, настроили nginx/PHP/MySQL.
- Получили статический белый IP (от провайдера или ЦОДа).
- Купили домен, прописали A-запись на этот IP.
- Открыли порты 80 и 443 на серверном фаерволе и на роутере (если дома — проброс портов).
- Проверили:
curl -I http://ваш_домен— код 200. - Настроили HTTPS через Let’s Encrypt (Certbot — две команды).
- Установили мониторинг (Prometheus + Grafana или хотя бы htop + journalctl -f).
Грустная правда в конце
Свой сервер — это круто для портфолио и опыта. Но для реального сайта, который нужен людям, он проигрывает облакам в 9 случаях из 10. У AWS/Selectel/Vscale есть SLA, бэкапы, DDoS-защита и масштабирование. А ваш сервер однажды перегреется, отвалится диск или придёт квитанция за электричество на 5000 руб.
Совет: Соберите сервер как домашний проект для NAS, Plex или Telegram-бота. А публичный сайт запустите на VPS за 500-1500 рублей/месяц, например, у Beget. Опыт сборки останется, а нервов — меньше.
Но если вы всё же решили — дерзайте. Железо ждёт.