comment redirect http vers https dans le haricot magique élastique docker nginx

J’ai une application django hébergée dans docker elastic beanstalk, qui utilise nginx. Pour SSL, j’utilise un certificate aws. Pour redirect http vers https, j’ai essayé “x_forwarded_proto” avec le nginx dans le conteneur docker mais je reçois une erreur 502. voici la configuration nginx:

server { listen 80 default_server; server_name www.example.com; access_log /home/docker/logs/nginx-access.log; error_log /home/docker/logs/nginx-error.log; if ($host !~* ^(www.example.com|example.com)$ ) { return 444; } if ( $http_x_forwarded_proto != 'https' ) { return 301 https://$host$request_uri; } location / { uwsgi_pass unix:/var/sockets/api.sock; include /home/docker/server/uwsgi_params; # } } 

Quelqu’un peut-il suggérer une meilleure solution pour cela.

Trouvé une solution pour cela, il suffit d’append

 if ( $http_x_forwarded_proto != 'https' ) { return 301 https://$host$request_uri; } 

à la configuration nginx de l’instance eb.

C’est vraiment une question nginx (ajoutez la balise appropriée).

Votre configuration semble compliquée. Commencez par celui-ci à la place. C’est ce que j’utilise pour redirect le trafic du port http 80 vers le trafic du port TLS / SSL 443.

 access_log /home/docker/logs/nginx-access.log; error_log /home/docker/logs/nginx-error.log; server { listen 80; server_name www.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name www.example.com; location / { root /usr/share/nginx/html; index index.html; } }