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

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



Ciao Alessandro, 
grazie per i suggerimenti, mi saranno di molto aiuto, almeno ho le idee un po' più chiare e so da dove partire!

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
In effetti oggi ho fatto qualche test e, facendo un po' di attenzione sulla configurazione iniziale, ho visto che è possibile (ottimo il comando "build --prod" di angular, ad esempio) 

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.

Concentrato sui vari framework e su come farli girare su web server avevo completamente dimenticato Docker!!!!
Ansible l'ho usato qualche volta per il deploy e per la gestione delle repliche di postgresql, non avevo pensato di usarlo anche per "automatizzare" le operazioni di github!
Kubernetes è nella lista delle robe che volevo imparare ad usare ... mi sa che è arrivato il momento! Consigli su come affrontarlo? 😁

ti consiglio di usare qualcosa tipo nodemon che restarta node nel caso muoia
Certo, pensavo di usare "Forever" [0], mi sembra buono...no?

Grazie ancora per i consigli e buona giornata

-beppe-

[0] https://expressjs.com/it/advanced/pm.html#forever

Il giorno ven 24 mag 2019 alle ore 12:06 Alessandro Pellizzari <shuriken@amiran.it> ha scritto:
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.



--
Giuseppe Naponiello

Arc-Team srl
piazza Navarrino, 13 - 38023Cles (TN) 
C.F. e P. IVA IT-01941600221 
cell.
 +393476846599
mail: beppenapo@arc-team.com
pec: arc-team@pec.it

Reply to: