Виртуальный хостинг
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2016 г. ) |
Виртуальный хостинг — это метод размещения нескольких доменных имен (с отдельной обработкой каждого имени) на одном сервере (или пуле серверов). [ 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 , который является обязательным в 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 .
Использование
[ редактировать ]Виртуальный веб-хостинг часто широко используется в компаниях, бизнес-модель которых заключается в предоставлении клиентам недорогого хостинга веб-сайтов. Подавляющее большинство веб-сайтов клиентов услуг веб-хостинга по всему миру размещаются на общих серверах с использованием технологии виртуального хостинга.
Многие коммерческие компании используют виртуальные серверы для внутренних целей, когда существует технологическая или административная причина для управления несколькими отдельными веб-сайтами, такими как веб-сайт экстрасети для клиентов, экстрасеть для сотрудников , внутренняя интрасеть и интранет для различных отделов. Если в архитектуре веб-сайтов нет проблем с безопасностью, их можно объединить на один сервер с использованием технологии виртуального хостинга, что снижает затраты на управление и администрирование , а также количество отдельных серверов, необходимых для поддержки бизнеса.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Сколько здесь активных сайтов?» . Неткрафт . Архивировано из оригинала 30 апреля 2013 года . Проверено 14 июля 2018 г.
Примерно в 1996–1997 годах количество отдельных IP-адресов было бы хорошим приближением к количеству реальных сайтов, поскольку хостинговые компании обычно выделяли IP-адрес каждому сайту с отдельным контентом, а несколько доменных имен могли указывать на IP-адрес. используются для обслуживания одного и того же контента сайта. Однако с внедрением виртуального хостинга HTTP/1.1 и наличием технологии балансировки нагрузки стало возможным надежно размещать большое количество активных сайтов на одном (или относительно небольшом количестве) IP-адресах.
- ^ Филдинг, Рой Т.; Решке, Джулиан (июнь 2014 г.). Филдинг, Р.; Решке, Дж. (ред.). «Протокол передачи гипертекста (HTTP/1.1): синтаксис сообщений и маршрутизация» . IETF . дои : 10.17487/RFC7230 . Проверено 24 июля 2014 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь )