Многие, начинающие пользователи сети интернет рано или поздно приходят к вопросу «А что такое хостинг?».
В этой статье мы ответим на этот вопрос и опишем стандартные решения Хостинга, которые существуют на данный момент, а также расскажем о том, как это устроено в нашей компании ООО «Хостинговые Телесистемы»

Хостинг — это техническая площадка для размещения сайтов, предоставляемая специализированными Хостинг компаниями. По-простому — это место, где лежат сайты. Работа Хостинг компании сводится к тому, чтобы предоставлять беспрерывный (в идеале) доступ пользователей интернет к сайтам, размещаемым в данной Хостинговой компании.

Услуги Хостинга можно разделить на:

  • Виртуальный Хостинг (или просто Хостинг);
  • Виртуальный выделенный сервер (или VPS, он же VDS);
  • Аренда выделенного сервера.

А теперь, давайте рассмотрим технические варианты реализации хостинга.

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


(рис. 1)

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


(рис. 2)

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



(рис. 3)

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



(рис. 4)

Все запросы приходят на «front-end» и дальше этим сервером распределяются между остальными «back-end» серверами. Можно подумать какая же это хорошая схема, а на самом деле, что будет, если «front-end» сломается? Правильно, никакое кол-во «back-end» не поможет спасти ситуацию, если нет «front-end» сервера. Значит нужно предусмотреть какой-то альтернативный вариант для такого случая.

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

Кстати, это место достаточно интересное и имеет множество решений.
Как пример, если у вас роутер имеет поддержку WCCP (Web Cache Communication Protocol), то можно использовать его для этих целей. Его суть будет сводиться к тому, что если ваш «front-end» жив и регулярно отвечает на запросы роутера или уведомляет его о своей жизни, роутер перехватывает пакет и направляет его именно на «front-end». Если же связь с «front-end» утеряна, то роутер направляет запросы напрямую на один или множество «back-end», все зависит от вашего желания и типа настроек.

Даже если у вас и нет дорогого роутера, то и тут остается большое поле для действий. Обычный сервер можно превратить в роутер, используя различные системы, такие как ipfw, iptables, pf можно достигнуть похожего результата, я бы сказал даже большего, чем в выше описанном случае. Управлять правилами тут можете вы сами при написании достаточно простых программок. Если же к этому еще и подключить, например CARP (Common Address Redundancy Protocol), то можно сделать дубль такого сервера, в случае выхода из строя одного сервера, работу подхватит другой, тем самым увеличив надежность системы в целом.
Более того, имея вышеперечисленные системы, вам будет проще бороться с такой частой проблемой в последнее время, как DDOS(Distributed Denial of Service). Так как вы не допустите попадания негативного трафика на основные сервера системы, тем самым защитив их.

И опять возник вопрос — «Что можно еще улучшить?»
Да не проблема, давайте возьмемся за почтовую систему, на первом этапе, когда вы еще все только начинали, самое важно не допустить простых ошибок. Например, для всех почтовых протоколов выдать клиентам одно и тоже имя вида mail.domain.ru, все равно же один сервер скажете вы. Но в дальнейшем в случае расширения вам придется сложней разделять это имя по разным протоколам, поэтому не ленитесь, сделайте отдельные имена на разные протоколы: smtp, pop, imap, даже если они пока и ведут на один сервер.

Следующим шагом можно разделить протоколы smtp от pop и imap, причем для большей надежности, можно разделить smtp на два отдельных сервера для входящей и исходящей почты.
Так же с увеличением кол-ва входящих или исходящих сообщений, можно будет увеличивать кол-во серверов smtp. В случае сервера исходящих сообщений можно использовать указание нескольких ip адресов в dns сервере, и тогда по алгоритму round-robin исходящий сервер клиентом будет выбираться по принципу перебора адресов по круговому циклу, тем самым распределяя нагрузку между серверами.

Точно так же можно поступить и с серверами входящей почты, но у вас есть еще один инструмент для управления процессом, куда же доставлять почту идущую на домены ваших клиентов. Этот параметр MX тип записи в dns, который указывает на mail-exchange сервера, которые обслуживают почту для домена. У этого типа записи можно указывать приоритет для каждого сервера или множества серверов, тем самым контролируя в каком порядке и на какой сервер будет доставлено письмо для вашего клиента.

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

С почтой развлеклись, чем бы нам заняться еще...
И тут есть тоже варианты, например CRON (планировщик задач для выполнения ваших программ). Обычно в него помещают энергоемкие и сложные задачи по обработке какой-то аналитики или операций обслуживания систем. И это может тоже вызывать проблему, если не по дискам, так по памяти или процессору, что может помешать выдачи контента с веб-сервера. Тут как вариант можно предложить следующее.

