django-gunicorn-nginx: 502 bad gateway
Ich versuche, mein Schiff web-Anwendung an den server und dies ist meine erste Zeit den server zu konfigurieren. Ich bin mit django-gunicorn-nginx - setup, indem Sie nach diesem tutorial http://ijcdigital.com/blog/django-gunicorn-and-nginx-setup/ erst war alles perfekt und ich habe die django willkommen Seite. Dann lud ich die apps in die django-Projekt und setup-static root und Jetzt bin ich immer 502 bad gateway Sie können sich in http://qlimp.com
Alles bis zu den gunicorn und supervisor-setup ist das gleiche, wie gezeigt, in diesem tutorial. Aber ich veränderte einige der nginx conf. Hier ist es:
upstream app_server_djangoapp {
server localhost:8001 fail_timeout=0;
}
server {
listen 80;
server_name qlimp.com;
access_log /var/log/nginx/guni-access.log;
error_log /var/log/nginx/guni-error.log info;
keepalive_timeout 5;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server_djangoapp;
break;
}
}
location /files/ {
autoindex on;
root /home/nirmal/qlimp/qlimp/files/;
}
}
Hier ist mein Media url:
MEDIA_URL = '/files/'
Dateien ist der Ordner, wo ich alle statischen Dateien. Wie bekomme ich mein Projekt auf der Arbeit in den server? Könnte jemand mich leiten?
UPDATE
Fehler.melden Sie https://gist.github.com/2768425
Dank!
- 502 im Grunde bedeutet, dass nginx keine Verbindung zu upserver.
- Warum ist es so? Habe ich getan, alle Fehler in der conf-setup?
- Ich habe keine Ahnung, warum, müssen Sie zum Debuggen selbst. Schauen Sie auf Ihre Protokolle. Versuchen Sie, um zu sehen, wenn localhost:8001 funktioniert lokal etc.
- debug? könnte Sie einfach sagen Sie mir die Schritte?
- gist.github.com/2768425
- solution
- Patel ich bin mit gunicorn nicht apache. Könnten Sie mir sagen, eine ähnliche Lösung für mein setup?
- Vor dem einrichten supervisord, stellen Sie sicher, dass es funktioniert, indem es einfach laufen gunicorn von der Befehlszeile aus.
- Ich habe versucht, das entfernen von Vorgesetzten und führen diese gunicorn_django --bind=127.0.0.1:8000 zeigt Er das gist.github.com/2769593
- guni_error.log - gist.github.com/2769603
- 1) Geben, mehr info auf, welche software-Versionen Sie laufen, Linux-Distribution, python, gunicorn, etc. 2) Versuchen Sie die Bindung an 0.0.0.0:8000, 3) Vielleicht bekommt mehr Aufmerksamkeit auf serverfault.com
- äh.. meine 2) ungültig ist, in Ihrem Fall also kann man es ignorieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten. Verwenden Sie nicht
if
in ein nginx conf. Ist es schlecht. Wie wirklich, wirklich schrecklich. Verwenden Sie den folgenden statt:Finden Sie unter: http://wiki.nginx.org/IfIsEvil und http://wiki.nginx.org/Pitfalls
Nun, soweit Debuggen geht. Ihre gunicorn Arbeitnehmer Booten, weil es einige schwerwiegende Fehler. Versuchen Herunterfahren gunicorn. Wenn Sie Betreuer:
Dann aus dem Projekt-root ausführen:
Beachten, keine startup-Fehler oder, wenn es tatsächlich Stiefel, testen Sie Ihre Website im browser. Wenn Sie immer noch nicht eine sinnvolle info versuchen läuft gerade die standard-runserver
Wieder, beachten Sie alle Fehler, und wenn es lädt gut, testen Sie Ihre Website im browser. Ich schlage vor, testen auf " localhost:8000, wie Sie auch in der Entwicklung. Einer von diesen sollte geben Sie etwas, mit zu arbeiten.
UPDATE
Den Fehler, den du immer sagt, er kann nicht verbinden "ind=127.0.0.1". Dann suchen Sie an der Eingabeaufforderung ausgeführt wird
gunicorn_django -bind=127.0.0.1:8001
es ist leicht zu sehen, die problem. Sie können angeben, dass die IP und port zu binden, die entweder mit-b
oder--bind
. Da Sie nur eine einzige-
es ist die Interpretation, die IP-Adresseind=127.0.0.1
werden, was offensichtlich nicht korrekt ist. Sie benötigen:Oder
sudo supervisorctl stop qlimp
. Es zeigtunix:///var/run/supervisor.sock no such file
python manage.py runserver
Es zeigt nichts aber wenn ichgunicorn_django -bind=127.0.0.1:8001
Es zeigt gist.github.com/2769983python manage.py run_gunicorn -c path/to/gunicorn.conf
es zeigtUnknown command: 'run_gunicorn'
run_gunicorn
funktioniert nur, wenn Sie Hinzugefügt gunicorn zuINSTALLED_APPS
. Glaube, ich sehe dein problem, obwohl. Siehe update.python manage.py run_gunicorn -c path/to/gunicorn.conf
Es zeigt gist.github.com/2770230, Aber ich Installiert die python imaging library und Es zeigen sich die gleichen Fehler wieder und wiederErhöhung der keepalive_timeout.
Müssen Sie verstehen, - Richtlinien funktioniert. "server_name" Richtlinie hält die IP-Adresse und "proxy_pass" wird eine Verbindung zu port wo dein server gehostet wird. In deinem Fall:
Es gibt keinen Grund dafür, nicht zu arbeiten, aber immer noch, wenn es die dann nicht versuchen, "python manage.py runserver" - Befehl, um sicherzustellen, dass Ihre Website läuft und kein Fehler, weil bei Website ist nicht in der Lage, um Daten zu wsgi.py das dürften die gleichen Fehler.
Versuchen Sie es mit einem Arbeiter-Klasse wie gevent.
Ich hatte einige Probleme mit gevent python-3.7, besser auf die Verwendung von python 3.6.
Django, Python 3.6 Beispiel: