Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

818
Views
Nginx como proxy inverso detrás de AWS ALB (autofirmado)

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): ingrese la descripción de la imagen aquí

Mi archivo default.conf adjunto arriba: ingrese la descripción de la imagen aquí

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: ingrese la descripción de la imagen aquí

¿Cuál podría ser el problema / qué configuración adicional debo hacer? Gracias.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

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.

terminación-ssl-http

La forma correcta de manejar esto que también resolverá su problema anterior.

  • Cree un grupo objetivo y vincúlelo con el puerto de instancia 9090
  • Generar certificado de AWS (es gratis)
  • Cree un oyente HTTPS y coloque el certificado aws
  • Agregue el grupo de destino que creamos en el paso 1 al agente de escucha HTTPS de Load Balancer.

Con 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.

ingrese la descripción de la imagen aquí

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; } }
over 4 years ago · Santiago Trujillo Report

0

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!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!