Как настроить поддомены, такие как blogspot
Вопрос
Что нужно сделать, чтобы настроить поддомен для пользователей, когда они регистрируются на моем сайте?
Какая инфраструктура требуется?Я использую серверы Linux.
Решение
Вы можете сделать запись CNAME / A Запись в настройках DNS для каждого субдомена
Запись CNAME - это запись в вашем Настройки управления доменом, которые позволяют вам контролировать поддомен вашего домен.
Чтобы автоматизировать его вместе с регистрацией, вы можете написать сценарий, который выполняется для каждого пользователя, когда он / она регистрируется.
Вы также можете обратиться к этой ссылке для пошагового процесса для Apache:
Как настроить субдомены в apache
(поскольку вы упомянули Linux, я предполагаю, что это должен быть APache. Пожалуйста, укажите, если это не так)
Альтернативное решение
Вы также можете обратиться к решению с подстановочными знаками, предоставленным Alnitak , в той же теме. Я считаю, что его проще. :) Р>
Другие советы
Вы можете либо использовать определенный 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-скриптов на сервере, то для обеспечения безопасности потребуется дополнительная настройка.
В зависимости от того, является ли контент статическим или динамическим, это также повлияет на вашу конфигурацию:
Использование
mod_vhost_alias
сопоставление отдельных виртуальных хостов с их отдельными каталогами на сервере.Если вы в самом деле хотите, создайте отдельный
<VirtualHost>
раздел для каждого известного сайта, но тогда вам придется перезапускать Apache каждый раз, когда регистрируется новый пользовательИспользуйте один
<VirtualHost>
а затем посмотрите на часть имени хоста запрошенного URL-адреса (из$SERVER_NAME
переменная окружения) в сценариях, которые выводят выходные данные, чтобы определить, какой пользовательский контент отображать.
инфраструктура включает в себя доступ к dns-серверу для добавления записи с подстановочным знаком и переписывание правил в Apache.
Попробуйте ответить на эти вопросы:
- Как разрешить PHP автоматически создавать поддомен для каждого пользователя?
- Как создать учетные записи пользователей поддомена в веб-приложении
или по этой ссылке:
Если вы используете сервер 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 , вероятно, пригодится вам. Р>
Apache позволяет указывать любое количество «сайтов» на основе поддоменов на одном сервере. Создание нового файла «определения сайта» с соответствующей информацией о субдомене вместе с соответствующими подстановочными знаками DNS будет делать то, что вы хотите.
Другими словами, процесс выглядит следующим образом:
<Ол>ВАЖНО Это основано на конфигурации Apache в стиле Debian, где файлы конфигурации включены в каталог, а основная конфигурация считывает все файлы конфигурации в этом каталоге. Это значительно упростит ситуацию, потому что добавление / удаление поддоменов будет означать добавление / удаление файлов, а не редактирование одного файла, и поэтому процесс будет намного проще автоматизировать.