Несмотря на появление дешевых VPS, традиционный веб-хостинг умирать не собирается. Попробуем разобраться, в чем состоят различия между двумя подходами к размещению сайтов и какой из них лучше.
На сайте каждого уважающего себя провайдера обязательно найдется сравнение традиционного веб-хостинга с виртуальными серверами. Авторы статей отмечают сходство VPS с физическими машинами и проводят параллели между ними и собственными квартирами, отводя веб-серверам коллективного пользования роль коммуналок. Поспорить с такой трактовкой трудно, хотя мы попытаемся все не так однозначно. Давайте заглянем чуть глубже поверхностных аналогий и разберем для начинающих пользователей особенности каждого варианта.
Как устроен традиционный хостинг?
Чтобы веб-сервер мог обслуживать различные сайты, были придуманы т.н. name based virtual host. Протокол HTTP предполагает возможность передачи в составе запроса URL (единого указателя ресурса) — это позволяет сервису понять, к какому именно сайту обращается браузер или иная клиентская программа. Остается только привязать доменное имя к нужному IP-адресу и прописать в конфигурации корневой каталог для виртуального хоста. После этого можно разложить файлы сайтов разных пользователей в их домашние каталоги и открыть доступ по FTP для администрирования.
Чтобы веб-приложения на стороне сервера (различные скрипты или даже системы управления контентом — CMS) запускались с правами того или иного пользователя хостинга, в Apache был создан специальный механизм suexec. Понятно, что настройки безопасности веб-сервера не позволяют пользователям лезть в чужой огород, но в целом это действительно похоже на коммунальную квартиру с раздельными комнатами и общим адресом (IP) на сотни сайтов. Сервер баз данных (обычно MySQL) для виртуальных хостов тоже общий, но доступ у пользователя хостинга есть только к его личным базам. Все программное обеспечение сервера кроме скриптов сайта обслуживается провайдером, менять его конфигурацию по своему усмотрению клиенты не могут. Процесс управления аккаунтами автоматизирован: для этих целей у каждого хостера есть специальная веб-панель, через которую можно управлять услугами.
Как устроены VPS?
Сравнение виртуальных серверов с физическими не вполне корректно, поскольку на одном «железном» хосте работает множество VPS. Образно выражаясь, это уже не коммуналка, а многоквартирный дом с общим подъездом и едиными несущими конструкциями. Для создания отдельных «квартир» (VPS) в пределах одного «дома» (физического сервера) задействованы средства установленной на хосте операционной системы и различные технологии виртуализации.
Если применяется виртуализация уровня ОС, процессы клиента просто работают в изолированном окружении (или неком контейнере) и не видят чужих ресурсов и процессов. Отдельная гостевая ОС в этом случае не запускается, а значит программное обеспечение в гостевом окружении должно быть бинарно совместимо с системой на физическом хосте — как правило клиентам предлагают специально модифицированные под такой способ эксплуатации дистрибутивы GNU/Linux. Есть и более продвинутые варианты, вплоть до эмуляции физической машины, на которой можно запустить почти любую гостевую ОС даже с собственного инсталляционного образа.
С точки зрения администратора любой VPS мало чем отличается от физического сервера. При заказе услуги хостер разворачивает выбранную конфигурацию, а дальше обслуживание системы ложится на плечи клиента. При этом можно установить нужное программное обеспечение и как угодно его настроить — полная свобода выбора веб-сервера, версии PHP, сервера баз данных и т.д. IP-адрес у VPS тоже свой, его не придется делить с сотней — другой соседей. На этом с описанием основных различий мы закончим и перейдем к преимуществам и недостаткам, от которых зависит выбор решения.
Какой вариант проще и удобнее?
Виртуальный хостинг не требует администрирования обеспечивающего работу сайта окружения. Клиенту не придется самому устанавливать, настраивать и обновлять системное и прикладное ПО, а в ряде случаев панель управления хостингом позволяет устанавливать и CMS — такой вариант выглядит привлекательным для новичков. С другой стороны задачи тонкой настройки CMS все равно придется решать самостоятельно, к тому же за относительно низким порогом входа прячется меньшая гибкость решения. Выбор софта будет ограничен: на виртуальном хостинге нельзя, например, по своему желанию поменять версию PHP или MySQL, а тем более установить какой-нибудь экзотический пакет или выбрать альтернативную панель управления — придется пользоваться предложенными поставщиком услуг средствами. Если провайдер проведет обновление сервера, в ваших веб-приложениях могут возникнуть проблемы программной совместимости.
VPS лишен этих недостатков традиционного хостинга. Клиент может сам выбрать нужную ему ОС (необязательно Linux) и установить любое программное обеспечение. Настраивать и администрировать окружение придется самостоятельно, однако процесс можно упростить — все хостеры предлагают сразу инсталлировать на виртуальный сервер панель управления, которая автоматизирует процесс администрирования. Благодаря ей большой разницы в сложности управления между традиционным хостингом и VPS не будет. К тому же никто не запрещает установить собственную панель, не входящую в список предложений провайдера. В целом накладные расходы на администрирование VPS не так велики, а большая гибкость решения с лихвой окупает некоторые дополнительные трудозатраты.
Какой вариант безопаснее и надежнее?
Может показаться, будто размещение сайтов на традиционном хостинге безопаснее. Ресурсы разных пользователей надежно изолированы друг от друга, а за актуальностью программного обеспечения сервера следит провайдер — это отличный вариант, но только на первый взгляд. Злоумышленники далеко не всегда эксплуатируют уязвимости в системном ПО, обычно сайты взламывают, используя незакрытые дыры в скриптах и небезопасные настройки систем управления контентом. В этом смысле никаких преимуществ у традиционного хостинга нет — ресурсы клиентов работают на тех же самых CMS — зато недостатков хватает.
Главная проблема виртуального хостинга заключается в общем IP-адресе для сотен сайтов разных пользователей. Если кого-то из ваших соседей взломают и начнут, например, рассылать через него спам или проводить другие вредоносные действия, общий адрес может попасть в различные черные списки. В этом случае пострадают все клиенты, чьи сайты используют тот же IP. Если сосед попадет под DDoS-атаку или создаст чрезмерную нагрузку на вычислительные ресурсы, пострадают остальные «жильцы» сервера. Управлять выделением квот для отдельных VPS провайдеру намного проще, к тому же виртуальному серверу присваивается отдельный IP и необязательно один: можно заказать любое их количество, дополнительный сервис по защите от DDoS, антивирусный сервис и т.д. В смысле безопасности и надежности VPS превосходит традиционный хостинг, нужно только своевременно обновлять установленные программы.
Какой вариант дешевле?
Еще несколько лет назад ответ на этот вопрос был однозначным — при всех ее недостатках комната в коммуналке была намного дешевле отдельной квартиры. Отрасль не стоит на месте и сейчас на рынке появилось множество бюджетных VPS: у нас можно арендовать собственный виртуальный сервер на Linux за 130 рублей в месяц. В среднем месяц работы бюджетного VPS обойдется клиенту в 150 — 250 рублей, при таких ценах мириться с проблемами традиционного хостинга нет смысла, кроме случая, когда на сервере нужно разместить простейшие сайты-визитки.