GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Best Practices beim Ausführen von Node.js mit Port 80 (Ubuntu / Linode)

Erteilen Sie dem sicheren Benutzer die Berechtigung, Port 80 zu verwenden

Denken Sie daran, dass wir Ihre Anwendungen NICHT als Root-Benutzer ausführen möchten, aber es gibt ein Problem:Ihr sicherer Benutzer hat keine Berechtigung, den Standard-HTTP-Port (80) zu verwenden. Ihr Ziel ist es, eine Website zu veröffentlichen, die Besucher verwenden können, indem sie zu einer einfach zu verwendenden URL wie http://ip:port/ navigieren

Leider müssen Sie normalerweise eine URL wie http://ip:port verwenden, es sei denn, Sie melden sich als root an - wobei Portnummer> 1024.

Viele Leute bleiben hier stecken, aber die Lösung ist einfach. Es gibt ein paar Optionen, aber das ist die, die ich mag. Geben Sie die folgenden Befehle ein:

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

Wenn Sie jetzt einer Node-Anwendung mitteilen, dass sie auf Port 80 ausgeführt werden soll, wird sie sich nicht beschweren.

Überprüfen Sie diesen Referenzlink


Port 80

Auf meinen Cloud-Instanzen leite ich Port 80 mit diesem Befehl auf Port 3000 um:

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

Dann starte ich mein Node.js auf Port 3000. Anfragen an Port 80 werden Port 3000 zugeordnet.

Sie sollten auch Ihren /etc/rc.local bearbeiten Datei und fügen Sie diese Zeile minus sudo hinzu . Dadurch wird die Umleitung hinzugefügt, wenn die Maschine hochfährt. Sie brauchen sudo nicht in /etc/rc.local weil die Befehle dort als root ausgeführt werden wenn das System hochfährt.

Protokolle

Verwenden Sie das forever-Modul, um Ihr Node.js damit zu starten. Es stellt sicher, dass es neu gestartet wird, wenn es jemals abstürzt, und es leitet Konsolenprotokolle in eine Datei um.

Beim Booten starten

Fügen Sie Ihr Node.js-Startskript zu der Datei hinzu, die Sie für die Portumleitung bearbeitet haben, /etc/rc.local . Dadurch wird Ihr Node.js-Startskript ausgeführt, wenn das System startet.

Digital Ocean und andere VPS

Dies gilt nicht nur für Linode, sondern auch für Digital Ocean, AWS EC2 und andere VPS-Anbieter. Auf RedHat-basierten Systemen jedoch /etc/rc.local ist /ect/rc.d/local .


Linux
  1. So verwalten Sie NodeJS-Versionen mit n in Ubuntu 20.04

  2. Installieren Sie Vsftpd mit SSL / TLS auf Ubuntu 20.04 - Beste Vorgehensweise?

  3. 8 Best Practices mit sudo unter Linux – Do’s and Dont’s von sudo

  4. Node.js:Prüfen Sie, ob die Datei ein symbolischer Link ist, wenn Sie mit „fs“ über das Verzeichnis iterieren

  5. Untersuchen mehrerer Ports beim Ausführen von NetCat (nc)

Einrichten einer seriellen Schnittstelle mit Virtualbox auf Ubuntu (Gastbetriebssystem:Windows Xp)?

Ubuntu Server Setup – Best Practices für die Sicherheit

Installieren Sie WordPress mit Nginx auf Ubuntu 18.04

So installieren Sie Node.js unter Ubuntu 14.04

Wie ändere ich den SSH-Port auf Ubuntu?

5 Best Practices für Linux SSH-Sicherheit zum Schutz Ihrer Systeme