Wie erfolgt die Bereitstellung auf Port 9003 (oder einem anderen)?
Ich habe einen Apache-Webserver, der auf einem VPS (Ubuntu 16) läuft. Standardmäßig läuft er auf Port 80. Wenn ich es über den Browser versuche:
http://104.XXX.YYY.237
Es funktioniert einwandfrei. (Ich habe eine vollständige PHP/MySQL-App darauf laufen.)
.....
Jetzt möchte ich eine öffentliche REST-API, die mit Golang erstellt wurde, auf Port 9003 (oder was auch immer) bereitstellen.
Ich habe also in meiner main.go-Datei
func main() {
router := NewRouter()
log.Fatal(http.ListenAndServe(":9003", router))
}
Beim Zugriffsversuch:
http://104.XXX.YYY.237:9003
Ich bekomme überhaupt keine Antwort.
...
Ich habe eine ähnliche Konfiguration auf meinem lokalen Host laufen, wo ich erfolgreich über Terminal, Curl, Browser oder Ajax auf eine Adresse wie diese zugreifen kannhttp://localhost:9003
Es ist also nichts falsch mit meiner API.
...
Ich weiß sehr wenig über Linux und Serverkonfiguration. Wenn ich mich also ein bisschen damit befasst habe, könnte ich mir vorstellen, dass das Problem an Port 9003 liegt! Um diese Schlussfolgerung zu testen, habe ich den Apache-Dienst gestoppt, den API-Port auf 80 geändert und !! BINGO !!! es hat funktioniert! Ich konnte über meinen Browser auf meine API zugreifen.
...
Nach etwas mehr Recherche habe ich diesen (wunderbaren) Linux-Befehl gefunden:
netstat -vatn
was mir die Antwort gab: (unter meiner ursprünglichen Konfiguration wiederhergestellt)
tcp6 0 0 :::9003 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 104.XXX.YYY.237:80 177.XX.YYY.243:4297 TIME_WAIT
Ich bin kein Linux-Experte, aber die erste Zeile sagt mir, dass der Port 9003 offen und einsatzbereit ist, wie auch die Ports 80 und 22
Aber die letzte Zeile sagt mir, dass der Server auf 104.XXX.YYY.237:80 lauscht.
Ich komme also auf eine Zeile. Ich schließe daraus, dass ich etwas wie Folgendes erwarten sollte:
tcp6 0 0 104.XXX.YYY.237:9003 177.YY.XXX.243:4297 TIME_WAIT
Also hier meine Fragen:
_ Wie kann ich über die IP-Adresse meines VPS (oder später meiner Domäne) und den angegebenen Port einen externen Zugriff auf meine API ermöglichen? _ Habe ich bei meinen Schlussfolgerungen etwas Falsches gesagt?
Dank im Voraus
Antwort1
Ich konnte das Problem beheben und eine externe Verbindung direkt zu meiner API auf Port 9003 zulassen!
Um dies zu erreichen, habe ich die Firewall-Regeln im Bedienfeld meines VPS-Anbieters bearbeitet!
Obwohl ich wirklich gerne lernen würde, wie das per Terminal geht!