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

376
Views
AWS ALB redirige HTTPS a HTTP sin barra diagonal final

Tengo un servidor nginx que se ejecuta en el puerto 8080 que se encuentra detrás de un Balanceador de carga de aplicaciones de AWS. Tengo el siguiente bloque de ubicación en nginx.conf ,

 location / { limit_except GET { deny all; } root /root/of/project/; index index.html; try_files $uri $uri/ /index.html; }

Cuando ejecuto el servidor localmente, puedo presionar /alguna/ruta/ y /alguna/ruta y obtener la misma respuesta, es decir, la barra inclinada final no afecta nada. Esperaría el mismo comportamiento cuando implemente la aplicación.

Configuré AWS ALB con un agente de escucha HTTP en el puerto 80 que redirige todo el tráfico al agente de escucha HTTPS en el puerto 443. El agente de escucha HTTPS simplemente reenvía al grupo de destino donde se encuentra el servidor nginx. Esas son las únicas dos reglas de equilibrador de carga que tengo, nada más.

Después de implementar la aplicación, cuando accedo a una URL con una barra inclinada al final (por ejemplo, https://example.com/about/ ), todo está bien. Se carga como se esperaba. Sin redirecciones ni nada. Puedo ver la solicitud en los registros de nginx.

Sin embargo, si accedo a una URL sin una barra inclinada, por ejemplo

https://ejemplo.com/acerca de

El ALB redirige a

http://ejemplo.com:8080/acerca de/

y luego nunca carga. Nunca veo ningún registro en el servidor nginx para esa solicitud, lo que significa que nunca pasó del ALB al grupo de destino. La solicitud expira después de unos minutos.

Parece que ALB podría estar intentando reenviar la solicitud al grupo de destino, ya que 8080 es el puerto en el que se ejecuta el servidor nginx, pero no estoy seguro de por qué la solicitud nunca llega. No parece que la barra diagonal final deba afectar si la solicitud se reenvía o no, pero no estoy seguro.

Pensé que tal vez podría configurar una regla que redirija una ruta sin una barra inclinada final a la misma ruta con una barra inclinada final en el nivel ALB, pero las reglas del balanceador de carga solo tienen comodines, no expresiones regulares. Entonces, eso es un callejón sin salida. Sin embargo, no estoy seguro de que eso solucione el problema, ya que el problema parece estar en el nivel ALB, no en el nivel de la aplicación.

¿Alguien tiene alguna idea de lo que está pasando?

EDITAR: Reglas del balanceador de carga: regla del equilibrador de carga http regla del balanceador de carga https

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Tuve este problema ayer, solo tengo un oyente ALB en 443 y nginx está abierto en 80, creo que lo arreglé con "absolute_redirect off;" en la configuración de nginx. Mi archivo conf completo:

 server { listen 80; absolute_redirect off; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ $uri/index.html =404; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
over 4 years ago · Santiago Trujillo Report

0

Una mejor configuración sería simplemente hacer la terminación SSL en su ALB y luego crear un agente de escucha HTTP con una regla de reenvío que tenga su grupo objetivo como destino. Esto tiene múltiples beneficios en términos de gestión simplificada de los certificados, rendimiento, etc.

Lea aquí sobre la configuración de escucha HTTP

Mejor, Stefan

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!