Con la piattaforma cloud di Microsoft sono presenti molteplici modi per ospitare il proprio applicativo, soprattutto se statico, cioè formato da soli file HTML, immagini e fogli di stili. Tra le possibili alternative c'è quella di poter usare un service plan Linux, piuttosto economico e allo stesso tempo performante. Su di esso possiamo eseguire vari runtime o container, ma sicuramente la forma più semplice consiste nello sfruttare NodeJS, già disponibile sul servizio.
Quando creiamo un'istanza, infatti, possiamo selezionare il tipo di plan e anche il tipo di runtime.

Creato il servizio, però, il sito risponde con una pagina statica che troviamo nella cartella /home/site/wwwroot, ma non è sufficiente cambiarne il contenuto. Come documentato al seguente indirizzo https://docs.microsoft.com/en-us/azure/app-service/configure-language-nodejs?pivots=platform-linux#configure-nodejs-server il sistema cerca alcuni file specifici per avviare tramite NPM il server node.js. In alternativa troviamo già a disposizione PM2, un pacchetto che già dispone di un web server e fornisce le funzionalità necessarie per l'hosting. Tutto quello che dobbiamo fare è andare sul portale ed entrare nella configurazione dell'app service.

Nella sezione general settings, oltre al runtime, possiamo specificare il comando di avvio, nello specifico indicare a PM2 di iniziare l'hosting della cartella prima menzionata.
pm2 serve /home/site/wwwroot --no-daemon
L'opzione --no-daemon specifica di avviare il processo in modalità console affinché sia visibile il log e il processo venga controllato da app service stesso. Così facendo i nostri contenuti statici verranno serviti.
Qualora il nostro applicativo fosse una SPA, possiamo aggiungere l'opzione --spa al fine di restituire il file index.html indipendentemente dall'indirizzo specificato (ad eccezione dei file fisici presenti).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Scoprire le ottimizzazioni di Entity Framework Core in fase di scrittura di un solo record
Bloccare una pull request che arriva da branch non definiti in GitHub
Gestire tipi complessi in query string grazie a IParsable in ASP.NET Core 7.0
Mostrare una preview durante l'upload di un'immagine in Blazor
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Impostare il forward degli header in un sito ASP.NET Core dietro a un reverse proxy
3 metodi JavaScript che ogni applicazione web dovrebbe contenere - Parte 2
Utilizzare ChatGPT con Azure OpenAI
Ottimizzare serializzazione e deserializzaione tramite le options con System.Text.Json
Leggere la configurazione da Azure KeyVault con logica di retry in ASP.NET Core
Migrare un progetto ASP.NET Core da .NET 6 a .NET 7
Velocizzare l'installazione delle dipendenze in un workflow di GitHub
I più letti di oggi
- Rilasciata la versione 1.0 di ASP.NET MVC
- Abilitare HTTP/3 in ASP.NET Core 7.0
- Seconda preview per i Dynamic Data Control 4.0
- Ecco la roadmap di ASP.NET 5: il rilascio definitivo nel corso del primo trimestre 2016
- Rilasciato il Service Pack 3 di SQL Server 2005
- Rilasciata la versione 1.0 di ASP.NET Core
- Questionario sulla qualità di VS 2005
- Disponibile il SP1 di SQL Server 2008