Файловую систему можно вынести на другой сервер, например по NFS, и на нем обслуживать cron задания. Так же на этот сервер можно вынести ssh доступ, так как работа этого сервера не связана с работой основного веб-сервера. Тут можно позволить клиентам пользоваться различными программами, которые вы раньше не позволяли использовать, например различные компиляторы. Ftp нет смысла сюда выносить, все же загрузка файлов должна быть ближе к хранилищу и как правило ftp не вызывает проблем ни по диску, ни по процессору, ни по памяти.

Если стало опять скучно, то можно заняться модернизацией «back-end» серверов.
Чаще всего на таких серверах происходит реконфигурация, дабы не заставлять этого делать, есть несколько путей.
Первый — это создания виртуального мапинга имен сайтов, через пути в файловой системе в которых будет фигурировать имя сайта, но в этом случае крайне сложно будет регулировать настройки определенных сайтов.
Второй вариант, это написание своего модуля который будет динамически создавать и кешировать конфигурацию на основе базы данных. Тут тоже не стоит особо увлекаться, так как если выбрать базу данных mysql или pgsql, можно будет парализовать или их работу или в случае их поломки парализовать работу сайтов, тут лучше использовать или BDB или CDB. То есть использовать промежуточную базу для хранения настроек и обновлять их, если произошли изменения в центральной базе.

Когда вы справились с вышеописанной задачей, то можно выбрать еще что-то.
Давайте подумаем, а как мы можем всем сайтам давать при необходимости отдельный ip адрес. Если у вас не один и не два сайта, а несколько тысяч, то возникает не простая ситуация. Надо прописать все ip к определенным сайтам, весьма не впечатляющее занятие, помимо прописывания в конфигах веб-сервера надо прописывать это и в конфигах самой операционной системы, что даже при некой автоматизации, потом ужасно некрасиво будет выглядеть.

Тут у себя мы выбрали немного другое решение, это создание reverse-proxy c хитрым мапингом, суть его сводится к следующем, на роутере создается маршрут для достаточно большой сети, которая направляется на адрес нашего прокси сервера. На самом проксе сервере, прописывается правило все пакеты идущее к нам в этой сети перенаправлять в определенный порт, причем именно перенаправлять, то есть оставляя в пакетах информацию о src и dst адресе. Дальше наш прокси сервер, получая этот пакет, видит куда он направлен, опять же через промежуточно сформированный CDB файл, и определяет на каком из «back-end» находится контент по данному запросу, направляет этот запрос туда и передает ответ клиенту.

По такой же аналогии можно вообще раздать всем сайтам IPV6 адреса, наверняка в вашей базе, где хранится список сайтов, у каждого сайта есть свой уникальный числовой идентификатор, как правило, это integer, а это всего лишь 32 бита, для ipv6 это сущая мелочь. То есть на все ваши проделки хватит сети /96, 4 млрд. адресов. :-)
Суть идеи такова, пакеты перехватываются и направляются опять же в порт проки сервера, только в этом случае мы берем последние 4 байта адреса ipv6, которые и есть уникальный идентификатор сайта, дальше не составит опять заглянуть в базу и найти, куда направить этот запрос уже по верх ipv4.

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

Виртуальный хостинг

Виртуальный выделенный сервер (VPS)

Выделенный сервер (VDS)

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

Выделенный сервер (VDS)

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

Устанавливать программное обеспечение;

Включать, отключать и перезагружать;

Выставлять необходимые настройки.

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

Виртуальный выделенный сервер (VPS)

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

Но при этом у Вас есть возможность:

Получить гарантию, что для вашего сайта будет выделен определенный фиксированный объем памяти.

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

По сути, отличие от VDS только в том, что в этой ситуации вы делите ресурсы компьютера с другими пользователями.

Виртуальный хостинг.

Этот вариант считается самым дешевым и объем памяти и ресурсов, которые выделяются в этом случае, будут минимальными.

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

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

Кроме того, на виртуальном хостинге у вас не будет возможности устанавливать серверное программное обеспечение. За этот момент отвечает служба поддержки.

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

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

Почему я выбираю именно Макхост, я писал .

Создать сайт - это только начало работы. Чтобы творение увидели остальные, нужно его разместить в Интернете. Для этого специальные интернет-провайдеры сдают в аренду пространство на сервере - по сути, место на жестком диске. Виртуальный хостинг - что это такое? Плюсы и минусы, критерии правильного выбора компании - рассмотрим в нашей статье.

Виртуальный хостинг - это… Определение понятия и услуги

Виртуальный хостинг - это аренда дискового пространства на сервере компании-хостера. На сервере могут располагаться тысячи сайтов; они делят между собой его оперативную память, мощность процессора и имеют общее ПО. Так как ресурсы раздела ограничены (часто администраторами провайдера, чтобы разбухший трафик сайта не тормозил работу соседей), виртуальный хостинг подходит для визиток, небольших порталов, лэндингов - страниц, посещаемость которых не превышает 800-1000 человек в сутки.

Компания, предлагающая услуги виртуального хостинга, идентифицирует пользователей по доменным именам (при этом IP хостующихся одинаков), либо по IP - в этом случае хозяин имеет несколько отдельных веб-интерфейсов.

Характеристики виртуального хостинга

Стоимость месячного размещения зависит от характеристик тарифной опции:

  • Размера дискового пространства, на котором хранятся файлы кода и контент - обычно от 1500 МБ до 10 ГБ и выше.
  • Месячного трафика - сколько человек ежемесячно может посетить сайт, не перегрузив систему.
  • Количества сайтов и поддоменных имен, которые можно зарегистрировать в одном разделе - обычно 1 сайт требует 1000-2000 МБ.
  • Числа доступных почтовых ящиков.
  • Количества баз данных и памяти под них.

Плюсы использования виртуального хостинга

Для небольших сайтов виртуальный хостинг - лучший выбор, так как он:

  1. Экономичен: владелец интернет-ресурса оплачивает только аренду места на жестком диске сервера компании, а обслуживание дата-центра, своевременное обновление баз и программного обеспечения, заботы о безопасности, аналитику посещаемости берет на себя хостер.
  2. Прост в обслуживании: осуществляется через удобную русифицированную административную панель. Работа с сайтом не требует специальных знаний.
  3. Размер памяти и трафика, количество зависят только от выбранного тарифного плана, то есть можно подобрать условия размещения в соответствии с бюджетом и потребностями сайта.
  4. Различные акции и спецпредложения хостера: бесплатное доменное имя, тестовый период, возможность разместить сайты, написанные на разных CMS и т. д.

Минусы виртуального хостинга

  1. Хостующиеся интернет-ресурсы не могут использовать свое ПО. Это критично, если сайт базируется на самописной или непопулярной CMS - приходится переносить его на ПО провайдера.
  2. Уровень безопасности, обеспеченный хостером, всегда оставляет желать лучшего. Даже если защита стоит, среди размещенных на одном сервере сайтов найдется хотя бы один, чей код уязвим для хакеров - это и будет слабое звено в общей системе.
  3. Мощность процессора и оперативную память сайт делит со своими соседями по серверу. Если ограничения по трафику не стоят, то набирающий популярность домен будет отбирать ресурсы у остальных. Отсюда - долгая загрузка, «лежащие» страницы, неотвечающие базы данных.

Тем, кто заботится о безопасности интернет-ресурса (например, корпоративного портала или страницы с формами-подписками), чей трафик больше, чем предлагает провайдер, нужно обратить внимание на виртуальный сервер. Хостинг на общем сервере - для маленьких сайтов, отдельная машина в дата-центре - для сайтов крупнее.

Чем отличается виртуальный хостинг от выделенного сервера?

Выделенный сервер (VPS, VDS) располагается на отдельном компьютере.

  1. Администрирование VPS целиком лежит на арендаторе сервера. Он может устанавливать ПО, включать скрипты разной сложности, флеш-анимацию и т. д. Однако управление такой системой требует специальных знаний, умения программировать в веб-среде.
  2. VPS можно использовать под различные торговые площадки ("Форекс", аукционы), игровые серверы (от браузерных до ММОРПГ) и т. д.
  3. Если на выделенном хостинге администрация провайдера отвечает за доступность портала в Интернете, то при аренде VPS хостер следит только за физическим состоянием компьютера. Защита от хакерских атак, обновление ПО, общая безопасность веб-ресурса - проблемы владельца сайта.
  4. Ресурсы VPS ограничены производительностью машины, которую взяли в аренду. Но никто из соседей по дата-центру эти мощности отобрать не сможет.
  5. Хостующиеся зависят от ОС, которая установлена на сервере провайдера: Linux или Microsoft. В некоторых случаях VPS полностью модулирует физический сервер: на него можно ставить любую ОС, конфигурировать ее.

Итак, виртуальный хостинг - что это такое? Это отдельное место для размещения сайта на сервере компании-провайдера. На пространстве объемом 1500 и выше Мб хранится код, файлы контента, БД - все, что нужно для функционирования интернет-ресурса. Возможности хостинга ограничены, поэтому такой тип размещения выбирают для сайтов с посещаемостью менее 1000 человек в сутки. Однако своим разделом легко управлять с помощью панели администратора, а берет на себя арендодатель. Для крупных проектов подойдет выделенный сервер - отдельная машина в дата-центре провайдера.

