Назад | Перейти на главную страницу

Обслуживание нескольких доменов со стороннего веб-сайта

Мне интересно, как сайты, такие как сайты Google и shopify, позволяют клиентам создавать веб-сайты, а затем связывать их со своим собственным доменом? Сайты Google позволяют пользователю создавать свой собственный веб-сайт в домене, предоставленном пользователем, а shopify позволяет пользователю создавать свой собственный сайт электронной коммерции - опять же, они могут предоставить свой собственный домен, который будет использоваться для доступа к созданному интернет-магазину.

В обоих случаях якобы доступ к веб-сайту осуществляется путем ввода имени домена пользователя в браузере, хотя на самом деле веб-сайт размещен сторонней компанией (Google, Shopify и т. Д.).

Как это возможно. Есть ли у кого-нибудь представление о том, как это (вероятно) делается?

Запросы HTTP 1.0 имеют Host заголовок, который браузер заполняет фактическим именем хоста в URL-адресе и который сервер анализирует, чтобы определить, какой виртуальный хост должен обрабатывать запрос.

Все очень просто. Хостинг-провайдер настраивает HTTP-сервер, работающий на заданном IP-адресе. Предположим, это 82.10.11.12.

Наш веб-сервер может обслуживать запросы по HTTP, предназначенные для 82.10.11.12. Это регулируется DNS. У меня может быть любое количество записей DNS (записей A), указывающих на этот IP-адрес, например:

www.mysite.com. IN A 82.10.11.12
anothersite.com. IN A 82.10.11.12
awesomesite.com. IN A 82.10.11.12
rubbishsite.net. IN A 82.10.11.12
etc

Если ваш веб-браузер поддерживает HTTP / 1.1, при подключении к этому сайту адрес, введенный вами в браузере, отправляется на веб-сервер. Это называется заголовком хоста. Затем веб-браузер обслуживает виртуальный хост, соответствующий имени, введенному вами в браузере. Так работают виртуальные хосты на основе имен.

Обратите внимание: это стало возможным благодаря HTTP / 1.1. не 1.0, как указано в первом ответе.

Для очень простого обзора HTTP см .: http://www.jmarshall.com/easy/http

Для получения более подробной информации перейдите к RFC.

Google просит вас создать запись DNS CNAME, чтобы указать ваш домен на их запись хоста.

Например:

shop.yourdomain.com IN CNAME ghs.google.com

Когда ваш браузер переходит на shop.yourdomain.com, запись DNS перенаправляет ваш запрос на сервер ghs.google.com. Заголовок HOST в HTML-запросе говорит, что ваш браузер запрашивает shop.yourdomain.com, и сервер Google видит это и указывает вам на соответствующий контент.

Shopify будет работать примерно так же.