Назад | Перейти на главную страницу

Как мне динамически создавать имена поддоменов?

Я хотел бы иметь возможность динамически создавать и удалять имя поддомена, используя языки сценариев, такие как PHP, Python, Perl или другие. Я использую Apache в качестве веб-сервера

Пример:

http://subdomain.example.com
http://subdomain2.example.com

Спасибо

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

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

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

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

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

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

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

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

На самом деле не создавайте поддомены, а просто используйте поддомен с подстановочными знаками, чтобы вы могли http://anything.example.com.

На самом деле это вопрос DNS, а не вопрос Apache, если у вас нет записи * .example.com, указывающей на указанный веб-сервер. Если клиент не может разрешить субдомен ??. Example.com, веб-сервер не имеет значения.

Создание поддоменов встроено в Apache, посмотрите на массовый vhosting. В частности: http://httpd.apache.org/docs/2.0/vhosts/mass.html

Все, что вам нужно сделать, это придумать соглашение, а затем заставить ваш сценарий создавать каталоги, когда это необходимо. Но технически вы хотите начать с настройки конфигурации apache mass vhost.

Другое решение, которое я использовал на веб-сайте python, - это проверить поддомен в промежуточном программном обеспечении. Затем я проверяю это по базе данных поддоменов, и если я нахожу совпадение, я устанавливаю настройку уровня запроса, сообщающую коду, на какой поддомен я смотрю.

Он действительно довольно чистый и может очень хорошо работать. Мой сайт в настоящее время поддерживает более 350 динамических поддоменов.