/ Konfiguration für Django, Apache und Nginx - Django, Apache, Nginx, Mod-Wsgi

Konfiguration für Django, Apache und Nginx - Django, Apache, Nginx, Mod-Wsgi

Ich habe meine Django-Anwendung auf Apache + mod_wsgi eingerichtet. Zur Bereitstellung der statischen Dateien verwende ich Nginx, wie auf der Django-Projektwebsite vorgeschlagen. http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/

Apache läuft auf Port 8081 und Nginx ist aktiviertport 80. Nun haben einige Leute vorgeschlagen, dass meine Konfiguration falsch ist und ich die Rollen von Apache und Nginx umkehren sollte. Ich bin nicht sicher, warum das so sein sollte. Und wenn meine Konfiguration tatsächlich falsch ist, warum sollte die Django-Website die falsche Methode vorschlagen?

Antworten:

12 für die Antwort № 1

Die Django-Dokumente, mit denen Sie verlinkt haben, schlagen Sie nicht vorVerwenden Sie Apache als Reverse Proxy. Sie schlagen lediglich vor, einen separaten Webserver zu verwenden. Ich sage, die Dokumente sind zu diesem Thema nicht klar - sie schlagen nichts vor falsch.

Meine erste Antwort war die Annahme, dass Sie Nginx als Reverse-Proxy hatten, da Port 80 der HTTP-Port ist, der verwendet wird, wenn ein Browser versucht, zu einer URL zu gelangen, für die kein Port angegeben wurde.

Es gibt zahlreiche vollständige Handbücher zum Einrichten von Nginx + Apache über eine schnelle Google-Suche. Hier ist jedoch der Grundstein für das Einrichten von Nginx:

location / {
# proxy / requests to apache running django on port 8081
proxy_pass         http://127.0.0.1:8081/;
proxy_redirect     off;
}

location /media/ {
# serve static media directly from nginx
root   /srv/anuva_project/www/;
expires 30d;
break;
}

Sie müssen lediglich die Proxy-Zeilen aus Ihrer Apache-Konfiguration entfernen und stattdessen die Proxy-Anweisungen zu Ihrer nginx.conf hinzufügen.

Wenn Sie Ihre Site wirklich von Port 8081 aus bereitstellen möchten, könnte Nginx möglicherweise Port 8081 überwachen und Apache einen anderen Port überwachen.

Der Punkt ist, dass Apache sich in einem dunklen Port befindet und nur die von nginx an ihn gesendeten Anforderungen bedient, während das statische Dateiserver von nginx gehandhabt wird.