Ich möchte meine Entwicklungsumgebung so einrichten, dass alle Anfragen von www.dev.com
in meinem Browser an localhost:8080
weitergeleitet werden.Node.js Express-Setup-Proxy für Entwicklungsumgebung, Localhost in URL für Mac OS X vermeiden
Ich habe in meinem/etc/host 127.0.01 www.dev.com
hinzugefügt, aber es tut nicht die Portweiterleitung. Wenn ich auf http://www.dev.com:8080/
gehe, funktioniert es, aber ich möchte/muss stattdessen http://www.dev.com/
verwenden, was näher an der tatsächlichen Produktionsumgebung liegt.
Wie mache ich das? Ich habe mehrere Lösungen wie nginx versucht, aber ich mag es nicht, ich würde es vorziehen, es "skriptfähig" zu sein, so dass jeder andere Entwickler es direkt verwenden kann. Ich benutze Express.js mit Knoten.
Ich lese durch Assigning a domain name to localhost for development environment on Mac OS X with node.js, aber es erklärt tatsächlich nicht den Port-Forwarding-Teil.
Warum haben Ihre Knoten App hören auf Port 80 statt 8080 (obwohl es erforderlich ist, deine Node-App als root auszuführen)? – robertklep
Weil das Ausführen einer App als root schlecht ist, weil das Verhalten von der Produktion abweichen kann. Es ist eigentlich eine sehr einfache und schlechte Art, IMO zu gehen. Zum Beispiel könnte das Schreiben einer Datei als root funktionieren, aber nicht in der Produktion, und deshalb wüssten Sie nicht einmal, dass es ein Problem gibt, bis es die Produktion erreicht. – Vadorequest
Richtig, obwohl jede sinnvolle App, die als root ausgeführt werden würde, Privilegien fallen lassen sollte, sobald sie die Sache ausgeführt hat, für die sie root privs benötigt (zB Port 80). Aber die vorgeschlagene Antwort ist eine viel bessere Lösung. In Ihrer Produktionsumgebung muss _something_ auch Port 80 überwachen. Wenn Sie also eine enge Übereinstimmung mit dem haben wollen, was bei der Produktion läuft, müssen Sie wahrscheinlich etwas sehr ähnliches einrichten (Reverse Proxy?). – robertklep