Описание услуг "синоним" и "субдомен"
Что такое синоним
Услуга синоним подразумевает организацию дополнительного веб-сайта для выбранного доменного имени. При этом физически запросы к этому сайту обрабатываются процессом другого виртуального сервера, работающего на нашем хостинге, который по отношению к данному синониму является родительским или базовым. То есть, используя услугу хостинга веб-сервера на доменном имени www.111.ru, Вы можете "привязать" к этому имени еще одно или несколько доменных имен дополнительно - www.222.ru, www.333.ru или любое другое. Они будут являться синонимами.
Обратите внимание: Вы можете завести до 500 синонимов и до 500 субдоменов, эта услуга бесплатна. Но в случае, если Вы регистрируете для синонима новое доменное имя, то необходима будет оплата его регистрации.
Разновидность синонима - субдомен
Услуга "субдомен" (SubDomain) является тем же синонимом, но с одним отличием: она позволяет заводить только домены третьего уровня, вида www.subdomain.111.ru и т.д.. Вы можете завести в рамках базового сервера до 500 субдоменов, которые могут указывать как на основной каталог вашего сервера, так и на его поддиректории.
Обратите внимание: синонимы и субдомены регистрируются только для основного сервера. Для дополнительных web-серверов синонимы и субдомены не регистрируются.
Как завести субдомен:
После заведения субдомена на Сервере Статистики он будет автоматически активирован примерно в течение часа -- это время требуется для вступления в силу изменений в зоне DNS.
Обработка почты для синонимов
Почта для синонима доставляется на основной (родительский) почтовый сервер. К примеру, есть основной сервер www.host.ru. К нему заведен синоним www.newhost.ru. Почта для пользователя vasya@newhost.ru будет доставлена на почтовый сервер mail.host.ru пользователю vasya. Фактически vasya@newhost.ru и vasya@host.ru -- это разные имена одного и того же почтового ящика.
Следует отметить, что существует разновидность услуги синоним, которая не имеет почты, то есть не делает указанной переадресации. Это может понадобиться в том случае, к примеру, если Вы сами занимаетесь приемом и обработкой почты для соответствующего домена. В этом случае MX-запись в домене должна указывать на Ваш почтовый сервер, который может принимать почту этого домена.
Услуга "синоним" может быть использована в следующих случаях:
- организация нескольких имен для одного и того же сайта (несколько сайтов с абсолютно одинаковым контентом)
- создание отдельного сайта для подраздела (подкаталога) родительского сайта
- создание нескольких сайтов в виде name-based virtual hosts (только для контрактов "Максимальный" и "МаксимальныйПлюс")
Типы синонимов
В данный момент есть два вида услуги "синоним":
Они могут указывать на весь сервер или на его часть -- подкаталоги.
Рассмотрим первый тип - 'path'. Предположим, что есть основной сервер www.host.ru. Нам нужно создать синоним www.newhost.ru , который должен указывать на www.host.ru/new/. Нужный тип синонима - 'path'.
Запрос пользователя www.newhost.ru будет преобразован в www.host.ru/new/, и в таком виде он будет направлен к Вашему серверу. Соответственно, значение переменной окружения HTTP_HOST при обращении к синониму соответствует имени родительского сервера, то есть, в нашем случае это будет www.host.ru. Иными словами, на родительском сервере www.host.ru невозможно отличить запрос к синониму http://www.newhost.ru от запроса к основному серверу с указанием каталога http://www.host.ru/new/
Синонимы типа vhost
Использование синонимов типа 'vhost' доступно для тарифов "Стандартный", "Активный", "Максимальный" и "МаксимальныйПлюс".
На тарифах "Стандартный" и "Активный" синоним типа 'vhost' очень похож на синоним типа 'path'. Отличие по сути только одно: значение переменной окружения HTTP_HOST при обращении к синониму типа 'vhost' соответствует тому имени, к которому происходит обращение, что позволяет пользователям в своих скриптах определять, по какому имени посетители запрашивают страницы сайта. Если, например, http://www.newhost.ru является синонимом для http://www.host.ru/new/, то при обращении к http://www.newhost.ru в HTTP_HOST будет "www.newhost.ru", при обращении к http://www.host.ru/new/ - соответственно, "www.host.ru".
Обратите внимание, что обращения к http://www.domain и http://domain не разделяются. Например, и при обращении к http://www.newhost.ru, и к http://newhost.ru в HTTP_HOST будет "www.newhost.ru".
Вы можете самостоятельно выбирать тип синонима между 'path' и 'vhost'. Зайдите на Сервер Статистики под управляющим логином, выберите соответствующую услугу ("Synonym", "Alias", "SubDomain"), а затем - ссылку "Управление услугой". Мы рекомендуем использовать синонимы типа 'vhost'.
На тарифах "Максимальный" и "МаксимальныйПлюс" с помощью синонимов типа 'vhost' можно создавать полноценные www-серверы. Об этой возможности можно прочитать ниже. Однако мы советуем использовать для этих целей услугу "Дополнительный web-сервер", который работает независимо от основного.
Особенность trailing slash redirect
Здесь может быть особый случай, когда пользователь набирает в браузере http://newhost.ru/dir и попадает на http://host.ru/new/dir/, тем самым "обнаруживая" родительский сервер. Это особенность работы сервера Apache, называемая trailing slash redirect - если в конце адреса не был указан символ '/' (slash), то apache сделает "переадресацию" (external redirect) на основное имя сервера.
Если по какой-либо причине это нежелательно, то при помощи использования модуля mod_rewrite можно изменить его на нужный редирект. Для этого в каталоге основного сервера, куда указывает www-alias newhost.ru, создается файл .htaccess следующего содержанием:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{REQUEST_URI} !^/new$ RewriteRule ^(.+[^/])$ http://newhost.ru/$1/ [R] RewriteBase /new/
Использование синонима типа 'vhost' на тарифах "Максимальный" и "МаксимальныйПлюс"
На тарифах "Максимальный" и "МаксимальныйПлюс", используя синонимы типа 'vhost', можно создавать полноценные www-серверы. Это потребует внесения некоторых изменений в файл конфигурации веб-сервера Apache httpd.conf (или httpd2.conf, если Вы используете Apache 2.2), что подразумевает наличие базовых знаний по управлению сервером Apache и некоторых навыков работы в unix-shell. Если Вы являетесь владельцем сервера, работающего по тарифу "Максимальный" или "МаксимальныйПлюс", Вы можете самостоятельно выбирать тип синонима между 'path' и 'vhost'. Зайдите на Сервер Статистики под Управляющим логином, выберите соответствующую услугу ("Synonym", "Alias", "SubDomain"), а затем - ссылку "Управление услугой".
Предположим, что есть основной сервер www.host.ru, расположенный в каталоге /bhome/part2/01/host/www/ . Нам нужно создать алиас newhost.ru , который должен указывать на каталог /bhome/part2/01/host/new/, тип синонима - 'vhost'. При этом для сервера и для его алиаса создадим свои каталоги для исполнения www-скриптов: соответственно, host.ru -- /bhome/part2/01/host/vcgi/ , а newhost.ru -- /bhome/part2/01/host/newvcgi/ .
Дописываем/исправляем в файле httpd.conf (или httpd2.conf, если Вы используете Apache 2.2) следующее:
# эта строка обязательно должна присутствовать NameVirtualHost * # сначала определим родительский сервер как virthost <VirtualHost *> ServerName www.host.ru ServerAlias host.ru DocumentRoot /bhome/part2/01/host/www/ <Directory /bhome/part2/01/host/www> Options Indexes FollowSymLinks +Includes AllowOverride All Order allow,deny Allow from all </Directory> DirectoryIndex index.htm index.html index.php index.shtml AccessFileName .htaccess # определяем каталог для исполняемых скриптов ScriptAlias /cgi-bin/ /bhome/part2/01/host/vcgi/ <Directory /bhome/part2/01/host/vcgi> AllowOverride None Options ExecCGI FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost> # определяем синоним(ы) <VirtualHost *> ServerName www.newhost.ru ServerAlias newhost.ru DocumentRoot /bhome/part2/01/host/new/ <Directory /bhome/part2/01/host/new> Options Indexes FollowSymLinks +Includes AllowOverride All Order allow,deny Allow from all </Directory> DirectoryIndex index.htm index.html index.php index.shtml AccessFileName .htaccess # определяем каталог для исполняемых скриптов ScriptAlias /cgi-bin/ /bhome/part2/01/host/newvcgi/ <Directory /bhome/part2/01/host/newvcgi> AllowOverride None Options ExecCGI FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost>
Обратите внимание: должны быть описаны как родительский сервер, так и синоним.
Кроме того, синонимы типа 'vhost' обладают еще одной особенностью: значение "DocumentRoot", заданное в конфигурационном файле веб-сервера, и параметр "Путь", указанный на сервере статистики в разделе "Управление услугой", "складываются". То есть при использовании описанной выше конфигурации, если указать "Путь" - "test", то обращения к www.newhost.ru будут попадать в /bhome/part2/01/host/new/test. Именно поэтому для синонимов типа 'vhost' значение "Путь" следует оставлять пустым.
Можно также добавлять различные директивы внутрь соответствующих секций. К примеру, можно задать отдельный лог для ошибок и т.п.