Как создать хостинг дома?

Как я уже писал на странице создания хостинга, всё началось с навязчивой мысли: «мой пк работает 24/7 и не использует всей своей мощности, а значит надо придумать куда бы её пристроить».

Я подумал, что самым интересным для меня вариантом будет создать свой хостинг для сайтов, чтобы не платить за размещение своих проектов. В дальнейшем я, конечно, перенёс его на обычный покупной VDS, но об этом ближе к концу статьи.

Опять же, если вы хотите хостить только свой сайт, то всё намного-намного проще, но моей целью был собственный хостинг с сайтами клиентов и т.д. Соответственно, у них должны быть свои аккаунты и максимально простой способ управления ими.

как создать хостинг?

Отдельный сервер или виртуальный?

Сначала предстоит выбрать где будет храниться информация. Если рассматривать варианты домашнего сервера, то выбор примерно такой:

  • ПК с виртуальной машиной — это был мой выбор, так как у меня только один компьютер. Для этого потребуется какое-нибудь средство виртуализации, ибо я хочу сервер с Linux, но не готов сделать эту ОС основной.
  • Отдельный ПК — чуть более правильный выбор, но у меня нет лишнего компьютера. Linux ставится основной системой. Стоит понимать, что увеличится расход электричества, так как это дополнительное устройство включенное 24/7.
  • Настоящий сервер — самый правильный выбор из предложенного, ибо серверное железо намного мощнее обычного. Linux всё так же основная система, а расход электричества всё так же повышенный.

На этом этапе хочу напомнить, что по-хорошему сервер должен находиться не дома, а в дата-центре. И сразу скажу, что чтобы создать хостинг дома или в офисе нужно иметь белый IP, который приобретается у провайдера. Для квартиры в Санкт-Петербурге цена вопроса 50-100 рублей в месяц. Для офиса не уточнял.

Получается, что если у вас нет белого IP, то полностью бесплатный вариант отпадает уже на этом этапе.

Основные уязвимости домашнего сервера

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

Доступность сервера из интернета

Ваш сервер может быть хорошо настроен и устойчив к DDos атакам, но вот забить канал домашнего интернета потенциальные недоброжелатели смогут легко. Таким образом нужные пакеты просто не смогут добраться до сервера и получить от него ответ. Ваши соседи, кстати, тоже останутся без интернета. Вряд ли они и провайдер будут в восторге.

Если хостить только свой сайт, то можно скрыть свой белый IP (например с помощью CloudFlare), но спрятать IP хостинга от клиентов у вас не выйдет, а каждый из них, кто не подключит CloudFlare, будет светить вашим IP на весь интернет. DDos в этом случае, как мне кажется, это просто дело времени.

Питание и перезагрузки

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

Согласитесь, что сидеть и караулить выключения компьютера — это довольно сомнительная перспектива, ведь у вас наверняка есть учёба, работа, личная жизнь.

В прочем, почти уверен, что это можно решить покупкой ИБП (UPS) и правильной настройкой сервера.

Выбор системы виртуализации

Так как изначально я выбрал создать сервер на домашнем ПК с виртуальной машиной, то далее предстоит выбрать средство для виртуализации.
Самый простой, но не совсем корректный вариант — это VirtualBox (частичная эмуляция — нативная виртуализация).

Насколько мне известно, то правильно было бы выбрать виртуализацию уровня операционной системы, т.е. Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers или FreeBSD Jails.

С другой стороны, на VirtualBox тоже всё работает, а всё что мне было нужно — это сделать стенд с линуксом для тренировки, а потом воспроизвести аналогичные действия на арендованном сервере.

Если вы не планируете в дальнейшем сменить свой домашний или офисный виртуальный сервер, то вам следует изучить средства виртуализации получше. При использовании отдельной машины с Linux или арендованного сервера средства виртуализации вам не понадобятся.

Выбор ОС сервера

Два основных варианта ОС, как вы уже догадались, это Windows и Linux. Я не задумываясь выбрал Linux, так как он бесплатен и надёжен. Вы можете сделать выбор самостоятельно.

Выбор веб-сервера и панели управления.

Далее стоит выбрать какой именно веб-сервер использовать и использовать ли панель для управления хостингом через web-интерфейс.

Серверов я знаю достаточно мало и только примерно представляю разницу между ними, но мной была выбрана связка Apache + Nginx. Будем считать, что это дань уважения CMS Bitrix, которая по-умолчанию работает на такой связке.

Сервера типа IIS (продукт Windows) или Open Server, честно говоря, даже не рассматривал.

Так как сразу предполагалось, что у меня будут клиенты, которые не должны копаться в командной строке, то нужно было выбрать панель для управления хостингом.

В прошлом доводилось работать с платными панелями ISPmanager и Cpanel, но я хотел сделать этот проект бюджетным и искал бесплатную панель.
Протестировав популярные бесплатные панели (Vesta CP, CWP, ajenti, sentora и Webadmin), принял решение остановиться на Vesta CP из-за её удобства и простоты настройки. К тому же, она позволяет использовать связку выбранных мной веб-серверов прямо из коробки, чем могли похвастаться не все испытуемые.

vesta cp с nginx и apache на linux

Итоги проделанной работы

Произведённые мной действия для получения домашнего хостинга:

  • Куплен белый IP и UPS;
  • На ПК установлен VirtualBox;
  • На VirtualBox создана новая виртуальная машина и на неё установлен Linux;
  • На Linux установлена Vesta CP (автоматически установит выбранные вами веб-сервера).

Технически, сырая версия хостинга на этом готова. Далее я арендовал VDS, чтобы установить туда тот же Linux и Vesta CP, пользуясь уже полученным опытом.
Конечно, этот хостинг всё равно придётся допиливать напильником:

  • Донастройка Linux;
  • Донастройка Vesta CP;
  • Настройка бэкапирования.

Коротко о каждом пункте:

Донастройка Linux

Считается, что Линукс менее уязвим к атакам, но если вы раньше с ним не работали, то вам всё равно предстоит многое узнать о нём, его оптимизации и его безопасности.

Донастройка Vesta CP

Панель Веста работает из коробки, но вам всё равно необходимо будет работать с её тарифами, пользователями, а возможно персонализировать её и расширять её возможности.

Настройка бэкапирования

Стоит позаботиться о том, чтобы производилось бэкапирование информации с вашего сервера. Помните, что вы можете потерять всю свою и чужую информацию в случае повреждения жёсткого диска, если не позаботитесь о бэкапах. Бэкапы должны храниться в другом месте, а точнее на другом жёстком диске или в облаке. Альтернативой бэкапам служат RAID-массивы, но о них вам следует почитать отдельно.