Seite 1 von 1

Restart Nginx nach Update von Django-Projekt

Verfasst: Montag 29. Oktober 2012, 22:08
von djangofish
Hallo

wie kann ich Django neustarten nachdem ich mein Projekt aktualisiert habe?
starten geht ja mit

Code: Alles auswählen

python ./manage.py runfcgi host=127.0.0.1 port=8080
aber neustart?

Danke
Peter

Re: Restart Nginx nach Update von Django-Projekt

Verfasst: Montag 29. Oktober 2012, 23:24
von Drache
So weit ich weiß:
Du müsstest entweder den process killen und dann neustarten.
Und/oder den Port ändern also

Code: Alles auswählen

python ./manage.py runfcgi host=127.0.0.1 port=8081
und die nginx.conf auf den Port abändern und nginx neustarten.

Mit Tornado kannst du dein Django Projekt einfach einbinden.
Der Tornado merkt* wenn Änderungen am Code erfolgt ist,
und startet sich dann selber neu.
Man kann auch mehrer Tornados starten und der Nginx verteilt dann
die Zugriffe auf die Tornados.
Klappt wirklich sehr gut.

* mit dem Modul autoreload oder debug = True

Machs gut
Drache

Re: Restart Nginx nach Update von Django-Projekt

Verfasst: Dienstag 30. Oktober 2012, 08:52
von djangofish
mmh wie genau geht das? Tornado ist doch sowohl Webserver als auch Framework. Kann ich Nginx weiterverwenden und trotzdem das restart nutzen?
Hab als Server einen Raspberry und dem entsprechend sind die verfügbaren Ressourcen knapp.

Re: Restart Nginx nach Update von Django-Projekt

Verfasst: Dienstag 30. Oktober 2012, 12:53
von Drache
Hallo Peter,

hier ist ein schöner snippet um django im Tornado einzubetten:
http://djangosnippets.org/snippets/2667/

hier ist eine Beispiel einer nginx.conf mit Tornado:
https://gist.github.com/802576

Hat man, glaube ich, schnell am laufen.

Wenn du das auf einem Raspberry am laufen hast,
sag bescheid, würde mich auch interessieren.

Bei dem django snippet müsstest du noch das autoreload modul mit einbinden,
oder debug auf True setzten, was jeweils nur ein oder zwei Zeilen code sind.

Wenn dir Tornado nicht zusagt, geht das aber bestimmt auch mit anderen python webserver wie
gunicorn, hab ich selber noch nicht probiert.

Machs gut
Drache

Re: Restart Nginx nach Update von Django-Projekt

Verfasst: Dienstag 30. Oktober 2012, 13:59
von djangofish
Ich frage mich wie und wo ich das Snippet zu verwenden habe. Ist das ne eigenständige Datei oder kommt das irgendwo mit rein?

Re: Restart Nginx nach Update von Django-Projekt

Verfasst: Dienstag 30. Oktober 2012, 21:50
von Drache
ist ne eigene Datei.
Kannst du nennen wie du magst.
Du kannst die z.B. main8000.py nennen.
und main8001.py , wenn du die Zeile mit dem http_server.listen auf 8001 ab änderst.

Über die Kommandozeile mit einem argument ist später einfacher,
dann sähe der aufruf aus wie:
python main.py --port=8002
Funktioniert nicht mit dem Snippet, ist aber auch nur zwei Zeilen Code mehr.

Ach ja, ein Blick auf den Shell Befehl nohup solltest du noch bei Gelegenheit machen.
Machs gut
Drache

Re: Restart Nginx nach Update von Django-Projekt

Verfasst: Mittwoch 31. Oktober 2012, 08:33
von djangofish
Danke. Probier ich heute Abend mal und berichte dann.

Re: Restart Nginx nach Update von Django-Projekt

Verfasst: Mittwoch 31. Oktober 2012, 13:45
von djangofish
das mit dem Skript war mir zu....doof :)

es geht anscheinend auch wenn man nginx einfach neustartet:)

Hab jetzt eine Überwachung auf dem Verzeichnis und wenn sich was ändert wird ein Skript ausgeführt, an dessen Ende der Restart erfolgt.

Re: Restart Nginx nach Update von Django-Projekt

Verfasst: Dienstag 6. November 2012, 15:27
von Leonidas
Wenn die Ressourcen so knapp sind, wozu überhaupt nginx? Tornado bietet doch selbst einen Server.