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
.