2014-06-18 5 views
1

Je viens d'installer Django sur mon serveur nginx et j'ai déployé un projet qui existe au niveau racine du domaine: mydoman.com/map. Je construirai d'autres projets Django sur ce serveur, mais ils ne partageront pas la même base de données, donc ils ne peuvent pas être des applications différentes du même projet, n'est-ce pas? Puis-je définir un certain niveau d'abstraction entre mes sites? Comme mydomain.com/map/map_index, et mydomain.com/map/admin pour le côté administrateur? Puis quelque chose comme mydomain.com/votes/vote_index et mydomain.com/votes/admin pour le côté admin de ce site?Déploiement de plusieurs projets ou applications Django?

Je voudrais que mydomain.com/map et mydomain.com/votes soient deux projets distincts, utilisant la même instance de Django, partageant le même dossier site-packages. Les deux projets auront besoin de modules tels que django-storages et django-memcached.

Répondre

1

Mkay. Tout d'abord, il est possible de construire une application with multiple databases. Juste FYI. Mais je vous suggère d'utiliser une application différente. Vraiment.

Oui, vous le pouvez, facilement, car nginx est si facile à utiliser!

server { 
    listen 80; 
    server_name mydomain.com; 

    location /one/ { 
     include uwsgi_params; 
     uwsgi_pass unix:/var/run/uwsgi/one.sock; 
     uwsgi_read_timeout 60; 
    } 

    location /two/ { 
     include uwsgi_params; 
     uwsgi_pass unix:/var/run/uwsgi/two.sock; 
     uwsgi_read_timeout 60; 
    } 

    .... 
} 

Ce Confis suppose que vous déployez avec fichier socket uwsgi. Donc vous avez une instance d'uwsgi-djangoapp sur/one/locaton (url) et différente sur un autre.

+0

Ainsi chaque projet serait-il complètement contenu et tout ce que je devrais faire est de télécharger chaque projet sur le serveur? – JonnyD

+0

Vous devriez faire un peu plus d'étapes: télécharger l'application django, créer une base de données, synchroniser et migrer, créer un fichier de configuration uwsgi pour démarrer ses travailleurs (uwsgi_pass reçoit le chemin vers le fichier socket), collectstatic, redémarrer uwsgi. Aussi, n'oubliez pas de mapper statique à l'emplacement comme/one/static et assumez ce préfixe dans votre application! – dt0xff

Questions connexes