logo Oblomow.ru

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

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

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

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

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

Выбор расположения сервера

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

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

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

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

В первую очередь это обосновывается уязвимостью домашнего сервера.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Решение юридическая стороны вопроса

Отдельное внимание я хочу уделить юридической стороне вопроса.
На сколько я понял, то хостить свой сайт у себя дома или в офисе вам никто не запрещает.
А вот оказание платных услуг хостинга уже будет требовать от вас оформления ИП или ООО и, возможно, получения лицензий на оказание услуг связи.
Сам по себе хостинг — это не очень маржинальный бизнес, поэтому рисковать из-за него я бы не советовал.

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