Une MEAN Stack est une pile logicielle JavaScript gratuite, open-source et populaire utilisée pour développer des sites Web dynamiques et des applications Web. Il est composé de quatre composants :MongoDB, Express, Angular et Node.js. Angular est utilisé pour le développement frontend, tandis que Node.js, Express et MongoDB sont utilisés pour le développement backend. Une pile MEAN est basée sur le langage JavaScript afin de pouvoir gérer tous les aspects d'une application.
Dans ce tutoriel, nous allons vous montrer comment installer une pile MEAN sur Ubuntu 20.04.
Prérequis
- Un nouveau VPS Ubuntu 20.04 sur la plate-forme cloud Atlantic.Net
- Un nom de domaine valide pointant vers l'adresse IP de votre serveur
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur, en choisissant Ubuntu 20.04 comme système d'exploitation, avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur Ubuntu 20.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 - Installer MongoDB
Tout d'abord, vous devrez installer une base de données MongoDB sur votre serveur. Par défaut, la dernière version de MongoDB est disponible dans le référentiel par défaut d'Ubuntu 20.04, vous pouvez donc l'installer facilement avec la commande suivante :
apt-get install mongodb -y
Une fois MongoDB installé, démarrez le service MongoDB et activez-le au redémarrage du système avec la commande suivante :
systemctl start mongodb systemctl enable mongodb
Étape 3 - Installer Node.js
Tout d'abord, installez toutes les dépendances requises avec la commande suivante :
apt-get install curl gnupg2 unzip git gcc g++ make -y
Une fois toutes les dépendances installées, ajoutez le dépôt Node.js avec la commande suivante :
curl -sL https://deb.nodesource.com/setup_14.x | bash -
Après avoir ajouté le référentiel. vous pouvez installer Node.js avec la commande suivante :
apt-get install nodejs -y
Une fois Node.js installé, vérifiez la version de Node.js avec la commande suivante :
node -v
Vous devriez obtenir le résultat suivant :
v14.15.1
Ensuite, installez les autres packages requis, y compris yarn, gulp et pm2 avec la commande suivante :
npm install -g yarn npm install -g gulp npm install pm2 -g
Une fois tous les packages installés, vous pouvez passer à l'étape suivante.
Étape 4 - Installer et configurer MEAN Stack
Tout d'abord, téléchargez la dernière version de MEAN avec la commande suivante :
git clone https://github.com/meanjs/mean
Une fois le téléchargement terminé, changez le répertoire pour signifier et installez toutes les dépendances requises avec la commande suivante :
cd mean yarn install
Ensuite, éditez le fichier server.js avec la commande suivante :
nano server.js
Remplacez toutes les lignes par les suivantes :
const express = require('express'); const MongoClient = require('mongodb').MongoClient; const app = express(); app.use('/', (req, res) => { MongoClient.connect("mongodb://localhost:27017/test", function(err, db){ db.collection('Example', function(err, collection){ collection.insert({ pageHits: 'pageHits' }); db.collection('Example').count(function(err, count){ if(err) throw err; res.status(200).send('Page Hits: ' + Math.floor(count/2)); }); }); }); }); app.listen(3000); console.log('Server running at http://localhost:3000/'); module.exports = app;
Enregistrez et fermez le fichier lorsque vous avez terminé, puis démarrez le serveur avec la commande suivante :
pm2 start server.js
Vous devriez obtenir le résultat suivant :
Ensuite, activez server.js pour qu'il démarre au redémarrage du système avec la commande suivante :
pm2 startup
À ce stade, la pile MEAN est installée et écoute sur le port 3000. Vous pouvez le vérifier avec la commande suivante :
ss -antpl | grep 3000
Vous devriez obtenir le résultat suivant :
LISTEN 0 511 *:3000 *:* users:(("node",pid=26014,fd=20))
Étape 5 - Configurer Nginx en tant que proxy inverse pour MEAN
Ensuite, vous devrez installer et configurer Nginx en tant que proxy inverse pour accéder à l'application MEAN.
Tout d'abord, installez le serveur Web Nginx avec la commande suivante :
apt-get install nginx -y
Une fois installé, créez un nouveau fichier de configuration d'hôte virtuel Nginx avec la commande suivante :
nano /etc/nginx/sites-available/mean
Ajoutez les lignes suivantes :
server { listen 80; server_name mean.example.com; access_log /var/log/nginx/mean-access.log; error_log /var/log/nginx/mean-error.log; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:3000/; } }
Enregistrez et fermez le fichier lorsque vous avez terminé, puis activez l'hôte virtuel avec la commande suivante :
ln -s /etc/nginx/sites-available/mean /etc/nginx/sites-enabled/
Ensuite, modifiez le fichier de configuration principal de Nginx et définissez le hash_bucket_size :
nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante sous http {/P>
server_names_hash_bucket_size 64;
Enregistrez et fermez le fichier, puis vérifiez le Nginx pour les erreurs de syntaxe avec la commande suivante :
nginx -t
Vous devriez obtenir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Enfin, redémarrez le service Nginx pour appliquer les modifications de configuration :
systemctl restart nginx
Étape 6 - Accéder à l'application MEAN
Maintenant, ouvrez votre navigateur Web et accédez à l'application MEAN en utilisant l'URL http://mean.example.com . Vous devriez voir votre application MEAN dans l'écran suivant :
Dans l'écran ci-dessus, le nombre augmentera automatiquement lorsque vous actualiserez la page.
Conclusion
Toutes nos félicitations! Vous avez installé avec succès MEAN Stack avec Nginx en tant que proxy inverse sur le serveur Ubuntu 20.04. Vous pouvez maintenant facilement déployer votre propre application dynamique avec une pile MEAN sur votre compte d'hébergement VPS avec Atlantic.Net.