2017-02-02 4 views
1

J'ai essayé d'exécuter le site sur https au lieu de http et donc de créer une redirection. En ce moment le site fonctionne à l'adresse https. Si je saisis l'adresse http, la redirection vers https a lieu mais elle indique qu'elle ne peut pas trouver le serveur. Qu'est-ce que je fais mal? Commenté est ce que j'ai aussi essayé. Je ne comprends pas vraiment pourquoi server_name est _ dans la deuxième configuration (qui fonctionne), parce qu'il est une configuration d'image pré-installée sur VPSLa redirection de https vers https ne fonctionne pas. Impossible de trouver le serveur, ngnix

 upstream app_server { 
     server unix:/home/django/gunicorn.socket fail_timeout=0; 
    } 

    server { 
     listen 80 default_server; 
     listen [::]:80 default_server; 
     server_name _; 
     return 301 https://$host$request_uri; 
     #listen 80; 
     #server_name solomon; 
     #return 301 https://closer.com$request_uri; 

     #server_name solomon; 
     #listen 80; 
     #return 301 https://closer.com; 
    } 

    server { 
     #listen 80 default_server; 
     #listen [::]:80 default_server ipv6only=on; 

     listen 443; 

     ssl on; 
     ssl_certificate /etc/ssl/simple_academy_cert_chain.crt; 
     ssl_certificate_key /etc/ssl/server.key; 

     root /usr/share/nginx/html; 
     index index.html index.htm; 

     client_max_body_size 4G; 
     server_name _; 

     keepalive_timeout 5; 

     # Your Django project's media files - amend as required 
     location /media { 
      alias /home/django/django_project/django_project/media; 
     } 

    # your Django project's static files - amend as required 
    location /static { 
     alias /home/django/django_project/static; 
    } 

    # Proxy the static assests for the Django Admin panel 
    location /static/admin { 
     alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/; 
    } 

    location/{ 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Forwarded-Proto https; 
      proxy_set_header Host $host; 
      proxy_redirect off; 
      proxy_buffering off; 

      proxy_pass http://app_server; 
    } 

} 
+1

Je pense que vous devriez ajouter votre nom de domaine dans server_name. (c'est-à-dire server_name example.com) –

+0

@GopalRoy J'ai essayé. Maintenant essayé une fois de plus à ajouter à «server_name closer.com.com» n'a pas aidé –

+1

exécuter: nginx -t cela imprime des erreurs, juste un rappel, redémarrez le service nginx. – MicroPyramid

Répondre

0

Voilà comment je gérer sur mon serveur:

server { 
    listen  80; 
    server_name mysite.com www.mysite.com; 
    return 301 https://$server_name$request_uri; 
} 

Tout le trafic HTTP est redirigé vers HTTPS.