Lorsque vous souhaitez mettre un site web sur votre VPS, il faut utiliser un reverse proxy ; c'est une application qui est en contact avec les utilisateurs, et joue le rôle d'intermédiaire avec des applications en back-end.
Nginx est très utilisé en tant que reverse-proxy pour des sites web statiques ou dynamiques.
Vous trouverez ci-dessous des explications de comment installer puis configurer un serveur web sur un VPS via Nginx.
1. Installations
- Connectez-vous en SSH à votre VPS et mettez à jour les packages avec
sudo apt update && sudo apt upgrade
- Installez Nginx avec
sudo apt install nginx
- Une fois l'installation terminée, vous pouvez vérifier si Nginx est en cours d'exécution en accédant à l'adresse IP de votre VPS dans votre navigateur Web. Si c'est le cas, vous devriez voir la page d'accueil par défaut de Nginx.
- Si vous avez un pare-feu activé sur votre VPS, vous devrez peut-être autoriser le trafic HTTP pour Nginx. Vous pouvez le faire en exécutant
sudo ufw allow 'Nginx HTTP'
Maintenant, vous pouvez personnaliser la configuration de Nginx pour votre site Web.
2. Configuration classique de Nginx
Normalement, les fichiers de configuration pour chaque site Web sont stockés dans le dossier /etc/nginx/sites-available/ et liés avec le dossier /etc/nginx/sites-enabled/.
Cependant, je vous recommande d'utiliser un seul dossier "conf.d" pour tous les fichiers de configuration de vos sites Web (à chacun sa méthode). Pour cela, créez un dossier /etc/nginx/conf.d/ s'il n'existe pas déjà, et créez un fichier de configuration pour votre site Web en utilisant un éditeur de texte comme Nano ou Vim.
Par exemple, vous pouvez créer un fichier nommé "monsite.conf" avec le contenu suivant :
server {
listen 80;
server_name monsite.com www.monsite.com;
root /var/www/monsite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Dans cet exemple, le fichier de configuration définit les paramètres du serveur pour votre site Web.
Le serveur écoute les connexions HTTP sur les noms de domaine "monsite.com" et "www.monsite.com".
Les fichiers pour votre site Web sont stockés dans le dossier /var/www/monsite et le fichier index est index.html.
Bien sûr c'est un exemple pour un site statique, sinon voici un exemple pour un site dynamique avec un Port spécifique :
server {
listen 80;
server_name monsite.com www.monsite.com;
location / {
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:votre_port;
proxy_set_header Host $host;
}
}
3. Configuration avec certificat SSL
Si vous utilisez un certificat SSL pour votre site Web, vous pouvez le stocker dans un dossier /etc/nginx/certs/. Pour chaque site Web avec un certificat SSL, stockez le certificat et la clé dans ce dossier. Par exemple, dans /etc/nginx/certs/ vous pouvez stocker les fichiers "monsite.pem" et "monsite.key".
Voici un exemple de configuration une fois les clés dans le dossier :
server {
listen 443 ssl http2;
server_name monsite.com www.monsite.com;
ssl_certificate /etc/nginx/certs/monsite.pem;
ssl_certificate_key /etc/nginx/certs/monsite.key;
root /var/www/monsite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Dans cet exemple, on a ajouté ssl
à la directive listen pour activer SSL sur le port 443.
Nous avons également ajouté les chemins d'accès aux certificats SSL dans les directives ssl_certificate
et ssl_certificate_key
avec respectivement les chemins vers les clés.
4. Enregistrer les modifications
Redémarrez Nginx pour que les modifications prennent effet avec sudo systemctl restart nginx
~ Votre serveur web est désormais configuré ! N'hésitez pas à consulter mes autres tutoriels sur les VPS.