Documente Academic
Documente Profesional
Documente Cultură
In particolare viene descritto come installare un’applicazione ASP.NET Core esistente dietro un reverse –
proxy server e come impostare tale server in modo che inoltri le richieste al web server Kestrel
dell’applicazione.
Inoltre viene spiegato come assicurare l’avvio dell’applicazione, come servizio (daemon), allo startup e
configurare uno strumento di gestione del processo utile al riavvio dell’applicazione in caso di crash in
modo da garantirne l’alta disponibilità (high availability).
Prerequisiti
1. Accesso ad un server CentOS con utente standard con privilegi sudo
2. Framework .NET installato sul server CentOS
3. Un’applicazione ASP.NET Core esistente
Copia dell’applicazione
Lanciare il comando dotnet publish dall’ambiente di sviluppo per pubblicare l’applicazione in una
directory di cui si possa poi fare il deploy su server.
Prima di procedere copiare l’applicazione ASP.NET Core sul server. Provare ad avviare l’applicazione e
navigare all’indirizzo http://<indirizzo-server>:<porta> con il browser per verificare se
l’applicazione funziona correttamente in ambiente Linux.
La procedura qui descritta utilizza una singola istanza di Nginx installata sulla stessa macchina dov’è
installato il server http.
Installazione di Nginx
Il processo di installazione di Nginx dovrebbe terminare con la creazione (automatica) di uno script di
inizializzazione che avvii Nginx come daemon allo startup del sistema.
Configurazione di Nginx
A questo punto è necessario creare un file di configurazione per Nginx che inoltri tutto il traffico in entrata
sulla porta 80 del server alla porta 5000 (default) sulla quale è in ascolto l’applicazione web.
Monitoraggio dell’applicazione
Nginx è ora impostato per inoltrare le richieste, fatte all’indirizzo http://localhost:80, all’applicazione
ASP.NET Core avviata su Kestrel all’indirizzo http://127.0.0.1:5000.
[Service]
WorkingDirectory=/var/aspnetcore/hellomvc
ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll
Restart=always
RestartSec=10 #Riavvia il servizio dopo 10 sec se dotnet va in crash
SyslogIdentifier=dotnet-example
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
Dopo aver salvato il file nella cartella /etc/systemd/system/ è necessario abilitare il servizio con il
comando systemctl enable nomefile.service ed avviarlo con il comando systemctl start
nomefile.service.
Per verificare che il servizio è attivo è possibile lanciare il comando systemctl status
nomefile.service.
Con il reverse – proxy configurato e Kestrel gestito attraverso systemd, l’applicazione web è
completamente configurata e raggiungibile da un browser sulla macchina locale all’indirizzo
http://localhost.