Mehrere mod_wsgi-Apps auf einem virtuellen Host, die auf falsche App verweisen
Ich versuche, zwei (oder mehr) Django-Anwendungen auf Unterverzeichnisse unter der gleichen domain, z.B.:
http://example.com/site1/
http://example.com/site2/
Ich weiß, dass dies normalerweise funktioniert durch die Einrichtung eines apache-virtualhost-so:
<VirtualHost *:80>
...
WSGIScriptAlias /site1 /path/to/site1.wsgi
WSGIScriptAlias /site2 /path/to/site2.wsgi
</VirtualHost>
Nun, ich habe festgestellt, dass jede Webseite individuell. Aber wenn ich versuche zu laufen, beide side-by-side, der apache schickt mich, um welche Seite der Arbeitsprozess als erstes geladen. Beispiel:
- Starten Sie apache neu konfiguriert, um zu dienen 6 threads
- Laden example.com/site1/, die richtige Seite kommen
- Laden example.com/site2/, die richtige Seite kommen
- Wiederholen 2 und 3, 2-mal mehr.
- Aktualisieren example.com/site1/wiederholt, beobachten Sie radeln von Ort zu Ort.
Effektiv für eine gegebene Anzahl von worker-Prozessen, it-Zyklen durch die Gesamtanzahl von Ihnen sendet die Anfrage an welcher man ihn zuerst schlagen, unabhängig von der WSGIScriptAlias Richtlinie. Egal was ich mache (Einstellung WSGIProcessGroup, daemon-Modus und embedded-Modus, oder Richtlinien) weiterhin zeigen dieses Verhalten.
Wenn jemand zeigen kann, was ich falsch mache hier, das wäre phänomenal!
InformationsquelleAutor der Frage Gabriel Hurley | 2011-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe mehrere WSGI-Anwendungen, die auf einem einzigen Apache installieren, und festgestellt, dass die einfachste Sache zu tun, ist nur über mehrere Prozess-Gruppen-eine für jede der apps.
Einen Nachteil, im Vergleich zu tatsächlich zu versuchen einen einzelnen Prozess ausgeführt werden beide (oder mehr) apps ist, dass diese vielleicht ein wenig mehr Residenten Speicher, als Sie bekommen konnte, Weg mit sonst. Aber es hält Sie ziemlich gut getrennt und vermeidet ärger. Und das könnte nicht ein Problem für Sie ist (es war nicht für mich).
(Es kann nicht sein, dass schlecht, Sie könnten in der Lage sein zu teilen, eine Menge von text-Seiten? Das ist nur müßige Spekulation; ich habe Sie nicht verifiziert dies in irgendeiner Art und Weise, wie mein setup war nicht bei allen Speicher-hungrig)
Hier sind einige Ausschnitte von meiner httpd.conf, in etwa:
InformationsquelleAutor der Antwort Domingo Ignacio
Domingo Ignacio Antwort hat mich auf die richtige Spur. Ich möchte an dieser Stelle eine wichtige Tatsache über die es Arbeit: Die beiden Gruppen müssen sich innerhalb der gleichen VirtualHost. (Dies basiert auf meinen tests mit Ubuntu 12.04.3 LTS, Apache 2.2.22 und ein paar WSGI-apps, geschrieben in Python.)
Beispielsweise das Tat nicht für mich arbeiten, was die Möglichkeit zum Zugriff app1 aber einen 404-error für app2:
Entfernen der mittleren und tags, so dass Sie einen einzigen VirtualHost, das problem gelöst:
InformationsquelleAutor der Antwort Steve Saporta
Ich habe Schwierigkeiten mit dieser mich. Anstatt zu versuchen, um die Apache-Konfiguration Recht, ich habe stattdessen beschlossen, zu einem einzigen WSGIScriptAlias und haben WSGI-middleware weitergeleitet, die Anfragen an die richtigen Anwendungen. Mein code ist an https://github.com/zhemao/flotilla. Ich habe es noch nicht getestet, viel, so verwenden Sie es mit Vorsicht, aber ich hoffe, es hilft.
InformationsquelleAutor der Antwort Zhehao Mao