2013-06-17 12 views
5

Sto provando a configurare un server di produzione composto da django + uwsgi + ngnix. Il tutorial che sto seguendo si trova qui http://www.panta.info/blog/3/how-to-install-and-configure-nginx-uwsgi-and-django-on-ubuntu.htmldjango + uwsgi + ngnix + debug off = Errore server (500)

Il server di produzione sta funzionando perché posso vedere la pagina di amministrazione quando il debug è attivo ma quando disattivo il debug. Visualizza nuovamente l'errore del server (500). Io non so cosa fare . Ngnix dovrebbe servire la richiesta di Django. Al momento non ho capito bene, può qualcuno gentilmente aiutarmi, per favore.

mia /etc/nginx/sites-available/mysite.com

server { 
    listen 80; 
    server_name mysite.com www.mysite.com; 
    access_log /var/log/nginx/mysite.com_access.log; 
    error_log /var/log/nginx/mysite.com_error.log; 


    location/{ 
    uwsgi_pass unix:///tmp/mysite.com.sock; 
    include  uwsgi_params; 
    } 



    location /media/ { 
    alias /home/projects/mysite/media/; 
    } 



    location /static/ { 
    alias /home/projects/mysite/static/; 
    } 
} 

mia /etc/uwsgi/apps-available/mysite.com.ini

[uwsgi] 
vhost = true 
plugins = python 
socket = /tmp/mysite.com.sock 
master = true 
enable-threads = true 
processes = 2 
wsgi-file = /home/projects/mysite/mysite/wsgi.py 
virtualenv = /home/projects/venv 
chdir = /home/projects/mysite 
touch-reload = /home/projects/mysite/reload 

mia settings.py

[email protected]:~# cat /home/projects/mysite/mysite/settings.py 
# Django settings for mysite project. 

DEBUG = False 
TEMPLATE_DEBUG = DEBUG 





min/css/base.css" failed (2: No such file or directory), client: 160.19.332.22, server: mysite.com, request: "GET /static/admin/css/base.css HTTP/1.1", host: "160.19.332.22" 
2013/06/17 14:33:39 [error] 8346#0: *13 open() "/home/projects/mysite/static/admin/css/login.css" failed (2: No such file or directory), client: 160.19.332.22, server: mysite.com, request: "GET /static/admin/css/login.css HTTP/1.1", host: "174.200.14.200" 
2013/06/17 14:33:39 [error] 8346#0: *14 open() "/home/projects/mysite/static/admin/css/base.css" failed (2: No such file or directory), client: 160.19.332.22, server: mysite.com, request: "GET /static/admin/css/base.css HTTP/1.1", host: "174.200.14.2007", referrer: "http://174.200.14.200/admin/" 
2013/06/17 14:33:39 [error] 8346#0: *15 open() "/home/projects/mysite/static/admin/css/login.css" failed (2: No such file or directory), client: 160.19.332.22, server: mysite.com, request: "GET /static/admin/css/login.css HTTP/1.1", host: "174.200.14.200", referrer: "http://174.200.14.200/admin/" 
+1

Hai bisogno di scoprire che cosa il messaggio di errore pitone reale è nei log che causa il 500 –

+0

ho postato Timmy, il suo strano .Tutto funziona bene quando il debug è attivo e quando è spento, tutto diventa bizzare –

+0

Stai usando 'django-compressor' o qualcosa di simile per creare file statici minificati? –

risposta

18

penso che sia il tuo ALLOWED_HOSTS impostazione (di nuovo in Django 1.5)

Prova quanto segue nel settings.py

ALLOWED_HOSTS = ['*'] 

Questo permetterà di tutto per la connessione fino a quando si ottiene il vostro nome di dominio ordinati.

Vale la pena dire che quando si ottiene un nome di dominio ordinato, assicurarsi di aggiornare questo valore (elenco dei nomi di dominio consentiti). Per quanto la documentazione per ALLOWED_HOSTS afferma:

Si tratta di una misura di sicurezza per evitare che un utente malintenzionato di avvelenamento cache e password ripristinare le email con collegamenti host maligni richieste che presentano con una finta intestazione host HTTP, che è possibile anche sotto molte configurazioni del server Web apparentemente sicure.

anche (un po 'a parte) - Non so se si dispone di una configurazione diversa per le impostazioni di Django per l'ambiente, ma questo è quello che faccio:

Alla fine del vostro settings.py includono:

try: 
    from local_settings import * 
except ImportError: 
    pass 

Poi, nella stessa directory settings.py creare un file local_settings.py (e un file __init__.py se si utilizza una struttura diversa rispetto al modello iniziale) e impostare le impostazioni per l'ambiente lì. Escludere anche local_settings.py dal proprio sistema di controllo della versione.

ad es. Ho DEBUG=False nel mio settings.py (per un predefinito sicuro) ma posso sostituire con DEBUG=True nelle mie impostazioni locali di sviluppo.

Conservo anche tutte le informazioni del mio database nel mio file delle impostazioni locali, quindi non è nel controllo di versione.

Solo un po 'di informazioni, se non lo sapevate già :-)

+0

grazie kisamoto per il tuo aiuto –

Problemi correlati