Tengo una aplicación web ejecutándose en Amazon EC2. Escucha en el puerto 9898.
Puedo acceder ingresando la dirección IP y el número de puerto.
ej. 1.2.3.4:9898
Sin embargo, lo que realmente me gustaría poder hacer es no tener que ingresar el número de puerto.
Al investigar esto, parece que el reenvío de puertos podría ser la solución, es decir, reenviar solicitudes HTTP recibidas en el puerto predeterminado (80) a mi puerto no estándar (9898).
¿Es este el camino correcto? Si es así, ¿cómo configuro esto en EC2?
Si no, ¿cómo puedo lograr lo que quiero?
Gracias de antemano por cualquier ayuda.
Actualizar
Debería haber mencionado que la instancia EC2 es una AMI de Windows Server 2012.
Respuestas:
La forma más fácil de hacer esto sin instalar algo usted mismo es colocar un Amazon Elastic Load Balancer delante de la instancia. Estos le permiten reenviar puertos como lo desee.
fuente
Tienes dos opciones.
1) Configure un proxy inverso para reenviar las solicitudes HTTP (suponiendo que sea HTTP) a un puerto diferente.
Debería ser tan simple como: Instalar apache, habilitar el módulo proxy_http, poner algo como:
2) Configurar tablas IP para reenviar los paquetes .
fuente
porque vi el comentario sobre el uso de iptables, compartiré mi experiencia en ec2 linux. Encontré un excelente artículo sobre puertos de reenvío para Node.js. Si salta a las instrucciones sobre la edición de sysctl.conf, verá las instrucciones de reenvío. Mi procedimiento de Linux varió ligeramente de Ubuntu. El artículo es: http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2
El trabajo se realiza a través de ssh. El único inconveniente con el que me topé fue que realicé el enrutamiento dos veces, sin vaciar iptables entre ellas, y mi aplicación web no fue visible hasta que me volví y volví a cargar. Sé que es una imagen terrible para concluir, lo siento.
fuente