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
.