Настройка общих поддоменов (wildcard subdomains) в Apache
Настройка общих поддоменов за 5 минут
За последнюю неделю мне уже несколько раз приходилось рассказывать, как настраивать общие поддомены (известные как wildcard subdomains) в Apache и BIND/MaraDNS, поэтому решил написать статью, к которой можно будет отсылать интересующихся Общие поддомены используются в силу множества причин: создание многопользовательских инсталляций блогов/форумов, где каждый пользователь получает домен вида username.domain.tld (в качестве примера можно привести известный [...]
← Вернуться к полной версии записи «Настройка общих поддоменов (wildcard subdomains) в Apache»…
Автор: Vladimir; опубликовано в: Администрирование; метки: Apache, BIND, общий поддоменАпр
2008
Комментарии к статье «Настройка общих поддоменов (wildcard subdomains) в Apache» (38) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Настройка общих поддоменов (wildcard subdomains) в Apache»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Привет, спасибо за статью
Весьма полезно.
Есть вопрос по теме: Нужно сделдать для пользователя возможность прикрепить свой домен. Какими средствами этого можно достичь?
Станислав, всё зависит от используемого софта.
Например, если web-приложение поддерживает общие поддомены (как, например, WordPress), то нужно только сконфигурировать DNS и web-сервер: в DNS добавить запись общего поддомена (
* IN A ip.ad.dr.es), web-серверу задать псевдоним виртуального хоста (для Apache —ServerAlias *.mysite.com, для nginx —server .mysite.com).Если же нет, то нужно смотреть, что вообще можно сделать.
А скажи плз – куда именно добавлять А-запись? В какой файл настроек БИНДа?
В файл зоны.
*.sitename.com IN A ip.ad.re.ss>В файл зоны.
Сорри, но как бэ именно это и спрашиваю
В каталоге /etc/bind находится 13 файлов.
В какой из них? Как определить?
Вот у меня задача для того же вордпресса на локалхосте под линухом (точнее на виртуалхосте). Т.е. для 127,0,0,1.
Куда я должен прописать А-запись?
Допустим, сайт называется
example.com.В этом случае Вам нужно найти строку
zone "example.com"в Ваших файлах. В том, в котором она будет найдена, будет содержать код наподобие такого:type master;
file "/path/to/zone/file";
};
/path/to/zone/fileи будет требуемым файлом.Если все локально, то можно в
/etc/hosts— только каждый сайт придётся прописывать отдельно.Например,
Vladimir, благодарю за попытку помочь, но видимо мы друг-друга не понимаем
У меня есть настроенные и рабочие виртуалхотсты. (sitelocal1.loc, sitelocal1.loc и тд..).
Все они прописаны в хостс (Чтобы понятней было – делалось по этой методе: forum.ubuntu.ru/index.php?topic=52552.0 См там спойлер: “Как настроить виртуальные хосты?”).
Теперь на одном из этих виртулхостов нужно поднять вилкард (записи в хостс – не вариант в данном случае). Для этого собсно и пришлось установить БИНД.
В его конфигах НЕТ ни одного вируталхоста (что, думаю, естественно).
Вот я и никак не пойму, куда нужно добавить А-запись.
В конфиг апача сервералиас вписал и он работает (отвечает, если в хостс ручную прописать сабдомен). Осталось (как я понимаю) настроить БИНД.
Благодарю за помощь.
В
/etc/bind/named.conf.localдописываете такое (предполагаю, что у Вас Ubuntu):type master;
file "/etc/bind/zone-sitelocal1.loc";
};
Создаёте
/etc/bind/zone-sitelocal1.loc:$TTL 600
sitelocal1.loc IN SOA localhost.localdomain. root.localhost.localdomain. (20110809094700 600 300 54432000 600)
IN NS localhost.localdomain.
IN A 127.0.0.1
*.sitelocal1.loc IN A 127.0.0.1
Перезапускаете bind, смотрите в логах, что всё в порядке.
Проверить можно так:
dig something.sitelocal1.loc @127.0.0.1
Затем первой строкой в
/etc/resolv.confдописываетеЕсли у Вас IP-адреса провайдером раздаются по DHCP, то нужно сказать клиенту, что нужно прописывать новый nameserver в
/etc/resolv.conf. У меня это делается так:/etc/dhcp/dhclient.conf:Как-то так.
Владимир, огромное спасибо.
Всё получилось, только БИНД ругался на данные тобой цифры в /etc/bind/zone-sitelocal1.loc.
Изменив их на значения из /etc/bind/db.local – всё сразу стало ОК.
Ещё раз благодарю за помощь.
Владимир, добрый день.
Спасибо за статью. У меня остается открытым только вопрос, как правильно настроить www для субдоменов. Т.е. задача такая:
основной домен domain.com, http://www.domain.com (все прописано, как вы и описываете, работает)
субдомен sub.domain.com (прописана A запись вида * A IP – работает), http://www.sub.domain.com – не работает, нет такого домена, почему не работает, в общем, понятно, как заставить – не понятно
Подскажите, как правильно настроить. Заранее благодарна.
Nadia, напишите, пожалуйста, на vladimir at free-sevastopol dot com.
Владимир,доброе время суток, такой вопрос, может вы знаете.
Есть сайт test.pro, именно pro. На nic.ru в настройках днс указано *.test.pro.
Все работает, все отлично. Мы пользуемся адресом aaa.test.pro . Однако, время от время у разных пользователей в разных регионах, в разное время aaa.test.pro перестает открываться. Проверка показала, что домен не пингуется (пишет что такой узел не найден), в тоже время работают любые адреса, которыми никто не пользуется:
bbb.test.pro, neponeanto_cto_eto.test.pro, www.aaa.test.pro . Причем домен начинает работать примерно минут через 20-30. В чем может быть дело?
Проверьте DNS во время сбоев.
Вообще для отказоустойчивости я бы посоветовал использовать DNS двух разных провайдеров, ибо сам наступал на такие грабли с Encirca.
Спасибо за ответ. Попробуем. Посмотрим что выдаст.
вчера написал вопрос про домен pro , мой вопрос просто взяли и удалили. почему?
Вопрос этажом выше, Вы либо куки почистили, либо под другим браузером вошли.