Cómo implementar proyecto ASP.NET Core Linux

contorno

Este artículo documenta cómo construir .Net ambiente Core para servidor Linux y proyecto de sitio web ASP.NET Core desplegado en el servidor, y utilizar Nginx como un servidor proxy inverso, con el proceso de Supervisor para lograr la gestión del proyecto.
fuente original: Cómo implementar proyecto ASP.NET Core Linux

Aquí Insertar imagen Descripción


En primer lugar, la configuración del proyecto y la liberación

1. La configuración del proyecto (opcional)

ASP.Net Core puerto de escucha predeterminado proyecto de 5000, el puerto si se produce la ocupación, este paso se puede definir desde el puerto.

1.1 archivos de configuración

Nueva hosting.json archivo de configuración en el directorio raíz del proyecto, donde 8080 es el ejemplo número de puerto personalizado:

{
  "server.urls": "http://*:8080"
}

1.2 Modificar Program.cs

public static void Main(string[] args)
        {
            //CreateHostBuilder(args).Build().Run();
            var config = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("hosting.json", optional: true)
                .Build();
            WebHost.CreateDefaultBuilder(args)
                .UseConfiguration(config)
                .UseStartup<Startup>()
                .Build()
                .Run();
        }

2. Proyecto de prensa

Justo en el Explorador de soluciones a su proyecto, seleccione la publicación , utilice el modo de carpetas para publicar, encontrar la liberación de construcción publicar carpeta, los contenidos cargados en el proyecto correspondiente en el directorio vacío del servidor en los Xftp o de otra manera.

Aquí Insertar imagen Descripción

En segundo lugar, la acumulación entorno .NET Core

1. Registrar la clave de firma Microsoft

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

2. Instalar el SDK .Net

#验证 yum
sudo yum update
#安装 .Net Core
sudo yum install dotnet-sdk-3.1 -y

3. Verificar la instalación

dotnet --version

Aquí Insertar imagen Descripción

Tres, Nginx de instalación y configuración

nginx proxy inverso a hacer, nginx puerto de monitor 80, cuando la solicitud de URL para acceder al servidor a través del puerto 80, que será remitido a un proyecto de puerto personalizado junto con el nombre de dominio correspondiente visitada por nginx.

1. Instalar Nginx

Haga clic en el enlace EPEL-release-7-12.noarch.rpm descarga directa,

O en su propio movimiento https://dl.fedoraproject.org/pub/epel descargar la versión EPEL necesidad y cargado en el servidor, con el fin de completar la instalación con el siguiente comando en el directorio en el paquete rpm EPEL:

# 安装epel
rpm -ivh epel-release-7-9.noarch.rpm
# 安装nginx
yum install nginx
# 启动nginx
systemctl start nginx

Utilice el siguiente comando para Nginx prueba está funcionando correctamente:

curl http://127.0.0.1

2. Configurar Nginx

Nginx ubicación predeterminada archivo de configuración es /etc/nginx/nginx.conf, completar la configuración de acuerdo a sus necesidades, lo que sigue es mi referencia de configuración:

server {
        listen       80;
        server_name  此处为你的域名;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            proxy_pass http://localhost:此处为你的项目监听端口;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

Después de la configuración a cargar el archivo de configuración:

nginx -s reload

Nginx está habilitada en el inicio:

systemctl enable nginx service

En cuarto lugar, poner en marcha el sitio web

En este punto, ya se puede empezar a sitio y acceso desde fuera de la red. En el modo de puesta en marcha, se puede ventana de sesión Xshell, dado a conocer antes de entrar en el directorio del proyecto en el servidor, el comando dotnet 你的项目名.dllpara iniciar el sitio, pero siempre y cuando Ctrl + C o desconectar sesiones, proceso del proyecto había terminado, por lo que puede utilizar hacer prueba temporal. Para hacer que el sitio continuó corriendo hacia abajo, puede utilizar uno de dos métodos.

nohup empezar

nohup dotnet 你的项目名.dll

Como correr hasta su sitio, y el proceso no se desconectará la sesión se cerró, sin necesidad de configuración es sencilla y tiene la ventaja, pero si desea cerrar problemas, es necesario ps -ef | grep dotnetencontrar el identificador de proceso correspondiente y luego se matar. Otra desventaja es que, si se reinicia el servidor o el error de proyecto inesperadamente, a continuación, su proyecto no se reinicia automáticamente. Así que si usted importa, se recomienda que los métodos siguientes.

Supervisor Guardián

Microsoft recomienda supervisor es una herramienta de gestión de procesos que permite especificar el programa se ejecuta en segundo plano y se reiniciará automáticamente cuando el proceso es la salida anormal.

supervisor de la instalación

yum install python-setuptools
easy_install supervisor

supervisor de configuración

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
mkdir /etc/supervisor/conf.d
  • final del archivo Modificar supervisor.conf incluyen los siguientes:
;[include]
;files = conf.d/*.conf
  • Crear perfiles de proyectos en el catálogo /etc/supervisor/conf.d:vim /etc/supervisor/conf.d/你的项目名.conf
[program:你的项目名]
command=dotnet 你的项目名.dll 
directory=你的项目目录
autorestart=true
stderr_logfile=/var/log/你的项目名.err.log
stdout_logfile=/var/log/你的项目名.out.log 
environment=ASPNETCORE_ENVIRONMENT=Production 
user=root
stopsignal=INT
  • archivo de configuración inicial:
supervisord -c /etc/supervisor/supervisord.conf

Funciones conexas

  • Volver a cargar el archivo de configuración

    supervisorctl reload
    
  • Ver el guardián del estado de todos los procesos

    supervisorctl status all
    
  • Cierre todos los demonios

    supervisorctl stop all
    

Hasta ahora, el despliegue proyecto ASP.NET Core es completa.

Publicado 26 artículos originales · ganado elogios 24 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/iSunwish/article/details/105162027
Recomendado
Clasificación