Динамическое создание поддоменов

Динамическое создание поддоменовДинамическое создание поддоменов может быть полезно в тех случаях, когда, например, для каждого пользователя нужно создать отдельную страничку, доступную по определенному адресу как домен третьего уровня в таком виде: «http://username.domain.com». Такой механизм также можно использовать для хостинга, когда пользователь после регистрации получает место на диске под сайт и домен третьего уровня. Давайте посмотрим, как можно реализовать такое разделение на уровне DNS и на уровне веб-сервера.

Настройка DNS

Для создания доменов третьего уровня мы можем использовать возможность указания маски для записей DNS. Для этого в первую очередь добавим зону в файл со списком зон. Для Debian’а это файл /etc/bind/named.conf.local. Вот как это выглядит:

Затем создадим файл зоны /etc/bind/mydomain.org следующего содержания:

После этого можно рестартовать bind командой «service bind9 restart» и проверить, правильно ли работает эта запись.

В данном примере 192.168.0.11 — это адрес нашего DNS-сервера. Как видим, сам домен резолвится. Теперь надо проверить какой-нибудь субдомен/поддомен. Проверим поддомен «user.mydomain.org»:

Если посмотреть на файл зоны, то видно, что такой поддомен мы не задавали. Но домен третьего уровня резолвится, и так будет с любым доменом третьего уровня для домена mydomain.org.

Можно на этом считать настройку DNS оконченной. Теперь надо настроить веб-сервер таким образом. чтобы он при обращении на некоторый субдомен открывал сайт из соответствующей директории. Например, из /home/<домен-третьего-уровня>/html

Настройка веб-сервера nginx

Для веб-сервера nginx нам достаточно будет указать в конфигурационном файле название именно того домена третьего уровня, на котором предполагается размещение сайта.

Создаем файл /etc/nginx/sites-available/user следующего содержания:

Это, как вы понимаете, самый простой вариант. Обычно в файл конфигурации добавляются также другие параметры. Теперь надо создать символическую ссылку:

Осталось перезагрузить настройки nginx и проверить, работает ли свежесозданный сайт на домене третьего уровня.

Вы должны увидеть такое сообщение:

Иногда требуется выполнить «service nginx restart». Теперь можно открывать сайт в браузере или проверить его доступность программой wget или curl

Это содержимое файла index.html, находящегося в директории /home/user/html. При этом должны появиться записи в файлах /home/user/logs/access.log и /home/user/logs/error.log

Генерацию необходимых файлов при создании пользователя вам, скорее всего, потребуется автоматизировать, как и доступ для загрузки файлов по FTP, но это достаточно просто. Самое главное для динамического создания доменов третьего уровня вы уже знаете, а остальное — дело техники.


Понравилась статья?

Подпишитесь на новости сайта и получайте новые статьи на свой почтовый ящик (один раз в неделю).


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *