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
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.
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
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 你的项目名.dll
para 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 dotnet
encontrar 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.