Vermeiden Sie SOP-Probleme, kombinieren Sie Ursprünge, Proxy-Dienste, verwenden Sie SSL, HTTP2, SSI und mehr … während der Entwicklung!
Installation | Verwendung | Konfiguration | Beispielprojekte | Unterstützung | Änderungsprotokoll
Proxrox ist ein Befehlszeilendienstprogramm, das eine lokale Nginx-Instanz startet, um statische Dateien bereitzustellen, einen oder mehrere Dienste unter einem einzigen Ursprung zu vertreten, SSL lokal zu verwenden und im Allgemeinen eine Entwicklungsumgebung zu erhalten, die einer Produktionsumgebung ähnelt.
Proxrox erreicht dies mithilfe von Nginx. Wenn proxrox aufgefordert wird, einen Server zu starten, erstellt es eine Nginx-Konfigurationsdatei an einem temporären Speicherort und startet eine Nginx-Instanz mithilfe dieser Konfigurationsdatei. Das bedeutet, dass proxrox theoretisch alle Funktionen von Nginx unterstützen kann.
Sie können Proxrox auch zum Debuggen von Web-Apps verwenden, wie in der folgenden Präsentation gezeigt.
TL;DR; npm install -g proxrox
. Nginx muss sich im $PATH
befinden und ohne Superuser-Rechte ausführbar sein.
Detaillierte Installationsanweisungen finden Sie in INSTALLATION.md.
Starten Sie proxrox mit einer lokalen Konfigurationsdatei. Format und unterstützte Optionen werden in der Datei CONFIGURATION.md erläutert.
proxrox start .proxrox.yaml
Stoppen Sie die laufenden Nginx-Instanzen (stoppt alle):
proxrox stop
Erfahrungsgemäß ist die Definition von Optionen über Konfigurationsdateien, z. B. .proxrox.yaml
, die am häufigsten verwendete Option. Funktionierende Beispielprojekte mit dem empfohlenen Projekt-Setup finden Sie im Beispielverzeichnis.
Entwicklungsumgebungen sollten Produktionsumgebungen ähneln. Das bedeutet, dass während der Entwicklung serverseitige Einbindungen, Transportschichtsicherheit, Komprimierung und mehr vorhanden sein sollten. Dies ist nicht nur wichtig für die Optimierung der Seitengeschwindigkeit, sondern ermöglicht es Ihnen auch, Sicherheitsprobleme frühzeitig zu erkennen, z. B. eine sichere Seite, die auf unsichere Inhalte verweist.
Unabhängig davon, ob es sich bei der App um eine serviceorientierte, auf Mikrodiensten basierende, ressourcenorientierte Client-Architektur oder eine Single-Page-App handelt, ist die Same-Origin-Richtlinie häufig ein Problem für die lokale Entwicklung. Menschen umgehen dieses Problem auf verschiedene Weise. Während die meisten Teams über bewährte Vorgehensweisen für Produktionsumgebungen verfügen, fehlt dies in Entwicklungsumgebungen häufig. Die Lösungen, die ich gesehen habe, reichen von der ursprungsübergreifenden Ressourcenfreigabe für die lokale Entwicklung, die über Feature-Flags aktiviert wird, bis hin zur vollständigen Deaktivierung der Websicherheit in Browsern.
Viele Leute kennen oder verwenden serverseitige Includes nicht. Dafür gibt es wohl verschiedene Gründe. Eine Sache, die mir selbst aufgefallen ist, ist, dass es einfach Zeit braucht, eine richtige Entwicklungsumgebung mit Proxyservern einzurichten.
Funktioniert etwas nicht wie erwartet? Kontaktieren Sie mich gerne auf Twitter über @BenRipkens!