Creé un entorno en AWS que incluye una instancia EC2 con el servidor web node js y Nginx instalado, detrás de un balanceador de carga de aplicaciones autofirmado.
Mi ALB recibe solicitudes de HTTPS (443) y las reenvía en HTTP (80) a Nginx. Mi Nginx debería recibir las solicitudes del ALB (en el puerto 80) y reenviarlas al puerto 9090 (que utiliza el servidor web del nodo js).
Sin embargo, tengo problemas para traducir las solicitudes de Nginx a la aplicación. Al ingresar la URL con ALB DNS en HTTP, puedo acceder a la página anterior (en lugar de la página de la aplicación de mi servidor web): 
Mi archivo default.conf adjunto arriba: 
Todos mis grupos de seguridad están abiertos para probar el problema (en 443, 80, 9090). entonces los puertos no son el problema, sino la configuración de Nginx.
Además, mi grupo objetivo presentado anteriormente: 
¿Cuál podría ser el problema / qué configuración adicional debo hacer? Gracias.
Cuando tiene Load Balancer, ¿por qué está usando Nginx? suena como si estuvieras usando dos servidores Nginx para una aplicación nodejs. Además , las operaciones SSL consumen recursos de CPU adicionales. La operación más intensiva de la CPU es el protocolo de enlace SSL.
La forma correcta de manejar esto que también resolverá su problema anterior.
9090Con este enfoque, está finalizando SSL/TLS en el equilibrador de carga y la instancia recibirá una conexión HTTP simple que ahorrará tiempo de CPU para el cifrado/descifrado SSL.
La terminación SSL es el término que apunta a servidores proxy o balanceadores de carga que aceptan conexiones SSL/TLS; sin embargo, no use lo mismo mientras se conecta a los servidores back-end. Por ejemplo, un balanceador de carga expuesto a Internet puede aceptar HTTPS en el puerto 443, pero se conecta a los servidores back-end solo a través de HTTP.
Para fines de prueba, esto debería funcionar.
server { listen 80; server_name example.com; client_max_body_size 32M; underscores_in_headers on; location / { proxy_set_header Upgrade $http_upgrade; proxy_pass_header device_id; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; proxy_set_header Host $host; proxy_read_timeout 120; proxy_next_upstream error timeout invalid_header http_500; proxy_connect_timeout 90; proxy_pass http://localhost:9090; } }Trabajó. El problema estaba en el archivo "/etc/nginx/nginx.conf". Después de mucho leer y probar, descubrí que dentro del archivo se reenvía a HTML (en lugar de mi servidor web nodejs). Cambió la línea de "root /path_to_ws", reinició Nginx y funcionó. ¡Gracias por la ayuda!