Mon application nodejs est déployée sur AWS EB. J'ai déjà configuré le serveur https et ça marche bien. Maintenant, je dois rediriger toutes les demandes non-https à https avec le www. comme préfixe, comme ceci:AWS EB - Redirige tout le trafic vers https
GET example.com => https://www.example.com
J'utilise nginx et mon exemple EB est une instance unique sans équilibreur de charge devant elle.
J'ai créé un fichier de configuration dans le dossier .ebextensions avec ce code
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0 files: /etc/nginx/conf.d/999_nginx.conf: mode: "000644" owner: root group: root content: | upstream nodejsserver { server 127.0.0.1:8081; keepalive 256; } # HTTP server server { listen 8080; server_name localhost; return 301 https://$host$request_uri; } # HTTPS server server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/pki/tls/certs/server.crt; ssl_certificate_key /etc/pki/tls/certs/server.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_prefer_server_ciphers on; location/{ proxy_pass http://nodejsserver; proxy_set_header Connection ""; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } } /etc/pki/tls/certs/server.crt: mode: "000400" owner: root group: root content: | -----BEGIN CERTIFICATE----- my crt -----END CERTIFICATE----- /etc/pki/tls/certs/server.key: mode: "000400" owner: root group: root content: | -----BEGIN RSA PRIVATE KEY----- my key -----END RSA PRIVATE KEY----- /etc/nginx/conf.d/gzip.conf: content: | gzip on; gzip_comp_level 9; gzip_http_version 1.0; gzip_types text/plain text/css image/png image/gif image/jpeg application/json application/javascript application/x-javascript text/javascript text/xml application/xml application/rss+xml application/atom+xml application/rdf+xml; gzip_proxied any; gzip_disable "msie6"; commands: 00_enable_site: command: 'rm -f /etc/nginx/sites-enabled/*'
Je suis sûr que aws prend en compte ma config car de ssl fonctionne bien. Mais le bloc http ne fonctionne pas .. Il n'y a pas de redirection.
Peut-être que mon problème est sur la réécriture de la configuration nginx originale de EB, savez-vous comment y parvenir?
Pouvez-vous m'aider s'il vous plaît? J'ai essayé beaucoup de choses ..
Merci
double possible de [Comment forcer https sur beanstalk élastique?] (Http://stackoverflow.com/questions/14693852/how-to-force-https-on-elastic-beanstalk) –
Mot pour dire que j'utilise nginx et eb sur une seule instance sans équilibreur de charge devant lui! –
Avez-vous cherché quelque chose comme "Nginx force SSL"? Il y a déjà des tonnes de réponses à cette question. –