Разные поставщики понимают под "игровым хостингом" совершенно отличающиеся услуги.
Судя по контексту, "хостингом для игровых серверов" Ваш поставщик называет готовый игровой сервер с продажей слотов. Будем исходить из этого.

Домашний сервер (aka "под столом"):
+ Практически полное отсутствие денежных инвестиций (только инет и ремонт компа)
+ Много уже имеющейся RAM
+ Полное управление над сервером и его окружением (в т.ч. аппаратно)
- Самостоятельное администрирование
- Нужно самому делать бекапы
- Неустойчивость перед сетевыми атаками (а Minecraft от них особенно уязвим из-за UDP)
- Риск плохой связности с частью игроков (но иногда на провайдера везёт)
- Нужен прямой IP
- Спонтанное выключение сервера при отключении электричества (если нет бесперебойника), корраптящие или откатывающие файлы игрового мира

Подходит для игры закрытой компанией знакомых (до 5-15 человек).
Не подходит для размещения >15 человек (условно) и популяризации в сети, т.к. риск не справиться с сетевой атакой и больше вероятности оффлайнов или потери данных (ответственность перед игроками).

Игровой хостинг:
+ Отсутствие геморроя с администрированием окружения и аппаратным ремонтом
+ Отсутствие геморроя с настройкой сервера самой игры
+ Бекапы делают за вас
+ Игровой сервер сопровождают за вас (обновление minecraft.jar, плагинов к серверу и т.д.), и делают это хорошо, т.к. специализируются на этом
+ Хоть какая-либо защита от DDoS, т.к. от атаки одного, страдают все клиенты, в чём хостер не заинтересован
- Ежемесячная аренда услуги
- Отсутствие полноценного доступа к серверу
- Риск попасть на непрофессиональных недоучек (т.к. это ниша, наполненная "школьными" предпринимателями) и вытекающие из этого риски

- Зависимость от ассортимента и версий minecraft.jar и плагинов, которые выберет хостер
- Дорогостоящее расширение кол-ва слотов

Подходит для начинающего публичного сервера до 20 человек.
Становится невыгодным для размещения большого количества человек по мере роста сервера.

Выделенный сервер (VPS/VDS):
+ Значительно дешевле, чем аренда слотов у игрового хостинга
+ Полное управление над сервером
+ Независимость от хостера во всём: версии Minecraft, плагины, операционка, окружение
- Ежемесячная аренда услуги
- Стоимость во многом зависит от кол-ва RAM
- Риск появления лагов от перегрузки у соседей (напр.: на них обрушился DDoS)
- Защита от DDoS есть далеко не у всех провайдеров VPS/VDS
- Нужно самому делать бекапы

Подходит для средних и крупных серверов Minecraft.
Невыгоден для размещения 1-5 человек.

Очень часто клиенты спрашивают нас после создания сайта - а почему мы покупаем для нашего сайта хостинг, а не сервер?

По каким то отрывочным данным и знаниям они считают, что:

  • Хостинг - не так «круто» как сервер
  • Чем больше стоит услуга, тем лучше
  • Сервер - как неприступная гора, не подвержен атакам и сбоям

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

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

Размеры

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

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

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

Производительность

Одним из доводов клиента в пользу сервера становятся слова «ну он же мощнее». Абсолютно верно, но в большинстве случаев вся эта мощь никак не используется. В каких случаях стоит отказаться от хостинга в пользу сервера?

  • Если сайт действительно требует много ресурсов для работы
  • Если по каким то причинам сайт не оптимизирован
  • Тематика вашего сайта связана с передачей больших объемов данных - например фото или видео материалов
  • Сайт не требует много ресурсов, но высокая посещаемость не позволяет нормально работать на хостинге

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

Разница

Между хостингом и сервером есть несколько разниц, некоторые из которых могут оказаться для вас критическими

  • В большинстве случаев настраивать сервер вам надо будет самим, либо платить за это стороннему специалисту. Максимум что сделает поддержка — установит операционную систему
  • Не всегда профессионалы оказываются таковыми и делают все верно. Хостинг же изначально настраивает свои сервера специалистами на лучшую производительность
  • Если что-то сломалось - чинить вам. В хостинге же есть техническая поддержка, которая помогает даже по проблемам связанным с вашими скриптами, а так же, понятное дело, специалисты, на случай если проблема на стороне хостинга
  • Защищаться от ддоса на своем сервере вам нужно будет тоже самому, у большинства хостингов есть специальные фильтры, которые они могут включать, когда идет атака на ваш сайт
  • Резервное копирование данных с сервера вам нужно будет делать самому, так же как и мониторить его состояние. У хостинга все это происходит автоматически
  • Сервер стоит значительно дороже, чем хостинга

Надеемся эта статья поможет вам сориентироваться и понять - нужен ли вашему сайту сервер.