Deux ou plusieurs projets Django dans la même droplet via le sous-domaine

J’ai deux projets de django. Lorsque la personne visite, www.example.com, je souhaite que le projet django A soit servi.

Lorsque la personne visite, par exemple, blog.example.com, je souhaite que le projet django B soit servi.

Comment puis-je y parvenir en utilisant nginx et gunicorn, du sharepoint vue de la configuration?

J’ai terminé avec la configuration DNS du sous-domaine. J’ai besoin d’aide dans l’aspect nginx-gunicorn du service des pages.

J’ai utilisé l’installation en un seul clic de django by DO, donc si la configuration pouvait être conforme à leur configuration, ce serait génial.

Aucune idée si cette question appartient ici ou serverfault.

Le principe est d’utiliser nginx en tant que courtier pour les requêtes HTTP, en les envoyant par proxy à deux instances gUnicorn exécutant vos deux applications Django en parallèle, en fonction de leur en-tête Host .

Pour cela, vous devez configurer deux configurations de serveur différentes avec nginx. Chacun avec un server_name différent. Ces deux serveurs vont proxy vers deux instances gUnicorn différentes s’exécutant sur des ports différents.

Configuration Nginx

 # Server definition for project A server { listen 80; server_name ; location / { # Proxy to gUnicorn. proxy_pass http://127.0.0.1:; # etc... } } # Server definition for project B server { listen 80; server_name ; location / { # Proxy to gUnicorn on a different port. proxy_pass http://127.0.0.1:; # etc... } } 

Il serait peut-être préférable de séparer les deux définitions dans des fichiers distincts. Rappelez-vous également de les lier dans /etc/nginx/sites-enabled/ .

Configuration de démarrage

Ces deux fichiers doivent être placés dans /etc/init/ .

projecta_gunicorn.conf :

 description "Gunicorn daemon for Django project A" start on (local-filesystems and net-device-up IFACE=eth0) stop on runlevel [!12345] # If the process quits unexpectadly sortinggger a respawn respawn setuid django setgid django chdir /home/django/ exec /home/django//bin/gunicorn --config /home/django/ .wsgi:application 

projectb_gunicorn.conf :

 description "Gunicorn daemon for Django project B" start on (local-filesystems and net-device-up IFACE=eth0) stop on runlevel [!12345] # If the process quits unexpectadly sortinggger a respawn respawn setuid django setgid django chdir /home/django/ exec /home/django//bin/gunicorn --config /home/django/ .wsgi:application 

Configuration de gUnicorn

Projet Un gunicorn.py :

 bind = '127.0.0.1:' raw_env = 'DJANGO_SETTINGS_MODULE=.settings' 

Projet B gunicorn.py :

 bind = '127.0.0.1:' raw_env = 'DJANGO_SETTINGS_MODULE=.settings'