Nginx: redirigez http vers https

Je sais que la question a été posée plusieurs fois. Je ne peux toujours pas avoir le mien pour travailler avec les réponses que j'ai vues jusqu'ici.

J'essaie de forcer la redirection de http vers https avec nginx. Lorsque je visite https // subdomain.example.com, tout fonctionne très bien, mais la visite http://subdomain.example.com me donne

"This Webpage has a redirect loop" 

J'ai essayé de mettre

 rewrite ^(.*) https://$host$1 permanent; 

et

 return 301 https://www.mydomain.com$request_uri; 

A essayé

 proxy_set_header X-Forwarded-Proto $scheme; 

N'a pas résolu le problème. Comment puis-je résoudre ce problème de boucle sans fin?

C'est mon nginx.conf

 upstream unicorn { server unix:/tmp/unicorn.example.sock fail_timeout=0; } server { server_name subdomain.example.com; listen 80; return 301 https://$host$request_uri; root /home/deploy/apps/example/current/public; location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; proxy_set_header X-Forwarded-Proto $scheme; } try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://unicorn; } error_page 500 502 503 504 /500.html; client_max_body_size 4G; keepalive_timeout 10; } server { server_name subdomain.example.com; listen 443; root /home/deploy/apps/example/current/public; location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; } error_page 500 502 503 504 /500.html; client_max_body_size 4G; keepalive_timeout 10; ssl on; ssl_certificate /home/deploy/apps/example/shared/ssl_cert.crt; ssl_certificate_key /home/deploy/apps/example/shared/ssl_private_key.key; }# 

One Solution collect form web for “Nginx: redirigez http vers https”

Ceci est probablement dû à votre cible de proxy car vous avez désactivé proxy_redirect .

De plus, pourquoi ne servez-vous jamais avec HTTPS?

Le mélange des deux est susceptible de confondre les visiteurs avec les avertissements du navigateur.

 upstream unicorn { server unix:/tmp/unicorn.example.sock fail_timeout=0; } server { server_name _; listen 80 default_server; return 301 https://subdomain.example.com$request_uri; } server { server_name subdomain.example.com; listen 443 ssl; ssl_certificate /home/deploy/apps/example/shared/ssl_cert.crt; ssl_certificate_key /home/deploy/apps/example/shared/ssl_private_key.key; root /home/deploy/apps/example/current/public; client_max_body_size 4G; error_page 500 502 503 504 /500.html; keepalive_timeout 10; location /assets { expires max; gzip_static on; add_header Cache-Control public; } location / { try_files $uri/index.html $uri @unicorn; } location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://unicorn; } } 

Cela devrait le faire, sauf si votre cible de proxy fait des choses bizarres avec l'en-tête X-Forwarded-Proto manquant, changez le cas pour cela et espérons qu'il gère correctement la redirection:

 location @unicorn { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://unicorn; proxy_redirect off; } 
  • Apache proxying to Unicorn server times out, comment éviter?
  • Comment charger des variables d'environnement avec Unicorn
  • Ecriture d'un file de configuration upstart pour Unicorn
  • la request de tentative nginx peut-elle requestr si une licorne est surchargée et renvoie un 502?
  • Les travailleurs de licorne disparaissent
  • Soudain, j'ai commencé à connaître d'énormes time d'attente avant que les requests ne soient utilisées
  • Rails lorsqu'il est desservi par la licorne génère une empreinte digitale incorrecte pour les actifs précompilés
  • Nginx Returning 504 Error
  • NGINX Unicorn 504 Gateway Time-out
  • 502 mauvaises erreurs de passerelle après 68 users simultanés sur le site Web
  • Forward IP réelle via Haproxy => Nginx => Unicorn
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.