Implementar el proyecto web .Net Core en Linux

Este artículo registra principalmente mi registro de operaciones de implementación de .net core en Linux (Ubuntu), que también es conveniente para futuras implementaciones.
Es un gran honor ser de ayuda para usted ~


prefacio

Este artículo presenta principalmente cómo implementar la aplicación web dotnet core desarrollada en Windows en un servidor Linux (Ubuntu 22.04).

La versión de software que estoy usando es la siguiente:

  • Versión del sistema operativo: Ubuntu 22.04
  • versión del proyecto web: .net 6.0

El sitio web que implementé en el lado de Windows es el siguiente. Puerto: 5001. El objetivo de este artículo es implementarlo en Ubuntu.
inserte la descripción de la imagen aquí


1. Preparación

1. Información de la versión

  • Versión del sistema operativo: Ubuntu 22.04
  • versión del proyecto web: .net 6.0

2. Proyecto web del lado de Windows

2. Pasos de operación

1. Entorno operativo Linux configuration.net

Como todos sabemos, el funcionamiento de todos los proyectos .net requiere un entorno de tiempo de ejecución .net.
Hay dos tipos de entornos operativos .net: sdk y runtime (tiempo de ejecución).

  • sdk: sdk contiene tiempo de ejecución y puede proporcionar a los desarrolladores de .net un entorno de ejecución, compilación y empaquetado para proyectos de .net.
  • tiempo de ejecución: el tiempo de ejecución es un subconjunto de sdk, que solo puede hacer que los programas .net se ejecuten en el sistema operativo.

Si no necesita desarrollar .net en Linux, solo puede instalar el tiempo de ejecución. Principalmente demostraré la instalación del sdk aquí.

Documentación de referencia oficial de Microsoft:
Instalación de .NET SDK o .NET Runtime en Ubuntu Instalación de .NET
en Linux usando el script de instalación o extrayendo los archivos binarios

1.1 Ver la ruta de descarga del último entorno operativo .net

Vaya a la dirección de descarga oficial de .net y el contenido de la página se abre como se muestra en la figura a continuación:
inserte la descripción de la imagen aquí
Seleccionamos .NET 6.0 en la figura de arriba, ingresamos a la página en la figura de abajo y seleccionamos la dirección SDK adecuada para nuestro sistema operativo arquitectura.
inserte la descripción de la imagen aquí

El comando para ver la arquitectura del sistema en ubuntu es el siguiente:

dpkg --print-architecture

inserte la descripción de la imagen aquí
El mío es amd64, elige x64.
inserte la descripción de la imagen aquí

Haga clic en el botón [copiar] para copiar la dirección de descarga:
https://download.visualstudio.microsoft.com/download/pr/868b2f38-62ca-4fd8-93ea-e640cf4d2c5b/1e615b6044c0cf99806b8f6e19c97e03/dotnet-sdk-6.0.407-linux- x64.tar.gz

1.2 Instalar dotnet SDK

1.2.1 Descargar el paquete de instalación

Usamos el comando wget para descargar el paquete de instalación de tiempo de ejecución copiado

wget https://download.visualstudio.microsoft.com/download/pr/868b2f38-62ca-4fd8-93ea-e640cf4d2c5b/1e615b6044c0cf99806b8f6e19c97e03/dotnet-sdk-6.0.407-linux-x64.tar.gz

inserte la descripción de la imagen aquí

1.2.2 Descomprimir el paquete de instalación

Cree una carpeta .dotnet en el directorio de inicio actual

mkdir -p .dotnet

inserte la descripción de la imagen aquí
Creado correctamente:
opción de carpeta, puede ver la carpeta .dotnet después de configurar la visualización de archivos ocultos:
inserte la descripción de la imagen aquí
descomprima los archivos en el paquete de instalación en la carpeta .dotnet

tar -zxvf dotnet-sdk-6.0.407-linux-x64.tar.gz -C .dotnet

inserte la descripción de la imagen aquí
La descompresión tuvo éxito.
inserte la descripción de la imagen aquí

1.2.3 Configuración de variables de entorno

Para que las variables de entorno sean válidas para todos los usuarios, debe modificar el archivo de perfil:

sudo vim /etc/profile 

inserte la descripción de la imagen aquí
Escriba [i] para insertar la siguiente declaración:

export DOTNET_ROOT=$(pwd)/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

inserte la descripción de la imagen aquí
Escriba [Esc] nuevamente para salir del modo de edición.
Escriba [:wq] para guardar y salir de Vim.
Cierre la sesión o reinicie para que surta efecto.

1.3 Verificación

Después de reiniciar, verifique la información de dotnet a través del comando dotnet --info.
inserte la descripción de la imagen aquí
La configuración está completa.

SDK instalado con éxito.

2. Configuración de opciones de publicación de proyectos web del lado de Windows

La opción de publicación del proyecto web en Visual Studio debe cambiar TargetRuntime a la versión de Linux y elegir la versión de arquitectura de Linux que más le convenga.Ya hemos hablado sobre cómo ver su propia arquitectura de Linux en el artículo anterior. Para mi amd64, elija x64.
inserte la descripción de la imagen aquí
Modo de implementación:

  • Autocontenido (aplicación independiente) viene con dotnet runtime, que se puede implementar en un servidor de entorno en blanco, sin necesidad de instalar y configurar dotnet runtime por adelantado. La desventaja es: el paquete de implementación es más grande.
  • Framework-dependent (dependiente del marco) genera un paquete de implementación multiplataforma y el usuario debe instalar la versión correspondiente del tiempo de ejecución en Linux.

