Ars Longa, Vita Brevis

Настройка общих поддоменов за 5 минут

За последнюю неделю мне уже несколько раз приходилось рассказывать, как настраивать общие поддомены (известные как wildcard subdomains) в Apache и BIND/MaraDNS, поэтому решил написать статью, к которой можно будет отсылать интересующихся :-)

Общие поддомены используются в силу множества причин: создание многопользовательских инсталляций блогов/форумов, где каждый пользователь получает домен вида username.domain.tld (в качестве примера можно привести известный WordPress µ), использование одной CMS для управления всеми поддоменами и т.п.

Для серверов на базе Apache процесс настройки общих поддоменов проходит в два этапа.

  1. Создание wildcard-записи DNS

    Первый шаг состоит в создании wildcard-записи DNS. Для разных DNS-серверов это будет осуществляться по-разному (в смысле, принцип один и тот же, различия лишь в синтаксисе конфигурационного файла). Рассмотрим на примере BIND (так как BIND работает и под Linux/UNIX, и под Windows).

    Создание wildcard-записи очень просто: всё, что нужно — это добавить A-запись, связывающую имя вида *.domain.tld с IP-aдресом сервера.

    Рассмотрим на примере одного development-сервера:

    $TTL        86400
    $ORIGIN internetnetworkmarketer.org.ua.
    @  1D  IN         SOA ns1.internetnetworkmarketer.org.ua.        sjinks.internetnetworkmarketer.org.ua. (
                                  2008030500 ; serial
                                  24H ; refresh
                                  15 ; retry
                                  90w ; expire
                                  15 ; minimum
                                 )
                            IN  NS     ns1
                            IN  NS     ns.secondary.net.ua.
                            IN  NS     ns2.trifle.net.
                            IN  MX  10 @
                            IN  A      195.10.218.132
                            IN  TXT    "v=spf1 a mx:internetnetworkmarketer.org.ua -all"
                            IN  SPF    "v=spf1 a mx:internetnetworkmarketer.org.ua -all"
    ns1                     IN  A      195.10.218.132
    www                     IN  A      195.10.218.132
    

    Мы видим, что домен internetnetworkmarketer.org.ua "живёт" по адресу 195.10.218.132; там же находятся два его поддомена — ns1.internetnetworkmarketer.org.ua и www.internetnetworkmarketer.org.ua (технически www.somesite.tld является поддоменом somesite.tld; в общем случае www.somesite.tld и somesite.tld могут быть совершенно разными сайтами).

    На сайт был поставлен WordPress µ, вследствие чего нужно было создать общий поддомен — чтобы каждый пользователь получал блог вида username.internetnetworkmarketer.org.ua.

    Добавление общего поддомена сводится к добавлению A-записи в конец файла зоны:

    *.internetnetworkmarketer.org.ua.	IN  A      195.10.218.132
    

    После чего нужно было перезапустить BIND.

    После перезапуска придётся подождать некоторое время, пока новые настройки DNS "распространятся" через Internet (этот феномен называется DNS propagation).
  2. Настройка виртуального хоста Apache

    После того, как мы успешно настроили DNS, нужно указать Apache, что он должен обрабатывать адреса вида *.domain.tld (*.internetnetworkmarketer.org.ua в нашем случае).

    Пусть в файле конфигурации у нас есть такая запись о виртуальном хосте:

    [-]
    View Code Apache configuration
    <VirtualHost *:80>
        DocumentRoot "/home/internetnetworkmarketer.org.ua"
        ServerName "internetnetworkmarketer.org.ua"
        ServerAlias "internetnetworkmarketer.org.ua" "www.internetnetworkmarketer.org.ua"
        ErrorLog logs/internetnetworkmarketer.org.ua-error.log
        CustomLog logs/internetnetworkmarketer.org.ua-access.log common
    </VirtualHost>

    Всё, что нам надо — это добавить еще один псевдоним (alias) в директиву ServerAlias:

    [-]
    View Code Apache configuration
    ServerAlias "internetnetworkmarketer.org.ua" "www.internetnetworkmarketer.org.ua" "*.internetnetworkmarketer.org.ua"
    После внесения изменений Apache нужно перезапустить.

Вот так вот всё просто!

Связанные записи

Комментарии к статье "Настройка общих поддоменов (wildcard subdomains) в Apache" »

К статье "Настройка общих поддоменов (wildcard subdomains) в Apache" комментариев нет. Может быть, Вы хотите прокомментировать статью?

RSS feed for comments on this post. TrackBack URL

Оставить комментарий к записи "Настройка общих поддоменов (wildcard subdomains) в Apache"

Изображения должны быть включены!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Subscribe without commenting