L'exécution de l'application nodejs sur l'environnement de développement ou local où l'interface graphique est fournie dans le système d'exploitation est une tâche facile, mais lorsqu'il s'agit de la déployer en production sur un serveur cloud, la plupart des débutants ne savent pas comment commencer. Voici donc la procédure détaillée étape par étape pour configurer une application nodejs simple.
1. Créer un nouvel utilisateur sudo
REMARQUE :Si vous avez déjà créé un utilisateur avec des privilèges de superutilisateur, vous n'avez pas besoin de suivre cette étape.
En fait, vous pouvez directement travailler avec root utilisateur, mais certaines commandes dangereuses mal saisies par vous dans le terminal causeront des dommages au serveur. Alors mieux vaut utiliser sudo accès et pour le créer, connectez-vous d'abord avec root privilèges utilisateur :
$ ssh [email protected]_server_ip
Et puis complétez-le en donnant le mot de passe et l'authenticité de l'hôte.
Créez maintenant un nouvel utilisateur avec sudo accès :
$ adduser sonu
$ usermod -aG sudo sonu
La première commande crée un nouvel utilisateur après avoir posé quelques questions et la deuxième commande ajoute cet utilisateur au sudo group (groupe de superutilisateurs).
Maintenant, déconnectez-vous du serveur (utilisez exit commande) et connectez-vous avec ce nouvel utilisateur.
$ ssh [email protected]_ip
2. Installez le nginx et node.js
Mettez d'abord à jour le apt dépôt avec cette commande :
$ sudo apt update
Maintenant, installez nginx en utilisant
$ sudo apt install nginx
Et puis nodejs avec
$ curl -sL https://deb.nodesource.com/setup_6.x | bash
$ sudo apt install -y nodejs
Vous pouvez également consulter le nodesource officiel [instructions d'installation.] (https://github.com/nodesource/distributions#installation-instructions) pour la dernière version de node.js.
3. Démarrage d'une simple application nodejs (express)
Nous allons créer une application expressjs simple en utilisant express-generator . Donc, installez d'abord express-generator globalement en utilisant ce qui suit :
$ sudo npm i express-generator -g
Après cela, créez l'application express dans le répertoire personnel
$ cd ~
$ express testapp
Démarrez maintenant l'application en utilisant :
$ cd testapp
$ npm install & npm start
Votre application commencera à http://localhost:8080 port.
4. Installez pm2 pour l'exécuter pour toujours
Faites simplement npm start ne redémarrera pas l'application si l'application tombe en cas de panne du serveur ou autre. Donc, pour le maintenir opérationnel à chaque redémarrage du système, nous utilisons pm2 application nodejs. Installez-le globalement en tapant sudo npm i pm2 -g et exécutez l'application pour toujours en utilisant la commande suivante.
$ cd testapp/bin
$ pm2 start www
5. Mappage 8080 au port http par défaut.
Maintenant, la dernière étape consiste à utiliser nginx pour mapper 8080 port par défaut 80 port http. Nous l'appelons serveur proxy inverse.
Ouvrez le bloc de serveur par défaut de nginx et supprimez tout de ce fichier.
$ sudo nano /etc/nginx/sites-available/default
Collez le code suivant dans ce fichier et enregistrez-le :
server {
listen 80;
server_name "";
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Testez enfin la configuration et rechargez le nginx :
$ sudo nginx -t
$ sudo nginx -s reload
## or restart the nginx
$ sudo service nginx restart
L'étape supplémentaire consiste à désactiver le port 8080 via ubuntu ufw pare-feu. L'activer bloquera tous les ports. Autorisez donc certains ports communs via Nginx Full configuration.
$ sudo ufw enable
$ sudo ufw allow 'Nginx Full'