Portweiterleitung von Domain?
Liebe Community, ich habe ein kleines Problem aber bin zu unwissend es zu lösen.
Ich habe einen Ubuntu VPS Server auf dem ich eine Node.js Umgebung laufen lasse. Dort habe ich eine Weboberfläche mit express gemacht. Man kann ja unter Port 1024 eigentlich nur mit root gehen. Dies ist für meinen Fall eigentlich egal, jedoch kommt dort trotzdem immer der klassische Port Fehler. Wenn ich einen Port über 1024 nehme, kann ich die Node App zwar starten, ich müsste aber hinter meine mit der Server IP verknüpften Domain den Port schreiben, um auf die Website zu kommen. Ich habe es auch schon mit Weiterleitungen durch nginx probiert. Dies hat auch nicht geklappt.
Mir würde also nur noch SRV einfallen, dort habe ich aber keine Ahnung wie man das macht und was die ganzen Sachen bedeuten.
Also im Grunde möchte ich einfach nur die Domain eingeben und auf die Website kommen, ohne einen Port hinten dranzuhängen.
Hoffentlich kann mir dort jemand weiter helfen.
Liebe Grüße
1 Antwort
Ein nginx Reverse Proxy ist schon eine sehr gute Wahl für dein Problem.
nginx lauscht auf Port 80 und 443, verschlüsselt nach Wunsch dein Traffic und leitet alles zu deiner Anwendung weiter. Du könntest so per anderer (Sub-)Domain auch andere Webseiten bereitstellen.
Statt nginx als Software könntest du auch apache2 bzw. andere Webserver mit ähnlichen Funktionsumfang benutzen.
Wo lag denn dein Problem mit nginx?
Falls du selber nochmal nachschauen möchtest, "nginx reverse proxy" sind die relevanten Suchbegriffe.
Welchen Statuscode bzw. Fehlermeldung gibt dein Browser denn an?
Die Entwicklertools im Browser mit besonderen Fokus auf die Konsole und Netzwerk werden helfen.
Die Logs vom Nginx Server bzw. auch deiner node.js Anwendung werden bestimmt auch Infos haben.
Irgendwo wird es Hinweise geben.
Meine Vermutung ist, dass deine Anwendung nicht alles korrekt laden kann. Das HTML Dokument wird also geladen, aber der JavaScript Code für Express kann nicht abgerufen/ausgeführt werden. Die Webseite reagiert dann möglicherweise mit einer weißen Seite. Hier werden vor allem erstmal die Dev Tools im Browser helfen.
Entschuldige die verspätete Antwort.
Es wird nicht mal eine weiße Seite geladen. Es wird überhaupt nicht geladen also kommt dementsprechend auch 404 als Fehler, weshalb in den Dev Tools auch nichts zu finden ist.
In den Nginx Logs konnte ich auch nichts relevantes finden.
404 ist auch eine Antwort. Der 404 Status Code könnte aus verschiedenen Quellen kommen.
Um den Ursprung von deiner Anwendung auszuschließen, könntest du deine Anwendung beenden. Der Nginx sollte dann ein 5xx Status Code senden. Falls ein 5xx kommt, wird deine Anwendung den 404 senden.
Falls es daran liegt, solltest du beim Reverse Proxy auf die Pfade achten. Eventuell wird der Pfad verändert, wo dein Service nichts anbietet. Falls du bei deiner Anwendung Access Logs aktivieren kannst, würde es wahrscheinlich helfen.
Da Nginx mit dem eigenen 404 eine Basic Webseite mitschickt, schätze ich, dass Nginx korrekt eingerichtet ist. Falls es doch an Nginx liegen sollte, solltest du den Parameter server_name überprüfen. Damit wird entschieden, dass der Traffic zu deinem Service geht.
Access Logs bei Nginx dürften auch beim Debugging helfen. Vermutlich sind sie nicht eingeschaltet, weshalb die Logs leer bleiben.
Danke für die Antwort.
Ich habe jetzt bereits mehrfach einen reverse proxy mit nginx und auch apache2 eingerichtet. Es kommt nie ein Fehler, aber die Website läd unter der normalen Domain trotzdem nicht.
Keine Ahnung was da schiefläuft bzw. ich falsch mache