Я хотел бы иметь возможность динамически создавать и удалять имя поддомена, используя языки сценариев, такие как 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 на сервере, потребуется дополнительная настройка, чтобы обеспечить безопасность.
В зависимости от того, является ли контент статическим или динамическим, это также повлияет на вашу конфигурацию:
Использовать
mod_vhost_alias
для отображения отдельных виртуальных хостов в их отдельные каталоги на сервере.если ты действительно хотите, создайте отдельный
<VirtualHost>
раздел для каждого известного сайта, но тогда вам придется перезапускать Apache каждый раз, когда новый пользователь регистрируетсяИспользуйте один
<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 динамических поддоменов.