Домашняя страница ➜ Блог фотографа и видеографа ➜ Софт для фото и видео
Как сделать персональный веб-хостинг. Как из каких комплектующих собрать веб-сервер. Собираем компьютер, устанавливаем веб-панель, размещаем сайты на хостинге.
Если у Вас есть один или несколько достаточно больших сайтов, например интернет-магазин на 10000 товаров, то со временем Вы столкнетесь с тем, что производительности хостингов, предоставляемых в аренду будет не хватать, или цена за аренду такой виртуальной машины будет уже не такая, как была на этапе внедрения Ваших сайтов, когда 1 ядра CPU + 256 МБ ОЗУ + 1 ГБ SSD было достаточно. Особенно будет заметна нехватка машинных ресурсов с сайтами на CMS WordPress и Bitrix.
Это еще полбеды. Но в процессе работы бывают ситуации, когда например необходима перезагрузка виртуального сервера, а вот это уже сложнее, так как на дешевых виртуальных серверах VDS на одном физическом компьютере обычно размещены несколько клиентов, а им не понравится если их сайты будут недоступны на время, в течение которого виртуальный хостинг будет в процессе перезагрузки, поэтому провайдер услуг веб-хостинга неохотно будет реагировать на Ваши запросы о перезагрузке сервера.
Какими способами можно сделать персональный хостинг для сайтов?
Поэтому со временем Вы захотите покинуть эту коммунальную квартиру и переехать в отдельное свободное жилье. И тут у Вас будет 3 варианта:
снимать это жилье – аренда виртуального сервера VPS (VDS)
купить собственную квартиру – сделать свой собственный физический веб-сервер
переехать в дом престарелых родителей – сделать веб-сервер под виртуальной машиной основного сервера предприятия или домашнего ПК.
1. Аренда VPS (Virtual Private Server).
В первом случае достоинства такие:
часть работ по поддержанию работоспособности сервера арендодатель берет на себя
веб-сервер будет онлайн 24/7 практически всегда, так как у арендодателя несколько входящих каналов связи с интернетом и вероятно организовано бесперебойное питание компьютеров.
Недостатки у VPS следующие:
аренда сервера будет обходиться Вам примерно 20 USD в месяц и это будут Ваши прямые расходы
в прайс-листах компаний, предоставляющих в аренду VPS, указано количество ядер Xeon, но не указано какие это Зеоны, а они могут быть не первой свежести, наподобие Xeon E5 2620
нагрузка на сетевые соединения дата-центра может в пике быть больше ширины канала дата-центра
ну и как с любой съемной квартиры Вас однажды могут попросить съехать
VPS скорее всего работает в виртуальном контейнере, а если вам нужен функционал виртуализации, то соответственно, он будет недоступен.
2. Второй случай – переезжаем на отдельный физический сервер
Недостатки такие:
первоначальные расходы на приобретение компьютерных комплектующих
нужно платить за электроэнергию
обслуживание веб-сервера ложится полностью на нас
веб-сервер занимает пространство в помещении и шумит
интернет соединение может теряться
форс-мажор: пожар, воры и т.п.
Достоинства:
несмотря на большие расходы по приобретению железа, это не прямые затраты и компьютер при ненадобности можно продать; а если компьютер у Вас уже есть, то по сути Вы получите бесплатный хостинг (не считая счетов за электричество конечно)
в Вашем доме скорее всего все сидят на 100 Мб/с пакетах и вряд ли будут запирать канал ваших данных если у вас пакет 1 Гб/с
все данные хранятся на сервере в пределах непосредственной доступности и «случайно» не потеряются
сервер полностью под Вашим контролем – хотите перезагружайте, хотите делайте апгрейд компьютера
бекап на внешние носители выполняется быстро по локальной гигабитной сети.
3. Установка веб-хостинга на виртуальную машину Hyper-V
Третий случай самый комфортный из всех.
К тому же виртуальная машина обеспечивает дополнительное кэширование дисковой подсистемы, что может положительно сказаться на производительности если у какого-то из сайтов большая база данных.
Например у вас на предприятии трудится мощный сервер под управлением Windows Server. Создаем на нем виртуальную машину под Hyper-V, отдаем ей 3 ядра, 8 ГБ ОЗУ, 64 ГБ дискового пространства и радуемся жизни.
Но в моем случае сервер предприятия расположен в таком районе города, где электричества нет по три часа в день, то оптоволокно перебивают при очередном капитальном ремонте дорог.
Поэтому из родительского дома пришлось съезжать в свое отдельное жилье…
Какой компьютер подойдет для веб-сервера?
Когда мы выбираем железо для веб-сервера у нас есть по сути три класса устройств:
Intel Celeron J1800 – 10 Вт
Ryzen 3 2200G – 65 Вт
AMD FX-9830P – 35 Вт.
Селероны типа j1800 не годятся для наших целей, они пригодны лишь для построения небольших NAS.
Производительность процессоров класса Ryzen 3 2200G избыточна для веб-сервера. Убедился в этом на личном опыте и оплачивать лишние 30 Вт/ч пока что желания нет.
Недавно Biostar представили материнскую плату с распаянным на ней ноутбучном процессоре Biostar FX-9830P по цене 120 USD в рознице. Перед покупкой, читая обзоры этой материнки, я видел как народ в комментариях троллит этот шаг Biostar’а. А я увидел в этом золотую середину для решения моей задачи и для своего веб-сервера купил именно FX-9830P.
При этом по данным одного известного сайта мы имеем вот такую условную производительность трех классов процессоров:
Остальные комплектующие:
какой-то корпус, валявшийся на работе без дела
тихий блок питания на 400 Вт (из той же серии, что покупал для сборки компьютера для видеомонтажа) – с запасом на тот случай, если в дополнение к веб-серверу буду использовать этот компьютер еще как NAS
8 ГБ ОЗУ – любая совместимая с материнской платой оперативная память DDR4
256 ГБ SSD – M.2 256GB Transcend (TS256GMTE220S) – недорогой и быстрый. 256 ГБ с запасом, чтобы был TBW побольше, так как веб-сервер это достаточно агрессивная среда с точки зрения записи на диск
Роутер MikroTik RB951G-2HnD – гигабитный маршрутизатор, который работает годами без зависаний и прочих проблем и имеет гибкие настройки.
Комплектующее | Цена, USD |
Материнская плата с процессором | 117 |
ОЗУ 8 ГБ DDR4 2400 | 35 |
NVMe SSD 256 ГБ | 53 |
Блок питания 450 Вт | 31 |
Итого: | 236 |
После того как собрал и включил в первый раз компьютер расстроился – вентилятор процессора оказался довольно шумным. Настройку регулирования оборотов вентилятора в BIOS (UEFI) нашел не сразу – это отдельная от основного интерфейса БИОСа виртуальная кнопка в верхней части экранного пространства, дублируемая клавишей F5.
Когда установил профиль охлаждения Silent, шум вентилятора процессора стал еле заметен.
Бесплатная веб-панель для хостинга
Перебрав все бесплатные аналоги cPanel, я остановился на хостинг-панели от украинских производителей – BrainyCP. Потому что остальные поделки либо не умеют работать за роутером, либо имеют убогий функционал.
Панель имеет отличный функционал и неплохую тех. поддержку на русском языке. Панель ставится поверх чистой операционной системы Linux CentOS 7 в минимальной ее конфигурации. Это немного грустно, потому что нельзя поставить оконную среду и подключаться к серверу по xRDP. Поэтому нам остается только хардкор, только SSH. Если установите оконную рабочую среду CentOS 7 – будут проблемы с обновлением Linux.
Загрузочную флешку с системой CentOS 7 следует записывать программами, умеющими формировать GPT-структуру диска, такими как balenaEtcher, так как загружаться будем по EFI, а не Legacy.
Устанавливать CentOS 7 нужно на английском языке, иначе будут проблемы с отображением кириллических символов в терминале macOS.
После того, как установили CentOS 7, компьютер можно отправлять в место его постоянной дислокации (в моем случае это антресоль над входной дверью), а все дальнейшие действия будем производить удаленно по SSH.
На всякий случай напомню, что клиент SSH встроен Power Shell Windows 10 и необходимости в программах типа PuTTY больше нет. В macOS и Linux клиенты SSH также встроены в систему.
Обновляем CentOS и устанавливаем BrainyCP командной строкой, которую можно сгенерировать на странице загрузки веб-панели. Дожидаемся окончания установки веб-панели и перезагружаем сервер.
В моем случае я выбрал такую конфигурацию программного обеспечения:
- Apache 2.4 (практическим перебором вариантов определил, что именно на Апач без NGINX сайты работают быстрее)
- PHP 7.4
- Пакеты: + memcached и certbot
- MySQL: MariaDB 10.5.
Устанавливаем сервис мониторинга состояния сервера Cockpit, благодаря которому можно отслеживать нагрузку на сервер в визуально понятном веб-интерфейсе. Репозиторий CentOS содержит эту программу, поэтому достаточно ее установить с помощью Yum:
- yum -y install cockpit cockpit-storaged
- sudo systemctl start cockpit
- sudo systemctl enable cockpit.socket
Из графиков Cockpit видно, что процессор AMD FX-9830P справляется со своей задачей, а менее 8 ГБ оперативной памяти в веб-сервер лучше не ставить.
Далее заходим в веб-панель с логином и паролем Root и создаем хост-аккаунт для обычного пользователя, под которым будем размещать наши сайты.
Следующим шагом нам нужно определить домен, через который будет отправляться электронная почта, в заголовках писем которой не указан отправитель. Для этого переходим в интерфейсе веб-панели:
Почта – Сервер исходящей почты – Управление через пакетный менеджер – Настроить – qualify_domain.
qualify_domain – это любой из Ваших доменов, имеющий в DNS-записях ключ DKIM. Без этой настройки почта, отправленная из контактных форм на сайтах, не будет доходить до получателя и будет помечена Exim как Frozen.
Последним шагом под Root прописываем нужные параметры веб-сервера и PHP, убеждаемся, что хост-аккаунт пользователя не в Jail и переходим в хост-аккаунт созданного нами пользователя.
В хост-аккаунте добавляем домены сайтов, генерируем Let’s Encrypt сертификаты доменов сайтов и восстанавливаем сайты из бекапов или устанавливаем новые CMS из установщика CMS.
Так как я сделал свой основной сайт бесплатно сам, то в моем случае устанавливаю WordPress, устанавливаю в панели администратора сайта плагин Updraft Backup, по FTP копирую файлы бекапа на веб-сервер и восстанавливаю бекап.
В настройках почты доменов включаем DKIM, SPF и DMARC. Хостинг-панель генерирует соответствующие DNS-записи с ключами, которые мы должны прописать в редакторе DNS-зон регистратора доменного имени или, если Вы пользуетесь Cloudflare, на вкладке DNS Вашего аккаунта в Cloudflare.
Далее меняем A-записи доменов у регистратора доменного имени на IP-адрес нашего сервера. Ждем некоторое время и убеждаемся, что всё работает.
Связываемся со своим интернет провайдером и просим его создать PTR DNS-запись для нашего IP-адреса. Иначе почтовые серверы Google могут не принимать нашу почту. Домен в PTR записи должен быть равен qualify_domain. Домен веб сервера меняем с localhost на qualify_domain, генерируем Let’s Encrypt сертификат с автопродлением для сервиса SMTP, иначе некоторые почтовые сервисы (например i.ua) не будут принимать нашу почту из-за несоответствия сертификата.
Проверяем корректность настройки почтового сервера с помощью сервиса mail.tester.com.
Когда всё заработало, отключаем сервер от интернета, загружаемся с загрузочной флешки с Macrium Reflect и делаем полный бекап SSD веб-сервера на внешний жесткий диск. Далее в BIOS (UEFI) веб-сервера устанавливаем настройку:
при потере питания всегда включать
Всё, пользуемся. И не забываем делать бекапы сайта по мере надобности.
Читать также:
© 2021 Andrew Lazarev Production – видеограф, фотограф и видеомонтаж в Харькове и харьковской области. Блог фотографа. Блог видеографа.
И ни слова по настройке хостинга. Как всегда!
Настройке посвящен целый форум BrainyCP.
Сейчас уже можно взять в аренду VPS в конфигурации 4 ядра по 2,8 ГГц + 8 ГБ ОЗУ + 50 ГБ NVMe SSD за 7 EUR в месяц.
Привет. Где можно взять?)
В антресоли, если еще с начала войны не размарадерили