Udělte bezpečnému uživateli oprávnění k použití portu 80
Pamatujte, že NECHCEME spouštět vaše aplikace jako uživatel root, ale je tu háček:váš bezpečný uživatel nemá oprávnění používat výchozí port HTTP (80). Vaším cílem je umět publikovat web, který budou moci návštěvníci používat, když přejdou na snadno použitelnou adresu URL, jako je http://ip:port/
Bohužel, pokud se nepřihlásíte jako root, budete normálně muset použít adresu URL jako http://ip:port
- kde číslo portu> 1024.
Hodně lidí se tu zasekne, ale řešení je snadné. Existuje několik možností, ale tato se mi líbí. Zadejte následující příkazy:
sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``
Když nyní řeknete aplikaci Node, že chcete, aby běžela na portu 80, nebude si stěžovat.
Zkontrolujte tento referenční odkaz
Port 80
Na svých cloudových instancích přesměruji port 80 na port 3000 pomocí tohoto příkazu:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
Potom spustím svůj Node.js na portu 3000. Požadavky na port 80 se namapují na port 3000.
Měli byste také upravit /etc/rc.local
a přidejte tento řádek mínus sudo
. To přidá přesměrování, když se počítač spustí. Nepotřebujete sudo
v /etc/rc.local
protože příkazy tam běží jako root
při spuštění systému.
Protokoly
Pomocí modulu forever spusťte svůj Node.js. Zajistí, že se restartuje, pokud někdy dojde k selhání, a přesměruje protokoly konzoly do souboru.
Spustit při spuštění
Přidejte svůj startovací skript Node.js do souboru, který jste upravili pro přesměrování portu, /etc/rc.local
. Tím se spustí spouštěcí skript Node.js při spuštění systému.
Digitální oceán a další VPS
To platí nejen pro Linode, ale také pro Digital Ocean, AWS EC2 a další poskytovatele VPS. Nicméně na systémech založených na RedHat /etc/rc.local
je /ect/rc.d/local
.