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 ~
Directorio de artículos
- prefacio
- 1. Preparación
- 2. Pasos de operación
-
- 1. Entorno operativo Linux configuration.net
- 2. Configuración de opciones de publicación de proyectos web del lado de Windows
- 3. Cargue archivos de publicación web desde Windows a LInux
- 4. Linux ejecuta proyectos web
- 5. Configure el proyecto web para que se inicie automáticamente al arrancar
-
- 5.1 supervisor de instalación
- 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
- 5.2.2 Ingrese /etc/supervisor/conf.d
- 5.2.3 Crear un nuevo archivo de configuración
- 5.2.4 Agregar elementos de configuración, como el arranque automático
- 5.2.5 supervisor de reinicio
- 5.2.6 Comprobar si el servicio de supervisión funciona con normalidad
- 5.3.5 Abra la interfaz visual de administración del sitio web para el supervisor (operación opcional)
- Resumir
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.
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:
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.
El comando para ver la arquitectura del sistema en ubuntu es el siguiente:
dpkg --print-architecture
El mío es amd64, elige x64.
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
1.2.2 Descomprimir el paquete de instalación
Cree una carpeta .dotnet en el directorio de inicio actual
mkdir -p .dotnet
Creado correctamente:
opción de carpeta, puede ver la carpeta .dotnet después de configurar la visualización de archivos ocultos:
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
La descompresión tuvo éxito.
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
Escriba [i] para insertar la siguiente declaración:
export DOTNET_ROOT=$(pwd)/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
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.
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.
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
La carga es exitosa:
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
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.
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
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
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,
5.2.4 Agregar elementos de configuración, como el arranque automático
Edite el archivo WowCrtAdvrts.conf
sudo vi WowCrtAdvrts.conf
i
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
guardar Solo salga.
La modificación está completa.
5.2.5 supervisor de reinicio
sudo service supervisor stop
sudo service supervisor start
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
Agregue los siguientes elementos de configuración
[inet_http_server]
port=127.0.0.1:8001
username=admin
password=123456
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 ~