2013-06-17 9 views
5

Próbuję skonfigurować serwer produkcyjny, który składa się z django + uwsgi + ngnix. Samouczek, który obserwuję, znajduje się tutaj http://www.panta.info/blog/3/how-to-install-and-configure-nginx-uwsgi-and-django-on-ubuntu.htmldjango + uwsgi + ngnix + debugowanie wyłączone = Błąd serwera (500)

Serwer produkcyjny działa, ponieważ widzę stronę administratora po włączeniu debugowania, ale po wyłączeniu debugowania. Ponownie wyświetla błąd serwera (500). Nie wiem, co robić. Ngnix powinien obsługiwać żądanie django. Nie mam bladego pojęcia, Czy ktoś może mi pomóc?

mój /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/; 
    } 
} 

mój /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 

mój 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

Musisz dowiedzieć się, co rzeczywiste komunikat python jest w dziennikach, który jest przyczyną 500 –

+0

wysłałem mu Timmy jego dziwne .Wszystko działa poprawnie, gdy debugowanie jest włączone, a kiedy jest wyłączone, wszystko idzie bizzare –

+0

Czy używasz 'django-compressor' lub czegoś podobnego do tworzenia minowanych plików statycznych? –

Odpowiedz

18

myślę, że to czy ustawienie ALLOWED_HOSTS (nowy w Django 1.5)

Spróbuj wykonać następujące czynności w settings.py

ALLOWED_HOSTS = ['*'] 

pozwoli to wszystko połączyć, aż pojawi się nazwa domeny sortowane.

Warto dodać, że po otrzymaniu nazwy domeny należy ją zaktualizować (lista dozwolonych nazw domen). Jako dokumentacja dla ALLOWED_HOSTS stwierdza:

Jest to środek bezpieczeństwa, aby zapobiec intruzom zatrucia bufory i resetowania hasła e-maili z odsyłaczami do zainfekowanych hostów przez składania wniosków o fałszywą nagłówku HTTP Host, co jest możliwe nawet w wielu pozornie bezpiecznych konfiguracjach serwera.

także (a trochę na bok) - ja nie wiem, czy masz inną konfigurację ustawień dla django na środowisko, ale to, co robię:

Pod koniec swojego settings.py obejmują:

try: 
    from local_settings import * 
except ImportError: 
    pass 

Następnie w tym samym katalogu co settings.py stworzyć local_settings.py plik (i plik __init__.py przypadku korzystania inną strukturę niż początkowy szablonu) i skonfigurować ustawienia na środowisko istnieje. Wyklucz także local_settings.py z systemu kontroli wersji.

np. Mam DEBUG=False w moim settings.py (dla bezpiecznej domyślnej), ale można zastąpić DEBUG=True w moich lokalnych ustawieniach programistycznych.

Przechowuję również wszystkie informacje o mojej bazie danych w moim pliku ustawień lokalnych, więc nie ma kontroli wersji.

Wystarczy trochę informacji, jeśli nie wiedział, to już :-)

+0

dziękuję kisamoto za pomoc –

Powiązane problemy