English | Deutsch

Pfadbasiertes Routing

Erfahren Sie, wie Sie mehrere unabhängige Anwendungen mit einer einzigen Domäne verbinden, indem Sie verschiedene Pfade mit unterschiedlichen Workspaces verknüpfen

January 31, 2024 2 Min Lesezeit
Pfadbasiertes Routing
Pfadbasiertes Routing

Simon Pfeiffer

Head of Product @ Codesphere

Pfadbasiertes Routing ist eine leistungsstarke Funktion, mit der Sie mehrere unabhängige Anwendungen nahtlos mit einer einzigen Domain verbinden können, indem Sie verschiedene Pfade mit unterschiedlichen Workspaces verknüpfen. Diese Funktion ist besonders nützlich für Szenarien wie das Hosten einer primären Website (z.B. codesphere.com) und eines zugehörigen Blogs (z.B. codesphere.com/blog) auf separaten Anwendungen mit eigenen Ressourcen, Codebasen und Release-Zyklen.Ein weiterer Anwendungsfall für pfadbasiertes Routing ist der Aufbau von Micro-Service- oder Monorepository-Architekturen, bei denen Micro-Services auf Pfaden bereitgestellt werden. Dieses Setup erforderte bisher komplizierte Kenntnisse über Reverse-Proxy-fähige Proxy-Software wie Nginx oder Apache. Mit Codesphere kann dies jeder mit ein paar Klicks einrichten.

Pfade für Ihre Domänen festlegen

Navigieren Sie zu Domains und erweitern Sie eine Ihrer verifizierten Domains, um die pfadbasierten Routing-Einstellungen zu öffnen. Klicken Sie auf Hinzufügen, um einen neuen Pfad hinzuzufügen, weisen Sie ihn dann einem Workspace zu und bestätigen Sie Ihre Änderungen mit dem Button Speichern. Sie können auch Unterpfade wie /shop/garden hinzufügen.

Jetzt bedient Ihre Domain den verbundenen Workspace unter yourdomain.com/yourpath.

Vorbereitung Ihrer Bewerbung für den Dienst auf diesem Weg

Wir haben uns für ein Routing aus der Perspektive eines Monorepo mit einzelnen Diensten in Ordnern entschieden, die von den Pfaden der Ordner bedient werden. Das bedeutet, dass der Workspace, der mit yourdomain.com/yourpath verbunden ist, Inhalte von dieser speziellen Route bereitstellen muss. Wenn Ihre Anwendung zuvor nicht so konfiguriert war, dass sie Inhalte über diese Route bereitstellt, d. h. wenn Sie zwei eigenständige Anwendungen verbinden, die beide Inhalte über den Root-Pfad bereitstellen, müssen Sie Änderungen vornehmen, damit die Anwendung über den richtigen Pfad läuft.Zur Veranschaulichung betrachten wir zwei einfache express.js-Anwendungen:

  • Anwendung 1 hat derzeit drei Routen / , /Kontakt und /blog
  • Anwendung 2 hat derzeit drei Routen / , /Artikel und /Suche

Wenn Sie Anwendung 1 mit yourdomain.com/ und Anwendung 2 mit yourdomain.com/blog verbinden, wird das Routing die /blog-Route von Anwendung 1 überschreiben und stattdessen Anwendung 2 dort bedienen. Da diese beiden Anwendungen nicht mit einer solchen Ordnerstruktur im Hinterkopf erstellt wurden, würde die Navigation zu yourdomain.com/blog zunächst zu einem Cannot /GET-Fehler führen, da der Pfad nicht mehr vom Stammverzeichnis, sondern vom aktuellen Pfad aus bedient wird. Damit dies funktioniert, müssen wir alle aktuellen Routen der Anwendung 2 in ein Verzeichnis /blog verschieben und das Routing in unserer express.js-Indexdatei ändern. Wir werden /blog/ an alle drei vorherigen Routen anhängen, was zu /blog/, /blog/articles und /blog/search führt. In diesem Video erklären wir, wie man diese Änderungen für eine statische express.js-Anwendung vornimmt

Was auf den ersten Blick wie eine unnötige Unannehmlichkeit erscheint, macht mehr Sinn, wenn wir uns den Anwendungsfall Micro-Service / Mono-Repository noch einmal ansehen. In diesem Fall würde eine Anwendung bereits mit diesen Pfaden im Hinterkopf erstellt werden. Die Dienste werden von Anfang an verpackt und in separaten Verzeichnissen abgelegt, so dass Sie nur noch die Ordnerstruktur in die pfadbasierte Routing-Benutzeroberfläche kopieren müssen und schon können Sie loslegen.

Regex-basiertes Routing für Pfade

Das Routing über Wildcard-Pfade oder noch anspruchsvollere Regex-Regeln kann für jede Domäne aktiviert werden, indem die Checkbox Pfade enthalten reguläre Ausdrücke aktiviert wird. Wenn diese Option aktiviert ist, wird das Routing auf der Grundlage des aufgelösten regulären Ausdrucks aus dem Pfadfeld durchgeführt.

Dies ermöglicht komplexere Konfigurationen, bei denen z. B. alle Anfragen an /products/* an einen bestimmten Backend-Dienst gehen müssen, während alle anderen Anfragen an ein Frontend gehen, das von einem anderen Workspace bedient wird.

Über den Autor

Pfadbasiertes Routing

Simon Pfeiffer

Head of Product @ Codesphere

Simon ist verantwortlich für unser Produktmarketing und die Roadmap. Er ist ein ehemaliger Green-Tech-Gründer und IT-Berater bei KPMG. Er berichtet über Trends und Erkenntnisse aus dem Aufbau von Codesphere.

Weitere Beiträge

Deployment von Landscapes auf Codesphere

Deployment von Landscapes auf Codesphere

Lernen Sie, wie Sie mehrere Dienste, die unabhängig voneinander vertikal und horizontal skaliert werden können, innerhalb eines einzigen Workspace deployen und runen können. Geeignet für das Hosting ganzer Anwendungslandschaften.

Monitoring & Alerting

Monitoring & Alerting

Erfahren Sie, wie Sie auf das in Codesphere integrierte Ressourcen Monitoring zugreifen und die Betriebszeit Ihrer Anwendungen überprüfen können.

A/B-Tests mit PostHog

A/B-Tests mit PostHog

Erfahren Sie, wie Sie in wenigen Minuten erweiterte A/B-Tests mit Posthog in Codesphere einrichten können.