Konfigurieren von Apache zu laufen ASGI in Django-Kanäle? Ist der Apache auch erforderlich?
Baute ich ein django-Projekt und schickten Sie in die Produktion mit Apache-WSGI-combo. Für die, die ich Hinzugefügt hatte, die
apache2.conf wie unten gezeigt:
WSGIScriptAlias //home/ubuntu/MyProject/MyProject/wsgi.py
WSGIPythonPath /home/ubuntu/MyProject
<Directory /home/ubuntu/MyProject/MyProject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
So bedeutet dies nicht, dass alle requests an meine erste website gehen, um Apache, die dann erlaubt WSGI ins Spiel kommen. Also wenn ich ausschalten würde Apache, die website würde nicht funktionieren.
Habe ich jetzt installiert Django-Kanäle. Wie pro die 'Bereitstellung' - Abschnitt in der Dokumentation (https://channels.readthedocs.io/en/latest/deploying.html), die ich habe:
- Redis installiert (auf meinem Django Project server)
- Laufen worker-Servern
- Laufen Daphne (interface-server)
- Ich aufgehört habe Apache auf den moment und die website sich weigert, zu verbinden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Derzeit der Apache nicht ein ASGI-server-Implementierung. Das bedeutet, dass Sie weiterhin zu Apache verwenden, aber Sie werden auch müssen, Daphne. Im wesentlichen wird der Apache von Ihrem primären web-server als reverse-proxy.
Gibt es möglicherweise etwas Wert, wenn man das tut: Python Entwickler mit nginx-reverse-proxy-Modus für die Jahre. Aber Daphne ist ein sehr fähiger web-server, gebaut auf der Oberseite des Twisted-web-server Apache ist sicherlich nicht notwendig.
Für einen moment, dann empfehle ich zu laufen, nur mit Daphne: haben Daphne-hören Sie auf Ihrem primären ports deaktivieren und Apache zusammen. Wenn Sie finden, gibt es features von Apache, die Sie immer noch wollen, müssen Sie Apache als reverse-proxy: eine vorgeschlagene Artikel für die Konfiguration, die diese von Digital Ocean.
Wie erwähnt von Lukasa, hielt ich den Apache-server, der auf den ersten hat mir die django-app geliefert bekommen, um der Welt.
Dann lief ich die folgenden Befehle:
Die beiden Befehle gestartet, liefert die app auf http-Anfragen von außerhalb der server. Keine weiteren Konfigurationen erforderlich waren andere als in der Frage genannten post.