¿Cómo servir en el puerto 9003 (o cualquier otro)?
Tengo un servidor web Apache que se ejecuta en un VPS (ubuntu 16). De serie se ejecuta en el puerto 80. Si lo intento a través del navegador:
http://104.XXX.YYY.237
Funciona muy bien. (Tengo una aplicación php/mysql completa ejecutándose)
.....
Ahora, quiero ofrecer una API REST pública, creada con Golang, en el puerto 9003 (o lo que sea)
Entonces tengo en mi archivo main.go
func main() {
router := NewRouter()
log.Fatal(http.ListenAndServe(":9003", router))
}
Cuando intento acceder a:
http://104.XXX.YYY.237:9003
No recibo ninguna respuesta.
...
Tengo una configuración similar ejecutándose en mi host local, donde puedo acceder con éxito a través de terminal, curl, navegador o ajax a una dirección comohttp://localhost:9003
Entonces, no hay ningún problema con mi API.
...
Sé muy poco sobre Linux y la configuración del servidor, así que, investigando un poco al respecto, ¡podría pensar que el problema puede ser el puerto 9003! Para probar esa conclusión, detuve el servicio Apache, cambié el puerto de la API a 80 y ¡!! ¡¡¡BINGO!!! funcionó ! Pude acceder a mi API usando mi navegador.
...
Un poco más de investigación y encontré este (maravilloso) comando de Linux:
netstat-vatn
lo que me dio la respuesta: (bajo mi configuración original restaurada)
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
No soy un experto en Linux, pero la primera línea me dice que el puerto 9003 está abierto y listo para usarse, al igual que el 80 y el 22.
Pero la última línea me dice que el servidor escucha 104.XXX.YYY.237:80.
Así que me falta una línea. Concluyo que debería esperar algo como:
tcp6 0 0 104.XXX.YYY.237:9003 177.YY.XXX.243:4297 TIME_WAIT
Así que aquí mis preguntas:
_ ¿Cómo puedo proporcionar acceso externo a mi API usando la dirección IP de mi VPS (o más tarde mi dominio) usando el puerto dado? _ ¿Dije algo equivocado sobre mis conclusiones?
gracias de antemano
Respuesta1
¡Logré solucionar el problema y permitir la conexión externa directamente a mi API en el puerto 9003!
Para lograrlo, edité las reglas del firewall en el panel de control de mi proveedor de VPS.
Aunque realmente me gustaría aprender a hacerlo mediante la terminal.