GNU/Linux >> Linux Esercitazione >  >> Linux

Best practice per l'esecuzione di Node.js con la porta 80 (Ubuntu/Linode)

Concedi all'utente sicuro il permesso di utilizzare la porta 80

Ricorda, NON vogliamo eseguire le tue applicazioni come utente root, ma c'è un intoppo:il tuo utente sicuro non ha il permesso di usare la porta HTTP predefinita (80). Il tuo obiettivo è essere in grado di pubblicare un sito Web che i visitatori possano utilizzare accedendo a un URL facile da usare come http://ip:port/

Sfortunatamente, a meno che tu non acceda come root, normalmente dovrai utilizzare un URL come http://ip:port - dove numero di porta> 1024.

Molte persone rimangono bloccate qui, ma la soluzione è semplice. Ci sono alcune opzioni ma questa è quella che mi piace. Digita i seguenti comandi:

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

Ora, quando dici a un'applicazione Node che vuoi che venga eseguita sulla porta 80, non si lamenterà.

Controlla questo link di riferimento


Porta 80

Quello che faccio sulle mie istanze cloud è reindirizzare la porta 80 alla porta 3000 con questo comando:

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

Poi lancio il mio Node.js sulla porta 3000. Le richieste alla porta 80 verranno mappate alla porta 3000.

Dovresti anche modificare il tuo /etc/rc.local file e aggiungi quella riga meno il sudo . Ciò aggiungerà il reindirizzamento all'avvio della macchina. Non hai bisogno di sudo in /etc/rc.local perché i comandi vengono eseguiti come root all'avvio del sistema.

Registri

Usa il modulo per sempre per lanciare il tuo Node.js con. Si assicurerà che si riavvii in caso di arresto anomalo e reindirizzerà i log della console in un file.

Avvia all'avvio

Aggiungi il tuo script di avvio Node.js al file che hai modificato per il reindirizzamento della porta, /etc/rc.local . Questo eseguirà il tuo script di avvio Node.js all'avvio del sistema.

Digital Ocean e altri VPS

Questo vale non solo per Linode, ma anche per Digital Ocean, AWS EC2 e altri fornitori di VPS. Tuttavia, su sistemi basati su RedHat /etc/rc.local è /ect/rc.d/local .


Linux
  1. Come gestire le versioni di NodeJS con n in Ubuntu 20.04

  2. Cambia la porta SSH sul sistema Linux Ubuntu 20.04:il metodo migliore?

  3. Guida introduttiva a Multipass – Esecuzione di macchine virtuali Ubuntu

  4. Ubuntu:eseguire un comando quando viene inserito un Cd/dvd/bd?

  5. Come installare NodeJs su Ubuntu 18.04

Configurare una porta seriale con Virtualbox su Ubuntu (ospiti:Windows Xp)?

Configurazione del server Ubuntu – Procedure consigliate per la sicurezza

Installa WordPress con Nginx su Ubuntu 18.04

Come installare Node.js su Ubuntu 14.04

Come cambiare la porta SSH su Ubuntu?

5 Best practice per la sicurezza SSH Linux per proteggere i tuoi sistemi