Cómo instalar y usar múltiples versiones de .NET Core en Ubuntu

13 feb 2024 3 min di lettura
Cómo instalar y usar múltiples versiones de .NET Core en Ubuntu
Indice dei contenuti

Introducción

En el panorama de desarrollo moderno, la versatilidad y eficiencia en la entrega de aplicaciones son fundamentales. Esto es especialmente cierto cuando se trabaja con.NET Core, el marco multiplataforma de Microsoft, que ha experimentado una adopción significativa para crear una amplia gama de aplicaciones. Un escenario común implica ejecutar varias aplicaciones.NET Core en el mismo servidor. Esta guía proporciona una descripción general completa de cómo ejecutar varias aplicaciones.NET Core en paralelo en una única instancia de Ubuntu sin depender de Docker, y cubre todos los aspectos, desde la instalación hasta la configuración y la implementación.

Docker y la contenedorización ofrecen formas poderosas de aislar e implementar aplicaciones. Sin embargo, hay escenarios en los que es mejor ejecutar aplicaciones directamente en el sistema host, ya sea por simplicidad, conservación de recursos o requisitos de rendimiento específicos. Esta guía se centra en Ubuntu como sistema host, dada su popularidad y soporte dentro del ecosistema.NET Core.

Requisitos previos

  • Servidor Ubuntu (se recomienda 18.04 LTS o posterior)
  • Conocimientos básicos de la interfaz de línea de comandos.
  • Aplicaciones.NET Core destinadas a diferentes versiones (por ejemplo, 3.1 y 6.0)

Paso 1: Instale los SDK de.NET

.NET Core admite la instalación en paralelo de diferentes versiones de tiempo de ejecución, los SDK para las versiones específicas de.NET Core a las que se dirigen sus aplicaciones. Esto le permite desarrollar y ejecutar aplicaciones para esas versiones en su servidor Ubuntu.

Actualice el índice del paquete e instale los paquetes de requisitos previos para garantizar que su sistema pueda acceder al repositorio de paquetes de Microsoft:

wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install -y apt-transport-https
sudo apt update

Instale los SDK de.NET Core para las versiones requeridas por sus aplicaciones. Por ejemplo, para instalar los SDK de.NET Core 3.1,.NET 6 y.NET 8:

sudo apt install -y dotnet-sdk-3.1
sudo apt install -y dotnet-sdk-6.0
sudo apt install -y dotnet-sdk-8.0

Paso 2: configurar cada aplicación

Para ejecutar varias aplicaciones en el mismo servidor, debe asegurarse de que estén configuradas para escuchar en diferentes puertos para evitar conflictos de puertos.

En su primera aplicación, edite el archivo appsettings.json o appsettings.Production.json para especificar un puerto único:

{
 "Kestrel": {
 "Endpoints": {
 "Http": {
 "Url": "http://localhost:5001"
 }
 }
 }
 }

Para la segunda aplicación, cambie su configuración de manera similar para asegurarse de que esté escuchando en un puerto diferente, como 5001:

{
 "Kestrel": {
 "Endpoints": {
 "Http": {
 "Url": "http://localhost:5000"
 }
 }
 }
 }

Paso 3: ejecuta las aplicaciones

Navegue hasta el directorio de cada aplicación y use el comando dotnet run para iniciarlas, asegurándose de que se estén ejecutando en los puertos configurados.

dotnet run

Como alternativa, para entornos de producción o si prefiere no utilizar el comando dotnet run directamente, publique sus aplicaciones para crear una implementación independiente:

Publique aplicaciones con los siguientes comandos, adaptándolas a rutas de aplicación y tiempos de ejecución específicos:

dotnet publish -c Release -r ubuntu.20.04-x64 --output /path/to/YourApp

Ejecute aplicaciones publicadas directamente desde sus directorios de publicación.

Paso 4: usar un proxy inverso (opcional)

En un entorno de producción o para simplificar las configuraciones de red, puede optar por utilizar un proxy inverso como Nginx o Apache. Esta configuración permite enrutar el tráfico a la aplicación correcta según las rutas URL o los nombres de dominio, incluso si las aplicaciones escuchan en diferentes puertos localmente.

Paso 5: configurar los servicios del sistema (opcional)

Para asegurarse de que sus aplicaciones se ejecuten como servicios y se inicien automáticamente al iniciarse, puede crear archivos de servicio systemd para cada aplicación. A continuación se muestra un ejemplo de una aplicación.NET:

Cree un archivo de servicio en /etc/systemd/system/yourapp.service:

[Unit]
 Description=.NET Web Application

 [Service]
 WorkingDirectory=/path/to/app
 ExecStart=/usr/bin/dotnet /path/to/app/YourApp.dll
 Restart=always
 RestartSec=10
 SyslogIdentifier=dotnet-yourapp
 User=www-data
 Environment=ASPNETCORE_ENVIRONMENT=Production

 [Install]
 WantedBy=multi-user.target

Vuelva a cargar el servicio del demonio del sistema:

sudo systemctl daemon-reload

Habilite e inicie el servicio:

sudo systemctl enable yourapp.service
sudo systemctl start yourapp.service

Repita el proceso para cada aplicación, asegurándose de utilizar nombres de servicio únicos y rutas correctas.

Conclusión

Ejecutar varias aplicaciones.NET Core en paralelo en una única instancia de Ubuntu es un proceso simple que se puede lograr sin Docker ni contenedorización. Al administrar cuidadosamente las instalaciones del SDK, configurar los puertos de aplicaciones y, opcionalmente, configurar los servidores proxy inversos y los servicios del sistema, puede implementar y administrar de manera eficiente múltiples aplicaciones.NET Core. Este enfoque ofrece flexibilidad en las estrategias de desarrollo e implementación, satisfaciendo una variedad de escenarios y requisitos de rendimiento.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.