This page looks best with JavaScript enabled

Как поднять себе сайт №1

 ·  ☕ 5 min read

Мотивация

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

Выбор хостинга

И речь не про конкретного хостинг-провайдера. Хотя и это тоже важно. Речь идет о выборе подхода.

Что у нас есть на выбор?

Конструктор сайтов

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

  • Простота использования

Минусы

  • Полнейший вендорозависимый SaaS. Если твой сайт не понравится РКН, мнимым или реальным правообладателям или самой площадке - можете со своим сайтом попрощаться без права достать непосильным трудом нажитое.
  • Унести нормально сайт с конструктора практически невозможно. Tilda, например, предоставляет такую возможность, но по факту это всего лишь статически собранный набор html и js с картинками. Дальнейшее равзитие сайта в таком виде возможно разве что путем полного переписывания.
Shared хостинг

Чуть более сложный вариант относительно конструктора сайта, однако современные хостинги и CMS настолько упростили порог входа, что отличить хороший Shared-хостинг в комбинации с нормальной CMS от того же конструктора сайта крайне сложно. К слову, из приличных Shared-ов крайне рекомендую Beget. Очень приличный хостинг с кучей встроенного прямо в панель управления функционала и адекватной техподдержкой, которая местами еще и за тебя сайт подправит по запросу.

Плюсы

  • Переносимость - можно унести сайт с собой и все исходники и БД и без особых проблем развернуть все тот же сайт на любом другом хостинге (притом не только Shared)
  • Широкий выбор Shared-ов. Их реально много и рынок очень конкурентный в данный момент.
  • Цена - ценник на Shared-ы крайне гуманный

Минусы

  • Главный минус Shared-хостинга - твои соседи. Каким бы крутым и правильно настроенным ни был Shared - если твоего соседа задудосили или он умудрился своим сайтом и скриптами накрутить LA проблемы всего сервера станут и твоими проблемами тоже, т.к. все ресурсы большого железного и мощного сервера вы делите между собой.
VPS/VDS разной степени преднастроенности

Самый сложный вариант. В зависимости от ваших требований к сайту надо поднять вебсервер (или даже 2), базу данных, что-то решить с SSL сертификатом, как-то самостоятельно решать вопросы защиты от DDOS и еще тысяча и одна мелочей, которые уже решены за вас заботливыми админами Shared-хостинга или конструктора сайтов.

Плюсы

  • Максимальный контроль над окружением и возможность в известных пределах потюнить те или иные необходимые параметры как конфигурации “железа”, так и конфигов веб-сервера или базы.
  • Портабельность - в смысле еще бОльшая портабельность относительно Shared-хостинга. Всегда можно переехать к другому хостинг-провайдеру VPS прихватив с собой все заботливо подкрученные конфиги.
  • В большинстве случаев проблемы на смежных VPS, находящихся в одной сети, на одном железном сервере тебя касаться не будут. В большинстве - т.к. зависит от хостинг провайдера. Если он не удосужился нормально настроить шейпинг трафика или у него забили весь канал или он как-то проиграл в настройки условного KVM тут проблемы быть могут. Но в среднем твоя VPS - твоя крепость.

Минусы

  • Относительная сложность. Тут ты сам себе админ, разработчик и таргетолог в одном лице.
  • Твоя VPS является твоим жестким ограничением. Если твой сайт плохо оптимизирован, веб сервер или база неправильно настроены, то сайт вполне может упереться в лимиты VPS и лечь под довольно невинной нагрузкой. Shared-хостинг резкие всплески нагрузки как правило прощает, а параметры окружения там уже обычно настроены как надо.

В среднем, выбор вариантов на этом заканчивается. Мне лично по силам поднять сайт на VPS за пару вечеров, посему дальнейшие статьи будут рассматривать именно вариант VPS (тем более, что с Shared-ом реально нечего рассказывать. Там все настроено за вас).

Выбор окружения

Когда я говорю об окружении я имею в виду весь тот вспомогательный софт благодаря которому ваш сайт окажется на всеобщем обозрении. Выбор тут простой и сложный одновременно.

Docker

Однозначно мой выбор. docker-compose.yml на N-ное количество контейнеров с изолированными друг от друга компонентами. Легко контроллируется, просто пересобирается и обновляется (а также откатывается), лего менеджится в любом удобном вам гитхабе VCS, удобно интегрируется в любые CI/CD и т.д. Однако требуют известного набора навыков работы с ним.

Развернуть все руками на хосте

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

  • Менеджмент зависимостей - обновляешь один пакет, а он потащил за собой кучу других с калечащими изменениями
  • Отсутствие изолирующей прослойки между ОС и окружением для работы сайта. Если в версии PHP/Nginx/Mysql нашли какую-то уязвимость, которая позволяет повысить привелегии - все содержимое хостовой машины перестает быть вышим. Вкупе с предыдущей проблемой оно и вовсе может превратиться в цугцванг: пытаешься обновить - ломаешь сайт, не обновляешь - окружение для твоего сайта имеет устаревшие версии софта, которые в свою очередь имеют уязвимости.

Готовая панель

Самый мой нелюбимый и плохо управляемый вариант, но пропустить его в контексте разговора о сайте на VPS я не мог.

Плюсы

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

Минусы

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

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


2k600
WRITTEN BY
2k600
Путевые заметки о всяком и об IT