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

Перенаправление CNAME

Я создаю веб-приложение с Django, и среди других функций я хотел бы, чтобы люди использовали свой собственный домен, поэтому я подумал о том, чтобы сказать им перенаправить желаемую запись CNAME на мой сервер. Как я могу заставить мой сервер автоматически обновлять доступные и зарегистрированные сайты apache? Или есть решение попроще?

P.S: Как это делают Tumblr или MobileMe?

Спасибо Макс

Вы не сможете обнаружить, когда кто-то указывает DNS-запись на ваш сервер (будь то запись A, CNAME или что-то еще), если зона DNS также не управляется вашей службой.

Я бы предложил установить в Apache один vhost, который отвечает на все доменные имена (которые явно не указаны для других vhosts), и создать правило сопоставления mod_rewrite для сопоставления доменов с конкретными каталогами на сервере, т.е. http://some.domain.tld/ служить от /var/www/some.domain.tld/ или /home/some.domain.tld.

Таким образом, не требуется вносить изменения в конфигурацию Apache для каждого нового домена, вам просто нужно убедиться, что каталог существует. Вы можете автоматизировать это, имея интеллектуальный обработчик 404, который создает каталог при первом запросе и перенаправляет браузер обратно - но будьте осторожны, чтобы не сделать это таким образом, чтобы он по-прежнему правильно реагировал на другие ошибки 404 и убедитесь, что он правильно дезинфицирует свои входные данные, чтобы их нельзя было использовать для DoS-атаки или для создания структур, которые упростили бы другие атаки.

Ваше приложение может определить, для какого домена его просят обслуживать, на основе заголовка Host, отправленного в приложение (при необходимости, скажите интерфейсному веб-серверу, чтобы он передавал заголовок), и оттуда вы можете выполнять любые действия, зависящие от домена необходимы.