News

Piccolo contributo per rinnovo abbonamento hosting: http://www.python-it.org/forum/index.php?topic=10331.0

Topic: due siti django ospitati in solo server con nginx  (Letto 519 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline ndrini

  • python unicellularis
  • *
  • Post: 49
  • Punti reputazione: 0
    • Mostra profilo
due siti django ospitati in solo server con nginx
« il: Marzo 02, 2016, 12:25 »
Buongiorno,
la questione riguarda, come da oggetto,
mettere in un virtual private server con ubuntu 14.04 due siti django.

La prima scelta che debbo fare, se capisco bene, è se saranno due siti distinti:
due domini che puntano allo stesso IP e poi nginx li smista,
o un dominio ed un sottodominio.

Io preferirei questa seconda (perché sarà un sito di servizio interno, se non è troppo un casino).


Ora, ho fatto una prova con due domini che puntano allo stesso IP
impostando il file nginx di configurazione così:

 
server {
    listen 80;
    server_name nome_cartella_in_cui_sono_i_files_di_django_1;

    location /static {
        alias /home/ndrini/sites/django_1/static;
    }

    location / {
        proxy_pass http://localhost:8000;
    }
}

server {
    listen 80;
    server_name www.nome_sito_django_2.com;
    root /home/ndrini/sites/django_2;
}



ma anche il secondo sito, nonostante punti ad un file statico,
usa il server di django_1.


Ora sto leggendo
http://nginx.org/en/docs/beginners_guide.html
per capire dove sbaglio.


Probabilmente dovrei lanciare il secondo runserver di django su di un'altra porta
python3 manage.py runserver 8010


ed impostare nel file di nginx
    location / {
        proxy_pass http://localhost:8010;
    }


Andrea

 

« Ultima modifica: Marzo 02, 2016, 12:45 da ndrini »

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4087
  • Punti reputazione: 5
    • Mostra profilo
    • Markon blog
Re: due siti django ospitati in solo server con nginx
« Risposta #1 il: Aprile 19, 2016, 13:52 »
Ciao!

Hai gia' provato con questo?


server {
  listen 80;
  server_name domain1.com;
  root /home/user/www/domain1;
  index index.html index.htm;
}

server {
  listen 80;
  server_name sub1.domain1.com;
  root /home/user/www/sub1;
  index index.html index.htm;
}


Altrimenti, potresti usare lo "smistamento", come hai gia' scritto:

server {
    listen 80;
    server_name example.com;

    location /foo {
        proxy_pass http://localhost:9000;
    }

    location /bar {
        proxy_pass http://localhost:9001;
    }

    location /baz {
        proxy_pass http://localhost:9002;
    }
}


Chiaramente, se le due applicazioni Django si trovano sullo stesso server dovranno essere in ascolto su due porte diverse, altrimenti non c'e' altro modo per identificare l'app django che vuoi usare.