2011/02/12

Все поддомены на одном сайте

Задача: обработка поддоменов одним сайтом.

Решение с использованием BIND и Apache:

1. Настройка DNS

Для разрешения всех имен вида *.example.net нужно в доменной зоне иметь запись типа "A" или "CNAME", например:

    example.net.    A    1.2.3.1
    *.example.net.  A    1.2.3.1

Правило * имеет низкий приоритет, что позволяет настроить исключения. Заодно замечу, что у разных хостеров стиль конфигов может отличаться:

    example.net.    A        1.2.3.1
    ftp             A        1.2.3.3
    www             A        1.2.3.1
    *               CNAME    example.net.

2. Настройка веб-сервера Apache

Настроенный DNS направит http-запросы на веб-сервер 1.2.3.1, который может обслуживать много доменов посредством виртуальных хостов. Указать нужный можно в конфиге хоста директивой ServerAlias:

    ServerName    example.net
    ServerAlias   *.example.net

Фишка

Такая настройка не мешает иметь в другом хосте запись вида:

    ServerName    example.org
    ServerAlias   org.example.net

Это выделит запросы к org.example.net из *.example.net на другой виртуальный хост.

У хостеров это называется "паркованный домен".

2011-06-24

DNSMASQ вместо BIND

А как быть разработчику, как на РС указать, что имена *.domen.my должны обработаться локальным вебсервером? /etc/hosts такие имена не разрешает. Тут вместо большого BIND удобно использовать лёгкий DNSMASQ с конфигом:

address=/.domen.my/127.0.0.1

Заметки:

Итого:
  • Установил dnsmasq
  • Добавил конфиг:
    interface=lo
    bind-interfaces
    no-resolv
    server=8.8.8.8
    address=/.test/127.0.0.5
    
  • В NetworkManager указал 127.0.0.1 для DNS
  • Перезапустил службы

2013-06-11

DNSMASQ + VPN

habrahabr

..dnsmasq позволяет указать интерфейс, через который слать запрос..

server=/my.domain/10.10.10.253@vpn_iface
server=10.0.20.186

2013-06-11

nginx+apache

Динамические поддомены с использованием nginx+apache

Комментариев нет:

Отправить комментарий