2009-04-23 8 views
1

Je cours Django sur un serveur avec une douzaine d'hôtes virtuels configurés. Le premier site Django que j'ai mis en place fonctionne très bien, mais je suis sur le point d'en créer un second. Dois-je exécuter un deuxième processus fastcgi?Comment exécuter plus d'un site Django sur un seul serveur en utilisant fastcgi?

Pour le premier site que je fcgi en cours d'exécution ainsi:

/home/django/app1/manage.py runfcgi protocol=fcgi host=127.0.0.1 port=8081 

La config nginx pour les points de domaine à ce processus fcgi (fastcgi_pass 127.0.0.1:8081).

Pour le deuxième site, dois-je lancer une copie du fcgi, comme dans un fcgi par site ?:

/home/django/app2/manage/py runfcgi protocol=fcgi host=127.0.0.1 port=8082 

Et puis diriger la config nginx à ce processus (fastcgi_pass 127.0.0.1: 8082)?

Ou existe-t-il un moyen de gérer plus d'un site Django avec un seul fastcgi? Existe-t-il une meilleure pratique pour configurer un serveur multi-Django?

Répondre

2

Cela dépend de ce que vous entendez par site, et de ce à quoi ressemblent vos configurations Django. Chaque fichier Django settings.py définit une et une seule base de données, une et une seule arborescence urls.py. Chaque Django a une settings.py - une base de données - un arbre urls.py.

Si chaque site possède une base de données distincte, ils ont besoin de settings.py distincts et vous aurez besoin d'une instance fastcgi distincte.

Si tous les sites sont pris en charge par une seule base de données, avec un seul fichier settings.py, vous pouvez les extraire tous d'une seule instance fastcgi.

Notez que le gestionnaire urls.py de Django ignore principalement le nom d'hôte et le numéro de port dans l'analyse de l'URL dans la requête. Toutefois, si vous incluez le modèle Sites, vous pouvez faire en sorte que le nom d'hôte virtuel fasse partie du traitement des demandes.

+0

Merci, c'est très utile. –

0

Pour ce que ça vaut la peine que vous pouvez en finir avec les frais généraux de tcp et utiliser une prise à la place:

/home/django/app1/manage.py protocole runfcgi = fcgi socket =/var/run/mysite.sock Les connecteurs doivent être lisibles et accessibles en écriture pour l'utilisateur du serveur Web.

Questions connexes