Frage

Ich habe eine Django-Installation, bei der ich mehrere Variationen derselben Site ausführen möchte:gleiche Daten, unterschiedlicher statischer Inhalt, mit dem ultimativen Ziel, XYZ so zu demonstrieren, wie es mit verschiedenen JavaScript-Frameworks implementiert wurde.Ich möchte, dass verschiedene Homepages geladen werden und diese ihren eigenen statischen Inhalt abrufen.(Alle beabsichtigten Projekte sind SPAs.)

Ich habe die Lösung bei ausprobiert Wie kann ich den Domainnamen meiner Site in einer Django-Vorlage abrufen?, aber auf meinem System gibt die etablierte Site keinen Hostnamen von 'pragmatometer.com ';es gibt einen Hostnamen von 'localhost: 8000', da Django / Gunicorn Seiten als localhost bereitstellt.Ich habe versucht, in / etc / hosts anzugeben, dass pragmatometer.com ist 127.0.0.1 und hat Apache Proxy zu pragmatometer.com , aber das führte zu einem Fehler.Dies lässt die Aussicht offen, separate Hosts auf verschiedenen Ports auszuführen, die als eigenständige Proxy verwendet werden sollten, oder die Homepage auf eine URL-spezifische Zielseite umzuleiten, eine Lösung, die die saubere URL von opfern würde xyz.pragmatometer.com demonstration der Implementierung des XYZ-Frameworks.Ich sehe mehrere Möglichkeiten, es mit JavaScript zu tapen, von denen ich nur ein oder zwei von einem zukünftigen Chef sehen möchte...

Ich möchte im Idealfall, dass die Stamm-URLs mehrerer (Sub-) Domains eine Subdomain-spezifische Homepage abrufen und die /load/*, /save/* usw.konsistent über sie hinweg.Ich möchte auch, dass die Root-URLs ihr eigenes CSS und JavaScript abrufen, aber das ist einfach genug, wenn ich die Root-URL richtig zum Laufen bringen kann.

Die beste Lösung, die ich bisher sehe, besteht darin, dass separate Serverprozesse dieselbe IP-Adresse abhören, aber isomorphe Server auf verschiedenen Ports ausgeführt werden und von verschiedenen Apache-VirtualHosts unterstützt werden.Entweder das oder JavaScript erkennt die URL und überschreibt die Seite mit dem "echten" Index für die Domain, der ein bisschen riecht.

Kommentare zu einer besseren Lösung oder wie man die obige Absicht gut ausführt?

--BEARBEITEN--

Oder ein anderer Ansatz, der etwas sauberer sein könnte:

Haben Sie ein Home-Image, das den Inhalt von lädt /framework/ für jedes Framework und dann dokumentieren.schreib()s es nach die Seite ist genug für ein Dokument geladen.write (), um vorhandene Seiteninhalte zu löschen.

Wenn ich jQuery verwenden würde, um eine Seite auf diese Weise zu blockieren und zu laden, würde dies eine Verschmutzung hinterlassen, die die ordnungsgemäße Funktionsweise von Frameworks beeinträchtigen würde?

War es hilfreich?

Lösung

Dein Stapel sieht irgendwie verrückt aus.

Du willst ein webserver mit Django, auf den zugegriffen werden kann mehrere Domain.Jede Domain bewirkt, dass die Django-Anwendung unterschiedliche Inhalte bereitstellt.Habe ich dich richtig verstanden?

Wenn ja, sind Sie vielleicht erfolgreich, indem Sie Apache durch Nginx ersetzen.Es kann den anfordernden Hostnamen auflösen und entscheiden, wie die Anforderung umgeleitet werden soll:

Was ist der Unterschied von $ host und $ http_host in Nginx

Hosting mehrerer Domains mit einem Django-Projekt

Update

Relevante Nginx-Dokumentation zur Unterscheidung zwischen verschiedenen Hostnamen:http://nginx.org/en/docs/http/request_processing.html http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name

Relevante Nginx-Dokumentation zum Hinzufügen von Anforderungsheadern:http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header

Siehe auch diese Antwort:Header (HTTP) in nginx hinzufügen und verwenden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top