GNU/Linux >> Tutoriels Linux >  >> Linux

Meilleures pratiques lors de l'exécution de Node.js avec le port 80 (Ubuntu / Linode)

Autoriser l'utilisateur sécurisé à utiliser le port 80

N'oubliez pas que nous ne voulons PAS exécuter vos applications en tant qu'utilisateur root, mais il y a un problème :votre utilisateur sécurisé n'a pas l'autorisation d'utiliser le port HTTP par défaut (80). Votre objectif est de pouvoir publier un site Web que les visiteurs peuvent utiliser en naviguant vers une URL facile à utiliser comme http://ip:port/

Malheureusement, à moins que vous ne vous connectiez en tant que root, vous devrez normalement utiliser une URL telle que http://ip:port - où numéro de port> 1024.

Beaucoup de gens sont coincés ici, mais la solution est simple. Il y a quelques options mais c'est celle que j'aime. Tapez les commandes suivantes :

sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

Désormais, lorsque vous dites à une application Node que vous souhaitez qu'elle s'exécute sur le port 80, elle ne se plaindra pas.

Vérifiez ce lien de référence


Port 80

Ce que je fais sur mes instances cloud, c'est que je redirige le port 80 vers le port 3000 avec cette commande :

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

Ensuite, je lance mon Node.js sur le port 3000. Les requêtes vers le port 80 seront mappées sur le port 3000.

Vous devez également modifier votre /etc/rc.local fichier et ajoutez cette ligne moins le sudo . Cela ajoutera la redirection au démarrage de la machine. Vous n'avez pas besoin de sudo en /etc/rc.local car les commandes y sont exécutées en tant que root lorsque le système démarre.

Journaux

Utilisez le module forever pour lancer votre Node.js avec. Il s'assurera qu'il redémarre en cas de plantage et il redirigera les journaux de la console vers un fichier.

Lancer au démarrage

Ajoutez votre script de démarrage Node.js au fichier que vous avez modifié pour la redirection de port, /etc/rc.local . Cela exécutera votre script de lancement Node.js au démarrage du système.

Océan numérique et autres VPS

Cela s'applique non seulement à Linode, mais également à Digital Ocean, AWS EC2 et à d'autres fournisseurs de VPS. Cependant, sur les systèmes basés sur RedHat /etc/rc.local est /ect/rc.d/local .


Linux
  1. Comment gérer les versions de NodeJS avec n dans Ubuntu 20.04

  2. Installer Vsftpd avec SSL/TLS sur Ubuntu 20.04 - Meilleure Procédure ?

  3. Changer le port SSH sur le système Linux Ubuntu 20.04 - Meilleure méthode ?

  4. 8 Meilleures pratiques avec sudo sous Linux - À faire et à ne pas faire de sudo

  5. Examen de plusieurs ports lors de l'exécution de NetCat (nc)

Configurer un port série avec Virtualbox sur Ubuntu (OS invité :Windows Xp) ?

Configuration du serveur Ubuntu - Meilleures pratiques de sécurité

Installer WordPress avec Nginx sur Ubuntu 18.04

Comment installer Node.js sur Ubuntu 14.04

Comment changer le port SSH sur Ubuntu ?

5 meilleures pratiques de sécurité Linux SSH pour sécuriser vos systèmes