NginX N'est plus redirige des non-www sur www Après avoir redémarré Ubuntu

Donc, j'ai récemment installé Ubuntu (node.js) w. Nginx et SSL (letsencrypt) Sur mon serveur, et tout fonctionne bien.

j'ai eu 3 Server Bloc {}.

Une redirection de toutes les demandes sans www sur www

On redirige tous les appels vers le port. 80 sur https: //

Un ensemble de proxy inverse pour le service SSL et noeud, et quoi de pas.

Tout a fonctionné comme indiqué ci-dessus, mais après le redémarrage ubuntu Seulement 3ème travaux (serre SSL), Et maintenant il ignore complètement le 1er et 2ème, malgré le fait que nginx Travaille sans erreurs (Par conséquent, le 3ème bloc fonctionne). Alors il ne redirige plus non de non-www sur www et http sur https, Cependant, quand j'ai accès directement avec https, Ça fonctionne bien. Je ne sais pas ce qui se passe et pourquoi cela s'est passé après le redémarrage.

Voici le code situé dans / etc / nginx / sites-enabled / default:

# Redirect non-www to www
server {
server_name mydomain.com;
return 301 https://$host$request_uri;
}

# HTTP - redirect all traffic to HTTPS
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}

# HTTPS - proxy all requests to the Node app
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:433 ssl http2;
server_name www.mydomain.com;

# Use the Let's Encrypt certificates
ssl_certificate /etc/letsencrypt/live/www.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.mydomain.com/privkey.pem;
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass [url=http://localhost:3000/;]http://localhost:3000/;[/url]
proxy_ssl_session_reuse off;
proxy_set_header Host @http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
Invité:

Emilie

Confirmation de:

# Redirect non-www to www
server {
server_name mydomain.com;
return 301 https://$host$request_uri;
}

Vous manquez

listen

et directives de certificat SSL De ce bloc. Cela devrait fonctionner comme ceci:

# Redirect non-www to www
server {
listen 443 ssl http2;
server_name mydomain.com;
# Use the Let's Encrypt certificates
ssl_certificate /etc/letsencrypt/live/www.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.mydomain.com/privkey.pem;
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;

return 301 https://$host$request_uri;
}

De plus, vous avez dans le serveur principal:

listen 443 ssl http2;
listen [::]:433 ssl http2;

Vous devez avoir ce qui suit:

listen 443 ssl http2;
listen [::]:443 ssl http2 ipv6only=yes;

Pour répondre aux questions, connectez-vous ou registre