Могу ли я создать поддомен для каждого пользователя в Django - PullRequest
4 голосов
/ 01 июля 2011

Я хочу, чтобы пользователи создали свою учетную запись, и пользователи должны получить свою собственную учетную запись, например user.foo.com, и указать другую папку на другой шаблон. Возможно ли это в Джанго? Я совершенно новичок в Django

Ответы [ 2 ]

12 голосов
/ 01 июля 2011

Ответ, предоставленный Андре, не совсем правильный. Вам действительно понадобится домен с подстановочными знаками, большинство достойных провайдеров разрешат это, в том числе GoDaddy (IE, это не ограничение, которое должно вас сильно беспокоить).

"Чтобы сделать это напрямую, вам нужно запустить Django под учетной записью пользователя, у которой есть доступ на запись в файл конфигурации вашего веб-сервера, что на самом деле не рекомендуется. Предполагая, что все хосты находятся на одном компьютере, вы можете сделать это косвенно, например, запросы в очереди, когда кто-то одобряет их вручную и редактирует файл, или запускает скрипт через cron и перезаписывает конфигурацию сервера каждые X минут / часов / дней. "

Это абсолютно неправильно во всех отношениях. На самом деле все, что вам нужно для этого - это: Промежуточное ПО для поддоменов . Просто соедините это с соответствующей конфигурацией веб-сервера, чтобы принимать запросы к * .example.com, и у вас есть необходимая переменная, из которой вы снимаете очередь при каждом просмотре

5 голосов
/ 01 июля 2011

Сам Django не знает, какой веб-сервер вы используете.Обычно, чтобы настроить дополнительные субдомены, вам необходимо добавить виртуальные хосты в конфигурацию вашего веб-сервера и убедиться, что ваш DNS-провайдер перенаправляет запросы для этого субдомена на соответствующий сервер.

Чтобы сделать это напрямую, вы 'Вам нужно будет запустить Django под учетной записью пользователя, у которого есть доступ для записи в файл конфигурации вашего веб-сервера, что действительно не рекомендуется.Предполагая, что все хосты находятся на одном компьютере, вы можете сделать это косвенно, например, поставить в очередь запросы и попросить кого-нибудь вручную утвердить их и отредактировать файл, или запустить скрипт через cron и перезаписывать конфигурацию сервера каждые X минут./hours/days.

Кроме того, регистрация DNS является серьезной проблемой.Если у вас есть доменное имя с подстановочными знаками, например "*.foo.com", все будет в порядке.Если ваш DNS-провайдер не разрешает этого, вам нужно будет, чтобы кто-то зарегистрировал дополнительные субдомены вручную.

По сути, почти ни один из них не связан с Django, и почти все это зависит от вашего сервера.программный стек (который вы не указали).

...