Я подумал, что самым интересным для меня вариантом будет создать свой хостинг для сайтов, чтобы не платить за размещение своих проектов. В дальнейшем я, конечно, перенёс его на обычный покупной 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, так как он бесплатен и надёжен. Вы можете сделать выбор самостоятельно.
Выбор веб-сервера и панели управления.
Серверов я знаю достаточно мало и только примерно представляю разницу между ними, но мной была выбрана связка 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-массивы, но о них вам следует почитать отдельно.