Want to create interactive content? It’s easy in Genially!
SIMPLE PRESENTATION
Jahir Marcos José CARLOS PAVÓN
Created on August 31, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Smart Presentation
View
Practical Presentation
View
Essential Presentation
View
Akihabara Presentation
View
Pastel Color Presentation
View
Winter Presentation
View
Hanukkah Presentation
Transcript
Kestrel el servidor web para ASP.NET Core
¿Qué es Kestrel?
El Kestrel es un servidor HTTP basado en E/S asíncrona, multiplataforma, de código abierto y basado en eventos. Está desarrollado para alojar aplicaciones ASP.NET Core en cualquier plataforma.
- Kestrel es compatible con todas las plataformas y versiones compatibles con .NET Core.
- Está basado en libuv
- Kestel es una biblioteca de código abierto y está disponible en GitHub
¿Por qué el Servidor Kestrel?
- Las aplicaciones ASP.NET más antiguas están estrechamente vinculadas a Internet Information Services o IIS.
- El IIS es un servidor web completo con todas las funciones que necesitas de un servidor web
- ASP.NET, al estar estrechamente acoplado con IIS, lleva con arrastrando la carga de IIS
- Las aplicaciones ASP.NET Core recién diseñadas ahora están completamente desvinculadas de IIS. Este desacoplamiento hace que ASP.NET Core se ejecute en cualquier plataforma, lo que lo hace verdaderamente multiplataforma.
Usando el servidor Kestrel
- Kestrel se ejecuta en el proceso (In-Process) en las aplicaciones ASP.NET Core.
- El servidor web Kestrel está disponible en el espacio de nombres Microsoft.AspNetCore.Server.Kestrel
- La clase Program contiene una función principal vacía estática, que es el punto de entrada a nuestra aplicación.
En el siguiente Program.cs generado por la plantilla, el método WebApplication.CreateBuilder llama a UseKestrel internamente:
sar el Servidor Kestrel en ASP.NET Core 5 y anteriores
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.Run();
Para .NET Core 5 y anteriores la clase de Program contiene una función principal vacía estática, que es el punto de entrada a nuestra aplicación.
El método Main invoca a CreateDefaultBuilder, que es responsable de crear el host de la aplicación web. CreateDefaultBuilder es un método auxiliar. Llama al método UseKestrel para registrar el Kestrel como el servidor que se utilizará para alojar nuestra aplicación.
el Servidor Kestrel en ASP.NET Core 6
Las plantillas de proyecto de ASP.NET Core usan Kestrel de forma predeterminada cuando no están alojadas con IIS.
Hay dos formas de usar el Kestel:
- Por sí mismo (Alojamiento propio)
- Detrás de otro servidor web
Autohospedaje (Sef Hosting)
En el modelo Sef Hosting, las aplicaciones ASP.NET Core escuchan directamente las solicitudes HTTP de Internet,
El diagrama muestra cómo se utiliza el servidor web Kestrel para autohospedar una aplicación ASP.NET Core
El siguiente código muestra cómo usar el comando dotnet run cli para iniciar el servidor web Kestrel. Para ejecutar, todo lo que necesitas hacer es ir a la carpeta del proyecto, donde se encuentra el archivo .csproj y ejecutar el siguiente comando.
dotnet run
El Kestrel se inicia y escucha en el puerto 7120/5120.
Otra forma es ir a la carpeta publicada y ejecutar el siguiente comando, que activará el servidor Kestrel.
El Kestrel se inicia y escucha en el puerto 5000/5001.
Detrás de otro servidor web
- Kestrel no es un servidor web con todas las funciones.
- Se recomienda ejecutarlo detrás de un servidor web con todas las funciones como IIS, Nginx, Apache, etc.
- El servidor proxy inverso toma la solicitud HTTP de Internet y la pasa al servidor Kestrel tal como se recibe.
- El IIS puede tomar la solicitud HTTP y realizar algunos procesamientos útiles como registro, filtrado de solicitudes, reescrituras de URL antes de pasar la solicitud a Kestrel.
Detrás de otro servidor web
Servidor web Kestrel ejecutándose detrás de otro servidor web como IIS, NGINX, Apache, etc.Hay muchas razones por las que deberías usar este modelo en producción.:
- Seguridad
- Puedes limitar su área de superficie expuesta. Proporciona una capa adicional opcional de configuración y defensa.
- Simplifica el equilibrio de carga
- Configuración SSL
- Solo tu servidor proxy inverso requiere un certificado SSL, y ese servidor puede comunicarse con tus servidores de aplicaciones en la red interna utilizando HTTP simple.
- Compartir IP única con varias direcciones
- Solicitud de filtrado, registro y reescritura de URL, etc.
- Puedes asegurar que la aplicación se reinicie si se bloquea
El método CreateDefaultBuilder llama a UseIISIntegration, que le dice a ASP.NET que la aplicación usará IIS como un proxy inverso frente a Kestrel.
- Kestrel es rápido. No es un sitio web con todas las funciones y no proporciona las muchas funciones que esperas de un servidor web estándar. Por lo tanto, lo hace ligero en diseño y rápido.
- Es compatible con todas las versiones de .NET Core
- Es multiplataforma. Puedes ejecutarlo en Windows/Linux o Mac. Esto es algo que ASP.NET siempre nunca pudo hacer
- Es muy sencillo de configurar y ejecutar. De hecho, ya está configurado, cuando creas un nuevo proyecto ASP.NET Core en Visual Studio
- Soporta HTTPS
- Admite HTTP/2 (excepto en macOS, pero será compatible en una versión futura).
Alternativas a Kestrel
Kestrel no es la única forma de hospedar aplicaciones ASP.NET Core. Hay otra implementación de servidor web disponible en Windows conocida como HTTP.SYS El HTTP.sys es un servidor HTTP solo para Windows basado en el controlador del kernel Http.Sys.