[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] node.js e apache, consigli su come gestire più app



On 24/05/2019 09:30, Giuseppe Naponiello wrote:

Dopo anni di utilizzo di php ho avuto la possibilità di sviluppare una Progressive Web App...e mi si è aperto un mondo! Per interesse personale avevo già smanettato con qualche framework tipo angular, react e vue, ed ho iniziato a studiarmi i service worker e workbox.

Se non ti serve il server-side-rendering o l'isomorfismo puoi anche servire direttamente il frontend tramite apache o nginx. Non hai bisogno di node.js

Ma se volessi mettere in produzione app basate su node?
Ho visto che fare il deploy su server remoto (apache o nginx) è possibile con proxy pass, e diversi tutorial consigliano di "demonizzare" node per renderlo sempre attivo. Ma nel caso di più app qual'è, secondo la vostra esperienza, il modo migliore per gestire il tutto? Creando un demone per ogni app che voglio pubblicare, questa cosa come incide sulle prestazioni di apache?

Dipende cosa hai a disposizione.

Noi in azienda, per esempio, dockerizziamo tutto e pubblichiamo tramite un load balancer (nginx) dentro kubernetes. Io, per roba personale, faccio una cosa simile: dockerizzo, pusho su un repo privato, deployo con ansible e ho traefik configirato per integrarsi con il daemon docker per "trovare" il pod.

In alternativa puoi sempre lanciare node.js anche più volte (su porte interne diverse) e puntare il reverse proxy (apache, nginx, traefik, quello che preferisci) in base al dominio.

In questo caso ti consiglio di usare qualcosa tipo nodemon che restarta node nel caso muoia. Di solito muore a causa di memory leak nel codice js o a causa di bug in qualche pacchetto npm che compila codice nativo.

Tieni conto che di default node.js usa un solo core, quindi in base a quello che vuoi fare potrebbe anche essere utile lanciare n istanze (n=numero di core) e avere un load balancer davanti anche su una sola macchina. :)

Bye.


Reply to: