Как настроить поддомены, такие как blogspot

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

Какая инфраструктура требуется? Я использую серверы Linux.


person Community    schedule 26.11.2008    source источник


Ответы (5)


Вы можете сделать запись CNAME/запись A в настройках DNS для каждого поддомена.

Запись CNAME — это запись в настройках управления вашим доменом, которая позволяет вам управлять субдоменом вашего домена.

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

Вы также можете обратиться к этой ссылке для пошагового процесса для Apache:

Как настроить субдомены в apache

(поскольку вы упомянули Linux, я предполагаю, что это должен быть APache. Пожалуйста, укажите, если это не так)

Альтернативное решение

Вы также можете обратиться к решению с подстановочными знаками, предоставленному Alnitak , в той же теме. Я считаю, что это более простой способ. :)

person M.N    schedule 26.11.2008
comment
Это не обязательно должен быть CNAME. Я делаю поддомены с записями A. Конечно, у меня есть много работы, если мой IP когда-нибудь изменится, но этого не произойдет. - person Paul Tomblin; 26.11.2008
comment
Я знаю, что это довольно безопасное предположение. И я признаю, что CNAME — не единственный способ. Я изменю свой ответ. - person M.N; 26.11.2008

Вы можете использовать определенную запись DNS (CNAME или A/AAAA) для каждого известного поддомена или запись DNS с подстановочными знаками, которая будет принимать *.example.com:

$ORIGIN example.com
foo     IN A 12.34.6.78
bar     IN A 12.34.6.78

or

$ORIGIN example.com
*       IN A 12.34.6.78

Преимущество последнего заключается в том, что после запуска службы не требуется никаких изменений в конфигурации DNS или Apache. Недостатком является то, что все такие поиски по подстановочным знакам должны (по определению) возвращать один и тот же IP-адрес.

Конфигурация Apache будет зависеть от ваших требований, как для контроля конечных пользователей, так и для безопасности. Обратите внимание, что если у пользователей есть разрешение на запуск CGI-скриптов на сервере, потребуется дополнительная настройка для обеспечения безопасности.

В зависимости от того, является ли содержимое статическим или динамическим, это также повлияет на вашу конфигурацию:

  1. Используйте mod_vhost_alias для сопоставления отдельных виртуальных хостов с их отдельными каталогами на сервере.

  2. Если вы действительно хотите, создайте отдельный раздел <VirtualHost> для каждого известного сайта, но тогда вам придется перезапускать Apache каждый раз, когда регистрируется новый пользователь.

  3. Используйте один <VirtualHost>, а затем просмотрите часть имени хоста запрошенного URL-адреса (из переменной среды $SERVER_NAME) в сценариях, которые отображают выходные данные, чтобы выяснить, какой контент пользователя отображать.

person Alnitak    schedule 26.11.2008
comment
Я пробовал. Это определенно лучше, чем мое решение выше. +1 - person M.N; 21.01.2009
comment
Какой из трех предложенных мной вариантов вы использовали? - person Alnitak; 21.01.2009

Инфраструктура включает доступ к DNS-серверу для добавления записи с подстановочными знаками и перезаписи правил в Apache.

Попробуйте эти ответы:

или эта ссылка:

person Colin Pickard    schedule 26.11.2008

Если вы используете сервер Linux, я предполагаю, что вы используете Apache в качестве веб-сервера.

Вам нужно будет настроить правильную DNS-маршрутизацию для поддомена, а также для виртуального хоста.

Виртуальные хосты довольно просты в настройке, но я не уверен, насколько легко это сделать на лету программно.

В большинстве случаев это так же просто, как отредактировать файл конфигурации apache и добавить следующее:

Port 80
ServerName www.mydomain.com

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /www/user-bob
ServerName bob.mydomain.com
...
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/user-sally
ServerName sally.mydomain.com
...
</VirtualHost> 

Документация по VirtualHost, вероятно, будет вам полезна.

person Brian Gianforcaro    schedule 26.11.2008

Apache позволяет указать любое количество «сайтов» на основе субдоменов на одном сервере. Создание нового файла «определения сайта» с соответствующей информацией о субдомене вместе с правильными подстановочными знаками DNS сделает то, что вы хотите.

Другими словами, процесс выглядит следующим образом:

  1. Настройте подстановочные знаки, чтобы *.mysite.com указывал на нужный сервер.
  2. Когда новый пользователь зарегистрируется, создайте правильный файл определения сайта Apache — у вас, вероятно, будет базовый шаблон, в который вы поместите правильную информацию о субдомене и сохраните его.
  3. Заставьте Apache перечитать свою конфигурацию.
  4. Выгода.

ВАЖНО Это основано на конфигурации Apache в стиле Debian, где файлы конфигурации включены в каталог, а основная конфигурация считывает все файлы конфигурации в этом каталоге. Это значительно упростит работу, поскольку добавление/удаление поддоменов будет означать добавление/удаление файлов, а не редактирование одного файла, и поэтому процесс будет намного проще автоматизировать.

person Harper Shelby    schedule 26.11.2008