Вопрос

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

Какая инфраструктура требуется?Я использую серверы 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-скриптов на сервере, то для обеспечения безопасности потребуется дополнительная настройка.

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

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

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

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

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

Попробуйте ответить на эти вопросы:

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

Если вы используете сервер 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 будет делать то, что вы хотите.

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

<Ол>
  • Настройте подстановочные знаки так, чтобы * .mysite.com направлялся на соответствующий сервер.
  • Когда новый пользователь регистрируется, создайте соответствующий файл определения сайта Apache - у вас, вероятно, будет базовый шаблон, в который вы помещаете и сохраняете правильную информацию о поддомене.
  • Заставьте Apache перечитать его конфигурацию.
  • Profit.
  • ВАЖНО Это основано на конфигурации Apache в стиле Debian, где файлы конфигурации включены в каталог, а основная конфигурация считывает все файлы конфигурации в этом каталоге. Это значительно упростит ситуацию, потому что добавление / удаление поддоменов будет означать добавление / удаление файлов, а не редактирование одного файла, и поэтому процесс будет намного проще автоматизировать.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top