stringtranslate.com

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

Виртуальный хостинг — это метод размещения нескольких доменных имен (с отдельной обработкой каждого имени) на одном сервере (или пуле серверов). [1] Это позволяет одному серверу совместно использовать свои ресурсы, такие как память и циклы процессора, не требуя, чтобы все предоставляемые службы использовали одно и то же имя хоста. Термин виртуальный хостинг обычно используется в отношении веб-серверов , но его принципы распространяются и на другие интернет- сервисы.

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

Существует два основных типа виртуального хостинга: на основе имени и на основе IP. Виртуальный хостинг на основе имени использует имя хоста, предоставленное клиентом. Это экономит IP-адреса и связанные с ними административные издержки, но обслуживаемый протокол должен предоставлять имя хоста в соответствующей точке. В частности, существуют значительные трудности при использовании виртуального хостинга на основе имен с SSL/TLS . Виртуальный хостинг на основе IP использует отдельный IP-адрес для каждого имени хоста и может выполняться с любым протоколом, но требует выделенного IP-адреса для каждого обслуживаемого доменного имени. Виртуальный хостинг на основе портов также возможен в принципе, но на практике он используется редко, поскольку он недружелюбен к пользователям.

Виртуальный хостинг на основе имени и IP-адреса можно комбинировать: сервер может иметь несколько IP-адресов и обслуживать несколько имен на некоторых или всех этих IP-адресах. Этот метод может быть полезен при использовании SSL/TLS с подстановочными сертификатами. Например, если у оператора сервера есть два сертификата: один для *.example.com и один для *.example.net, оператор может обслуживать foo.example.com и bar.example.com с одного и того же IP-адреса, но для этого потребуется отдельный IP-адрес для baz.example.net.

На основе имени

Виртуальные хосты на основе имен используют несколько имен хостов для одного и того же IP-адреса .

Технической предпосылкой, необходимой для виртуальных хостов на основе имени, является веб-браузер с поддержкой HTTP /1.1 (сегодня это обычное явление) для включения целевого имени хоста в запрос. Это позволяет серверу, на котором размещено несколько сайтов за одним IP-адресом, доставлять правильный контент сайта. Более конкретно, это означает установку HTTP-заголовка Host , который является обязательным в HTTP/1.1. [2]

Например, сервер может получать запросы на два домена: www.example.com и www.example.net , оба из которых разрешаются на один и тот же IP-адрес. Для www.example.com сервер отправит HTML-файл из каталога /var/www/user/Joe/site/ , а запросы для www.example.net заставят сервер обслуживать страницы из /var/www/user. /Мария/сайт/ . Два поддомена одного и того же домена могут размещаться вместе. Например, на сервере блога могут размещаться как blog1.example.com, так и blog2.example.com.

Самая большая проблема с виртуальным хостингом на основе имени заключается в том, что сложно разместить несколько защищенных веб-сайтов, использующих SSL/TLS . Поскольку рукопожатие SSL/TLS происходит до того, как ожидаемое имя хоста будет отправлено на сервер, сервер не знает, какой сертификат представить в рукопожатии. Один сертификат может охватывать несколько имен либо через поле «subjectaltname», либо через подстановочные знаки, но практическое применение этого подхода ограничено административными соображениями и правилами сопоставления подстановочных знаков. Существует расширение TLS, называемое « Индикация имени сервера» , которое отображает имя в начале рукопожатия, чтобы обойти эту проблему, за исключением некоторых старых клиентов (в частности, Internet Explorer в Windows XP или более старых версиях Android ), которые не поддерживают SNI .

Более того, если система доменных имен (DNS) не работает должным образом, получить доступ к виртуально размещенному веб-сайту будет сложно, даже если IP-адрес известен. Если пользователь попытается вернуться к использованию IP-адреса для связи с системой, как в http://10.23.45.67/ , веб-браузер отправит IP-адрес в качестве имени хоста. Поскольку веб-сервер полагается на то, что клиент веб-браузера сообщает ему, какое имя сервера (vhost) использовать, сервер ответит веб-сайтом по умолчанию — часто не тем сайтом, который ожидает пользователь.

Обходной путь в этом случае — добавить IP-адрес и имя хоста в файл хостов клиентской системы . Доступ к серверу с использованием доменного имени должен снова работать. Однако пользователи должны быть осторожны при этом, поскольку любые изменения в истинном сопоставлении имени хоста и IP-адреса будут переопределены локальными настройками. Этот обходной путь бесполезен для обычного веб-пользователя, но может быть полезен администратору сайта при исправлении записей DNS.

на базе IP

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

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

Использование

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

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

Смотрите также

Рекомендации

  1. ^ «Сколько активных сайтов?». Неткрафт . Архивировано из оригинала 30 апреля 2013 года . Проверено 14 июля 2018 г. Примерно в 1996–1997 годах количество отдельных IP-адресов было бы хорошим приближением к количеству реальных сайтов, поскольку хостинговые компании обычно выделяли IP-адрес каждому сайту с отдельным контентом, а несколько доменных имен могли указывать на IP-адрес. используются для обслуживания одного и того же контента сайта. Однако с внедрением виртуального хостинга HTTP/1.1 и наличием технологии балансировки нагрузки стало возможным надежно размещать большое количество активных сайтов на одном (или относительно небольшом количестве) IP-адресах.
  2. ^ Филдинг, Рой Т.; Решке, Джулиан (июнь 2014 г.). Филдинг, Р.; Решке, Дж. (ред.). «Протокол передачи гипертекста (HTTP/1.1): синтаксис сообщений и маршрутизация». IETF . дои : 10.17487/RFC7230 . Проверено 24 июля 2014 г. {{cite journal}}: Требуется цитировать журнал |journal=( помощь )

Внешние ссылки