Tengo una micro instancia de Amazon EC2 con el servidor Windows 2008 e implementé una aplicación web de muestra que usa Java y se implementó en el servidor Tomcat 7. Puedo acceder a él localmente en la instancia, pero cuando intenté acceder a él fuera de la instancia de AWS, digamos desde la computadora de mi casa usando DNS público / dirección IP pública / dirección IP elástica de la instancia de AWS, me da "La página web es no disponible".
He pasado por tantas preguntas similares en este foro y creo que he hecho todo lo que piden, pero todavía no he tenido éxito.
Aquí está lo que he hecho / confirmado.
1. localhost funciona, por lo que la aplicación escucha en el puerto 80.
2. Se agregó una regla de entrada para HTTP en el puerto 80 para todos los miembros del grupo de seguridad que usa mi instancia.
3. comprobó la configuración del firewall en la instancia de Windows, se aseguró de que el puerto 80 no esté bloqueado.
4. intentado incluso con apagar el firewall, pero no tuvo éxito.
Realmente agradecería si alguien me puede ayudar en esto.
Gracias NS
fuente
Respuestas:
Tuve un problema frustrante similar cuando instalé JetBrains YouTrack en una instancia de Windows Server 2012 ec2. Lo que funcionó para mí fue abrir los puertos de firewall de Windows que Java usaba específicamente e inhabilitar el puerto del servicio World Wide Publishing. También tuve que ejecutar el servicio YouTrack con la cuenta LocalSystem en lugar de la cuenta predeterminada.
Prueba esto:
Apague el sitio web predeterminado en IIS si está en uso
Ejecute un netstat -a -b para descubrir los puertos a los que java.exe intentaba vincularse, por ejemplo:
TCP 0.0.0.0:80 WIN-9NFIG6IEPT6: 0 ESCUCHANDO [java.exe]
TCP 127.0.0.1:49306 WIN-9NFIG6IEPT6: 49307 ESTABLECIDO [java.exe]
Abra el administrador de control de servicios y haga clic derecho en su servicio y abra el cuadro de diálogo de propiedades. En la pestaña Iniciar sesión como, seleccione Cuenta del sistema local como la cuenta con la que se ejecuta el servicio. Es importante que este usuario sea administrador
Cree una nueva regla para Tomcat con el puerto TCP 80 y cualquier otro puerto que pueda necesitar.
Guarde la regla y pruebe su url desde fuera del servidor.
fuente
No deberías desactivar la configuración del firewall por completo. Esto comprometería la seguridad de su aplicación. En su lugar, modifique las reglas de firewall de entrada del servidor de Windows para permitir el tráfico entrante en puertos específicos.
Tuve un problema similar cuando implementé una aplicación en Tomcat 8 en el servidor de Windows 2012 aprovisionado a través de AWS EC2. Pude acceder a la aplicación implementada en http: // localhost: 8080 desde la VM pero no desde Internet público después de reemplazar la cadena localhost en la URL con la dirección IP pública de la VM.
Funcionó bien después de cambiar las reglas del firewall para permitir el tráfico entrante en el puerto 80 (para http), el puerto 443 (para https) y el puerto 8080 (este es el puerto en el que se implementó mi aplicación web de forma predeterminada en el servidor Tomcat.
He documentado las configuraciones del firewall y del grupo de seguridad en el siguiente enlace:
http://abhirampal.com/2015/08/04/firewall-config-for-java-web-app-hosted-on-aws-ec2-windows-2012-server/
fuente
Probablemente haya configurado mal el servidor web. Puede probar eso conectándose al servidor a través de:
Si no recibe un error, puede conectarse. En este caso, no configuró el servidor web correctamente.
fuente
Es posible que sea necesario ingresar una regla para el puerto TCP entrante 80 en el grupo de seguridad de AWS para su instancia.
fuente
Es posible que deba hacer que el puerto esté disponible para escuchar cualquier llamada pública desde la consola de AWS.
fuente
Siga este enlace http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-network-security.html , Sección Grupos de seguridad
Cree un grupo de seguridad para su instancia EC2 para permitir conexiones en los puertos que desee.
fuente
Dos cosas para mi:
Modificación del grupo de seguridad adjunto a mi instancia de RDS para permitir la entrada y salida de tráfico
Establecer reglas entrantes y salientes en el RDS para el puerto de la aplicación
Pasos detallados:
En la barra superior de su consola de AWS, haga clic en Servicios, seleccione EC2
En el menú izquierdo de la siguiente ventana, en instancias, haga clic en instancias para ver sus instancias
En la tabla que contiene la instancia a la que desea acceder desde el público, desplácese hacia la derecha a una columna denominada Grupos de seguridad. Haga clic en este grupo de seguridad.
Presiona Guardar
Ahora inicie sesión en su AWS RDS para establecer reglas de entrada y salida a través del cortafuegos
Inicia el panel de control. Haga clic en Sistema y seguridad (puede ser el primero) y haga clic en Firewall de Windows. Luego haga clic en Configuración avanzada
Haga clic en el menú Reglas de entrada a la izquierda.
En la pestaña Acciones (a la derecha), haga clic en Nueva regla
Seleccione Puerto y haga clic en Siguiente
Seleccione TCP (si no está seleccionado) y debajo Seleccione Puertos locales específicos.
En el campo, ingrese el número de puerto de su aplicación y haga clic en Siguiente
Seleccione Permitir la conexión y haga clic en siguiente.
Especifique el nombre de la regla. Algo así como el nombre de su aplicación para fines de legibilidad y haga clic en finalizar
Luego, configuremos el tráfico saliente
fuente
Consulte el enlace ... Sería más específico.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
Puede permitir la comunicación entre todas las instancias asociadas con este grupo de seguridad, o entre instancias asociadas con otro grupo de seguridad e instancias asociadas con este grupo de seguridad. Haga clic en Agregar regla, seleccione Todos ICMP, luego comience a escribir la ID del grupo de seguridad en Fuente; Esto le proporciona una lista de grupos de seguridad. Seleccione el grupo de seguridad de la lista. Repita los pasos para los protocolos TCP y UDP. Haga clic en Guardar cuando haya terminado.
fuente
Es principalmente el problema con el Firewall de Windows. Intenté los mismos pasos que tú, pero no fue exitoso. En el momento en que apagué el cortafuegos, estaba bien. Creo que la seguridad no debería verse afectada ya que estamos configurando reglas entrantes y salientes.
fuente
Para la instancia de WINDOWS: haga clic con el botón derecho en el nombre de la instancia EC-2, busque el archivo .pem creado durante la creación de la instancia y haga clic en Descifrar contraseña. Obtendrá el nombre de usuario y la contraseña para conectarse a través de Inicio -> Ejecutar -> mstsc -> IP de Windows con autenticación de Windows como administrador y su contraseña
Para la instancia de LINUX -> Descargue puttygen y haga clic en el botón CARGAR para seleccionar el archivo .pem y luego haga clic en el botón GENERAR para generar un archivo ppk. A través de masilla, ingrese la IP y en Conexiones -> SSH -> AUTH -> Examinar para seleccionar el archivo .ppk y guardar las sesiones de masilla.
fuente