Cómo implementar aplicaciones .NET Core en servidores Linux

26 feb 2024 4 min di lettura
Cómo implementar aplicaciones .NET Core en servidores Linux
Indice dei contenuti

Introducción

La implementación de aplicaciones.NET Core en servidores Linux marca un cambio significativo con respecto a las plataformas de implementación tradicionales centradas en Microsoft. La naturaleza multiplataforma de.NET Core permite a los desarrolladores aprovechar el rendimiento, la confiabilidad y la seguridad de los entornos Linux. Esta guía proporciona una descripción general completa de la implementación de aplicaciones.NET Core en varias distribuciones de Linux, centrándose en el uso de Nginx o Apache como proxy inverso y protegiendo las distribuciones con SSL.

Requisitos previos

Antes de sumergirse en el proceso de implementación, asegúrese de tener:

  • Una aplicación.NET Core lista para su implementación.
  • Un servidor Linux (Ubuntu, CentOS o cualquier distribución de tu elección).
  • Conocimientos básicos de la línea de comandos de Linux.

Paso 1: prepare su servidor Linux

Primero, actualice el administrador de paquetes de su servidor. Instale el tiempo de ejecución o SDK de.NET Core en su servidor, según sus necesidades específicas. El SDK es necesario para fines de desarrollo, mientras que el tiempo de ejecución es suficiente para ejecutar aplicaciones.

Para distribuciones basadas en Debian como Ubuntu, utilice:

sudo dnf update
sudo apt install dotnet-runtime-6.0

Para distribuciones basadas en Red Hat como CentOS, utilice:

sudo apt update
sudo dnf install dotnet-runtime-6.0

Paso 2: publicar la aplicación.NET en la computadora del desarrollador

Publicar una aplicación.NET para producción es un paso crucial que implica preparar la aplicación para su implementación, incluida la compilación, optimización y empaquetado. Para publicar una aplicación.NET para producción, la CLI de.NET proporciona un comando simple y potente:

dotnet publish -c Release -o./publish

Este comando compila la aplicación en modo de lanzamiento, lo que permite realizar optimizaciones para mejorar el rendimiento y reducir el tamaño de la aplicación. El argumento -o./publish especifica el directorio de salida donde se almacenará la aplicación publicada. Garantiza que se incluyan todos los componentes, bibliotecas y dependencias de tiempo de ejecución necesarios, lo que hace que la aplicación esté lista para su implementación en cualquier plataforma o entorno de alojamiento compatible.

Paso 3: transferir el código publicado al servidor de producción

Este proceso implica copiar de forma segura los archivos de la aplicación al entorno de producción. Un comando muy utilizado para este fin es scp (copia segura), que utiliza SSH para la transferencia de datos, garantizando seguridad y confiabilidad. El siguiente comando ilustra cómo transferir la aplicación publicada desde un directorio local a un servidor remoto:

scp -r./publish username@your_production_server:/path/to/destination

Este comando copia recursivamente todo el contenido del directorio./publish (donde se publicó la aplicación.NET) en la ruta especificada en el servidor de producción. Reemplace nombre de usuario, su_servidor_de_producción y /ruta/a/destino con el nombre de usuario SSH, el nombre de host o la dirección IP de su servidor real y la ruta donde desea que resida la aplicación, respectivamente.

Paso 4: ejecute la aplicación.NET

Navegue hasta el directorio de la aplicación y ejecute la aplicación con el siguiente comando:

dotnet MyApplication.dll

Este comando inicia la aplicación en el puerto predeterminado, normalmente 5000 para el servidor Kestrel.

Paso 5: configurar un proxy inverso con Nginx o Apache

Un proxy inverso se encuentra frente a su aplicación, maneja las solicitudes HTTP entrantes y las reenvía a la aplicación. Esta configuración aumenta la seguridad, permite el equilibrio de carga y ofrece contenido estático de manera eficiente.

Usando Nginx

Instalar Nginx:

sudo apt install nginx

Configure Nginx creando un nuevo archivo de configuración para su aplicación en /etc/nginx/sites-available/myapp y vincúlelo a sitios habilitados.


server {
 listen 80;
 server_name example.com;

 location /{
 proxy_pass http://localhost:5000;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection keep-alive;
 proxy_set_header Host $host;
 proxy_cache_bypass $http_upgrade;
 }
 }

Habilite la configuración y reinicie Nginx:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Usando apache

Instalar Apache:

sudo apt install apache2

Habilite los módulos proxy y proxy_http:

sudo a2enmod proxy proxy_http

Cree un nuevo archivo de configuración para su aplicación en /etc/apache2/sites-available/myapp.conf con el siguiente contenido:

<VirtualHost *:80>
 ServerName example.com

 ProxyPreserveHost On
 ProxyPass /http://localhost:5000/ProxyPassReverse /http://localhost:5000/</VirtualHost>

Habilite el sitio y reinicie Apache:

sudo a2ensite myapp.conf
sudo systemctl restart apache2

Paso 6: Asegure la aplicación con Let's Encrypt SSL

Proteger su aplicación con SSL es fundamental para proteger los datos confidenciales. Let's Encrypt ofrece certificados SSL gratuitos. Certbot es una herramienta popular para obtener y renovar certificados Let's Encrypt.

Para Nginx

Instale Certbot y el complemento Nginx:

sudo apt-get install certbot python3-certbot-nginx

Obtenga e instale un certificado:

sudo certbot --nginx -d example.com

Para Apache

Instale Certbot y el complemento Apache:

sudo apt-get install certbot python3-certbot-apache

Obtenga e instale un certificado:

sudo certbot --apache -d example.com

Mejores prácticas

  • Mantenga su servidor y aplicación actualizados para mitigar las vulnerabilidades.
  • Utilice variables de entorno para la configuración de la aplicación, especialmente datos confidenciales.
  • Implemente el registro y la supervisión para detectar y resolver problemas rápidamente.
  • Considere la posibilidad de utilizar una canalización de CI/CD para pruebas e implementación automatizadas.
  • Haga una copia de seguridad de su aplicación y base de datos con regularidad.

Conclusión

La implementación de aplicaciones.NET Core en servidores Linux abre un mundo de posibilidades para los desarrolladores acostumbrados a los entornos Windows. Si sigue esta guía, podrá aprovechar el poder de Linux para alojar aplicaciones.NET Core sólidas, seguras y escalables.

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.