Как настроить субдомены, такие как blogspot - PullRequest
4 голосов
/ 26 ноября 2008

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

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

Ответы [ 5 ]

6 голосов
/ 26 ноября 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

или

$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) в сценариях, которые визуализируют вывод, чтобы выяснить, какой пользовательский контент отображать. *

3 голосов
/ 26 ноября 2008

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

Запись CNAME - это запись в вашем Настройки управления доменом, которые позволяют вам контролировать поддомен вашего домен.

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

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

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

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

Альтернативный раствор

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

0 голосов
/ 26 ноября 2008

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

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

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

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

0 голосов
/ 26 ноября 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 , вероятно, пригодится вам.

0 голосов
/ 26 ноября 2008
Инфраструктура

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

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

или по этой ссылке:

...