ELB Nginx redirect http to https

0

So here is my config:

server {
      listen         80;
      server_name    *.example.com;
      if ($http_x_forwarded_proto = 'http') {            
        return 301 https://$server_name$request_uri;
        }
}

When I go to example.com nginx redirect me to https://example.com but the page is a stub nginx index.html. If I go www.example.com it stays unsecure so it is not redirected at all.

What I am doing wrong? Thanks.

EDIT: When I do like in this article: https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/

return 301 https://$server_name$request_uri$http_x_forwarded_proto;

Then it is redirected https://example.com/http And of course it is 404 cause http endpoint is stupid.

1
1

Realmente debería evitar usar "if" en nginx, es un asesino del rendimiento.

deberías usar esto:

server {
  listen      80;
  server_name *.example.com;

  ## redirect http to https ##
  return 301 https://example.com$request_uri;
}

y defina su servidor "example.com".

si el elb está configurado correctamente para enviar la solicitud 443 a example.com y si tiene un conector de escucha en example.com:443, estará bien.

2
  • Gracias @ Requiem13. Probé lo que me sugieres pero sin suerte. Creé una aplicación de arranque de primavera que escucha en el puerto 80. Luego, ELB está configurado para escuchar tanto en 443 como en 80 y redirigir a 80 de la máquina que ejecuta mi aplicación de arranque de primavera. ¿Tienes alguna idea? ¿Quizás configuré mal algo? Gracias. 10/03/18 a las 13:43
  • Desafortunadamente, esta no es una respuesta útil porque esta solución conduce a un bucle infinito. Y amazon está explicando que en ese artículo he adjuntado a la pregunta inicial. 12 mar. 18 a las 9:22