La aplicación principal de WTM asp.net se implementa en Ubuntu y CentOS

wtm se implementa en Ubuntu y CentOS

Lanzamiento del proyecto

Haga clic con el botón derecho en el proyecto web en Visual Studio y seleccione Publicar, como se muestra a continuación:

Ubuntu instalar .net core runtime

Uso la máquina virtual Vmware para Ubuntu. La versión es la 18.04.
Consulte la documentación oficial. Si desea desarrollar aplicaciones .NET Core, instale el SDK (incluido el tiempo de ejecución). O, si solo necesita ejecutar la aplicación, instale el tiempo de ejecución. Si desea instalar este tiempo de ejecución, se recomienda instalar el tiempo de ejecución de ASP.NET Core porque incluye el tiempo de ejecución de .NET Core y ASP.NET Core.
.net core sdk

Ubuntu no habilita la raíz de forma predeterminada, los usuarios comunes cambian de raíz, puede usar el comando:

sudo su -

Una vez completada la instalación, ingrese el comando : dotnet --version, puede ver la versión.

Instalación de paneles de pagoda

El panel de pagoda se instala para instalar la base de datos nginx y mysql, y configurar la ruta del sitio web al mismo tiempo. Después de mucho tiempo, sigue siendo muy bueno.
La instalación del panel de pagoda es muy simple, un comando de línea para resolver el problema, referencia de instalación:
instalación del panel de pagoda

Instalar nginx y mysql

Ingrese el comando bt default, puede ver la dirección para acceder al panel de pagoda.
Instale la base de datos nginx y mysql en la tienda de software.
Ver la dirección para acceder al panel de pagoda

Instalar nginx y mysql

Cree un sitio web y una base de datos en el panel de pagoda

Cree un sitio puramente estático en la interfaz del sitio web.
Sitio estático

Configuración del sitio web

Configure la información del sitio web en la configuración del sitio web, ya que desea configurar Nginx como proxy inverso para reenviar la solicitud a la aplicación ASP.NET Core, aquí configure el proxy inverso de acuerdo con el método del sitio web oficial de Microsoft:

server
{
    listen 80;
    server_name 192.168.186.133;
    index index.html index.htm default.htm default.html;
    root /www/wwwroot/leaveapp;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/leaveapp.com.conf;
    #REWRITE-END
    #反向代理配置
    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;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
    #下边者两个很重要,不配置的化,图片和css文件无法访问
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
           proxy_pass http://localhost:5000;
        }

    location ~ .*\.(js|css)?$
    {
        proxy_pass http://localhost:5000;
    }
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }
    access_log  /www/wwwlogs/leaveapp.com.log;
    error_log  /www/wwwlogs/leaveapp.com.error.log;
}

Referencia: implementación de asp.net core linux nginx

Copie el archivo publicado en el directorio del sitio web

Al crear un sitio web, la pagoda creará un directorio de red. Bajo el directorio / www / wwwroot, aquí se crea un directorio leaveapp, y el contenido de la carpeta de publicación del archivo publicado se copiará en el directorio leaveapp. Puede cargar los archivos comprimidos directamente en el directorio leaveapp a través del panel de pagoda, o puede copiarlos en el escritorio de la máquina virtual copiando y pegando, y luego pasar al directorio leaveapp. Descomprímalo y, finalmente, copie el contenido de la carpeta de publicación en el directorio leaveapp. Una vez completada la copia, configure los permisos:

chattr -i .user.ini //如果不删除这个文件,无法配置权限
chmod -R 755 leaveapp //配置权限
chown -R www:www leaveapp//更改所有者
vim appsettings.json //修改数据库链接,第三步已经创建好的。

Problema de System.Drawing.Common

Como se utiliza el código de verificación, antes del lanzamiento, consulte el paquete Nuget System.Drawing.Common en el proyecto web e instale libgdiplus en ubuntu.

 sudo apt-get -f install libgdiplus

Ejecute el proyecto en Ubuntu

cd /www/wwwroot/leaveapp
dotnet leaverecordapp.dll

Una vez que se inicia el proyecto, se puede acceder a él en las redes internas y externas.

Configurar el demonio

Ejecute el proyecto anterior, tan pronto como se cierre el terminal de comando, el programa deja de ejecutarse. El documento oficial de Microsoft configura el servicio, de acuerdo con el documento oficial, crea el servicio kestrel-helloapp.service.

[Unit]
Description=Leave Record App

[Service]
WorkingDirectory=/www/wwwroot/leaveapp
ExecStart=/usr/bin/dotnet /www/wwwroot/leaveapp/LeaveRecordApp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=leaverecordapp
User=www
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl enable kestrel-helloapp.service
启动服务:
sudo systemctl start kestrel-helloapp.service
查看服务状态:
sudo systemctl status kestrel-helloapp.service
查看服务运行日志:
sudo journalctl -fu kestrel-helloapp.service

En este momento, el sitio web puede funcionar normalmente.

Por la tarde, intenté implementar WTM en el servidor CentOS en mi propio servidor. Tampoco es un problema. Enumere algunas direcciones de referencia:

Centos System.Drawing resuelve el problema del código de verificación

Cambie el puerto de asp.net core en CentOS. El puerto predeterminado de asp.net core es 5000. Como ya hay un sitio web de asp.net core en el servidor, el puerto está ocupado y el puerto debe cambiarse. La forma más fácil es agregar dos líneas en appsettings.json Configuración:

"urls": "http://localhost:6000;http://localhost:6001",
  "server.urls": "http://localhost:6000;http://localhost:6001",

La razón puede referirse a este artículo:
puerto de cambio de núcleo asp.net

wtm sigue siendo excelente, y no es problema completar una pequeña solicitud en un día o dos.

177 artículos originales publicados · 61 alabanzas · 170,000 vistas

Supongo que te gusta

Origin blog.csdn.net/xingkongtianyuzhao/article/details/105500099
Recomendado
Clasificación