He instalado el SDK de .net 6.0 antes, incluido el tiempo de ejecución, así que aquí elijo Dependiente del marco.

3. Cargue archivos de publicación web desde Windows a LInux

Una vez que la configuración se haya realizado correctamente, seleccione Publicar para publicar la aplicación web en una carpeta.
Después de que el lanzamiento sea exitoso, use ftp para cargar el archivo de lanzamiento web desde Windows a Linux.
PD: Mi proyecto de publicación web en Linux es: /home/qyh/workspace/WebPublishFolder/WowCrtAdvrts
inserte la descripción de la imagen aquí

La carga es exitosa:
inserte la descripción de la imagen aquí
la entrada del programa en la imagen de arriba es: Jcjy.Web (el nombre de su proyecto web)

4. Linux ejecuta proyectos web

La consola ingresa la ruta del proyecto web .net:

cd ~/workspace/WebPublishFolder/WowCrtAdvrts

inserte la descripción de la imagen aquí
Ejecute el proyecto web:

dotnet Jcjy.Web.dll

Ingrese el número de ip+port en el navegador, como se muestra en la figura a continuación. El despliegue fue exitoso.
inserte la descripción de la imagen aquí
Hasta el momento, se ha finalizado la implementación de .Net Core Web en Linux. A continuación, hablaré principalmente sobre cómo usar Nginx como proxy inverso.

5. Configure el proyecto web para que se inicie automáticamente al arrancar

Supervisor es un programa de gestión de procesos de propósito general desarrollado por Python. Puede convertir procesos ordinarios de línea de comandos en procesos de demonio en segundo plano, monitorear el estado del proceso y reiniciar automáticamente cuando el proceso finaliza de manera anormal.

5.1 supervisor de instalación

sudo apt-get install supervisor

inserte la descripción de la imagen aquí
Como se muestra en la figura, la instalación está completa.

5.2 Agregar información de configuración para el proyecto web .net en supervisor

5.2.1 Crear la carpeta de salida de registro del proyecto web .net

Primero vamos a crear la carpeta de salida del registro del proyecto web, aquí voy a poner el registro en este directorio: /var/log/web/dotnet/

sudo mkdir -p /var/log/web/dotnet

5.2.2 Ingrese /etc/supervisor/conf.d

Después de instalar el supervisor, habrá una carpeta de supervisor en /etc/, y conf.d es la carpeta donde se almacena el archivo de configuración del supervisor.

cd /etc/supervisor/conf.d

inserte la descripción de la imagen aquí

5.2.3 Crear un nuevo archivo de configuración

Creamos archivos de configuración para proyectos web .net:

sudo touch WowCrtAdvrts.conf

Aquí [WowCrtAdvrts] es el nombre de su proyecto web,

inserte la descripción de la imagen aquí

5.2.4 Agregar elementos de configuración, como el arranque automático

Edite el archivo WowCrtAdvrts.conf

sudo vi WowCrtAdvrts.conf
i

inserte la descripción de la imagen aquí
Introduzca los elementos de configuración:

[program:WowCrtAdvrts]
command=dotnet Jcjy.Web.dll
directory=/home/qyh/workspace/WebPublishFolder/WowCrtAdvrts/
environment=ASPNETCORE__ENVIRONMENT=Production 
user=root  
stopsignal=INT
autostart=true 
autorestart=true 
startsecs=1 
stderr_logfile=/var/log/web/dotnet/WowCrtAdvrts.err.log 
stdout_logfile=/var/log/web/dotnet/WowCrtAdvrts.out.log 

directory es el directorio donde se encuentra nuestro proyecto web .net core,
stderr_logfile es la ruta donde se encuentra el registro de errores y stdout_logfile es la ruta donde se encuentra el registro de salida, que coloqué en /var/log/web/dotnet/ ; luego ingrese ESC->:wq para
inserte la descripción de la imagen aquí
guardar Solo salga.
inserte la descripción de la imagen aquí
La modificación está completa.

5.2.5 supervisor de reinicio

sudo service supervisor stop 
sudo service supervisor start

inserte la descripción de la imagen aquí

5.2.6 Comprobar si el servicio de supervisión funciona con normalidad

sudo supervisorctl

5.3.5 Abra la interfaz visual de administración del sitio web para el supervisor (operación opcional)

El supervisor viene con una interfaz de gestión visual, que se puede abrir después de realizar alguna configuración.
En el directorio /etc/supervisor, abra el archivo supervisor.conf

cd /etc/supervisor
sudo vi supervisor.conf
i

inserte la descripción de la imagen aquí

Agregue los siguientes elementos de configuración

[inet_http_server]    
port=127.0.0.1:8001     
username=admin
password=123456

inserte la descripción de la imagen aquí

guardar los cambios y salir

ESC
:wq

supervisor de reinicio

sudo service supervisor stop 
sudo service supervisor start

Resumir

De lo anterior es de lo que hablaré hoy, en términos generales sigue siendo muy simple, pero todavía me encontré con algunos escollos al referirme a los tutoriales en línea durante operaciones específicas. Es un gran honor si este artículo es útil para usted ~

Supongo que te gusta

Origin blog.csdn.net/guigenyi/article/details/129869230
Recomendado
Clasificación