2011-01-20 1 views
2

Je crée un projet Django qui sera utilisé par plusieurs domaines, et la fonctionnalité sera légèrement différente en fonction du domaine. Je suis à la recherche de conseils sur la bonne façon de le mettre en place. Le cadre sites semble être le bon choix pour effectuer certaines personnalisations une fois que le traitement a atteint le point où il exécute le code Django. Mais j'essaye de déterminer ce que l'installation devrait être avant que nous atteignions ce point (concernant le nginx, le flup, le fastcgi, la config).Méthode recommandée pour configurer la configuration Django Fast CGI avec plusieurs domaines

Voici ma compréhension actuelle:

Il semble que plusieurs paramètres Django fichiers sont appropriés, chacun avec un autre SITE_ID. Ensuite, deux hôtes virtuels seraient configurés dans la configuration nginx qui pointerait vers deux sockets différents. Deux processus « manage.py de runfastcgi » seraient alors utilisés pour écouter sur les deux prises différentes et chaque processus renverrait un autre settings.py

./manage.py --settings=settings.site1.py runfcgi method=prefork socket=/home/user/mysite1.sock pidfile=django1.pid 
./manage.py --settings=settings.site2.py runfcgi method=prefork socket=/home/user/mysite2.sock pidfile=django2.pid 

Cependant, il semble que cela pourrait être gênant si vous ajoutez des domaines plus . Il faudrait exécuter un nouveau processus 'manage runfastcgi' pour chaque domaine qui serait ajouté. Existe-t-il un moyen de prendre en charge plusieurs sites de cette manière sans exécuter un processus distinct pour chacun? Quelles sont vos expériences avec l'hébergement de plusieurs domaines avec Django?

Tout conseil est très apprécié. Merci pour la lecture.

Joe

+1

Un ami m'a transmis ce lien. Bien qu'il ne réponde pas vraiment à cette question, il semble fournir quelques informations utiles à ce sujet. http://trojanbadger.com/2008/12/9/django-sites-framework-and-multi-site-cms/ –

Répondre

2

Si vous allez avoir beaucoup de domaines en cours d'exécution, un processus par domaine peut être assez cher. Le cadre des sites a été conçu à l'origine avec un autre cas d'utilisation: être capable de créer facilement du contenu «dupliqué» sur plusieurs sites d'actualité. Lorsque vous essayez d'utiliser le framework de sites pour d'autres utilisations, vous rencontrez plusieurs difficultés.

une possibilité consiste à déplacer le traitement de domaine vers un intergiciel et django gérer la partie multidomaine. Ce n'est pas trivial mais, surtout si vous devez modifier des applications pour être domaine conscient, et aussi URLconfs, modèles, etc ... Une recherche rapide Google a montré:

http://djangosnippets.org/snippets/1119/

peut aider comme point de départ.

+0

Merci Ashwoods, il semble que cette approche pourrait fonctionner. Comme vous l'avez mentionné, il pourrait être utile de faire en sorte que les applications soient sensibles au domaine, mais il y a probablement des approches qui permettront de limiter cela. Merci pour vos conseils. Joe –

Questions connexes