Sto utilizzando un server per ospitare più app web Node.js, che sono distribuite su più domini. La mia pratica corrente è di eseguire un server Express per ogni app su una porta diversa e di eseguire un server di base che instradi semplicemente (reindirizza) le richieste al server di porta/Express corretto. Funziona, ma significa che il mio server di base sta indirizzando ogni singola richiesta HTTP (e reindirizzandolo manualmente), e che i miei utenti vedono le mie app come ospitate su [hostname.com]: 8000.Come dovrei organizzare più server Express sullo stesso sistema?
Dopo un po 'di ricerche, ho scoperto che posso utilizzare http-proxy per le mie esigenze di routing, ma mi piacerebbe comunque sapere se esiste una procedura ottimale per l'esecuzione di più server Express sullo stesso sistema. Ecco come ho intenzione di farlo:
Ogni app Web avrà una propria cartella, con una struttura di cartelle Express completa (app.js, percorsi, viste, ecc.) Le app saranno raggruppate per dominio, quindi struttura di cartella di esempio potrebbe essere:
hostname.com/
app.js
routes/
views/
...
app1/
app1.js
routes/
views/
...
app2
...
hostname2.com/
app.js
routes/
views/
...
dovrò eseguire ciascuna app.js separatamente con nodo (o con forever, che sono attualmente in uso), e ognuno dovrà utilizzare una porta diversa internamente , con i reindirizzamenti cross-app puntati verso la porta dell'app target.
Quindi, questo è il mio piano attuale. Quali sono i problemi con esso e quali sono le insidie dovrei cercare di evitare? Ancora più importante, esiste una soluzione consolidata a questo problema: il problema di ospitare più app Web sullo stesso sistema con Node.js/Express?
EDIT: Ho intenzione utilizzare per eventualmente WebSockets e HTTPS, e la quantità di larghezza di banda in grado di supportare la mia configurazione è di poca importanza per me - questo è un server di sviluppo (almeno per ora). Grazie a David Ellis per aver sollevato il problema di WebSockets.
SECONDA EDIT: Grazie a EhevuTov e David Ellis per le loro risposte, entrambi hanno aiutato molto. Sto ancora sistemando su una struttura generale per la mia applicazione, e sembra che la domanda sia affrontata in dettaglio da this StackOverflow question
TERZO EDIT: Sono arrivato un modo da quando ho postato questa domanda (anche se ho molto più da partire). Dai un'occhiata a this file in my GitHub repository, che sfrutta ciò che ho imparato dalle risposte a questa domanda!
Grazie per il commento. Ho iniziato a usare vhost (con l'aiuto di alcuni utili utenti IRC in #express), e funziona come un fascino. Inoltre, grazie per l'heads up, la possibilità di passare a Node.Cluster. – Aaron
@aaron Sei il benvenuto. Ci vediamo su IRC, forse – EhevuTov
@'Aaron Hai del codice che potresti condividere per mostrarci come lo fai? – Matt