8768 sujets

Développement web côté serveur, CMS

Bonjour à tous,
je débute dans l'utilisation de nginx et je galère.
J'ai déployé un site créé avec Next.js sur un VPS et j'ai installé un serveur nginx pour recevoir les requêtes.
La config est la suivante :

# Redirection de HTTP vers HTTPS
server {
    listen 80;
    server_name monsite.com;
    return 301  https://$host$request_uri;
 
}

server {
    listen 443 ssl http2;
    server_name monsite.com;

    ssl_certificate /etc/letsencrypt/live/monsite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/monsite.com/privkey.pem;

    location / {
        proxy_pass  http://localhost:3000;  # Port utilisé par Next.js
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}


Mon souci c'est que la redirection http vers https ne fonctionne pas. Si je tape https://monsite.com j’atterris bien sur mon site. Par contre avec http://monsite.com je tombe sur une page disant "Welcome to nginx If you see this page, the nginx web server is successfully installed and working. Further configuration is required...".

Savez-vous ce qui cloche ?

De plus j'aimerais aussi ajouter une redirection "www.monsite.com" vers "monsite.com" mais mes essais ont été infructueux.

Si un connaisseur de nginx peut m'aider, ce serait très volontiers.
Merci d'avance !
Modifié par Vahia (01 May 2024 - 10:01)
Petite précision :
il me semble (mais je n'en suis vraiment pas sûr) que quand j'ai installé nginx et créé le fichier .conf, la redirection http vers https fonctionnait. Ensuite j'ai modifié le fichier .conf pour ajouter une redirection non-www vers www et j'ai utilisé la commande "sudo nginx -s reload". Ma nouvelle redirection ne fonctionnait pas et c'est peut-être là que celle des http a cessé de fonctionner.
Du coup j'ai remis l'ancienne version du fichier .conf, j'ai utilisé "sudo nginx -s reload" et "sudo service nginx restart" mais plus aucune redirection ne fonctionne...
Avec Next j'ai le backend et le frontend au même endroit et je trouve ça très pratique. Et puis le rendering se fait un maximum côté server donc niveau perfs c'est vraiment intéressant.
Bon après c'est bien plus pénible à déployer que du simple html/css/js mais bon, on ne peut pas tout avoir...

Je me suis aperçu qu'avec ma config nginx que quelques chose m'avait échappé dans mes tests. http://www.monsite.com me renvoyait vers une page nginx mais http://monsite.com me renvoyait bien vers https://monsite.com.

Du coup j'ai ajouté
server {
    listen 80;
    server_name  www.monsite.com;
 
    return 301  https://monsite.com$request_uri;
 
}

et tout est rentré dans l'ordre.

En tout cas, merci Gordon25 pour ton message.
Modifié par Vahia (08 May 2024 - 13:03)