Kestrel is the default web server used for ASP.NET Core applications. When a new ASP.NET Core project is created, it includes the Kestrel web server by default. The Kestrel web server provides better request processing performance to ASP.NET Core applications as it is an open-source, cross-platform and light-weight web server; but it does not have advanced features of web servers like IIS, Nginx, Apache etc.
The PowerServer Web APIs, which is a standard ASP.NET Core application, can be hosted in the Kestrel web server with or without using a reverse proxy server.
In the following graph, the PowerServer Web APIs is hosted in Kestrel and Kestrel is used as an edge (Internet-facing) server without a reverse proxy server.
-
Kestrel serves the dynamic content (such as data processing tasks) from the PowerServer Web APIs.
-
The web server (such as IIS, Apache, Nignx etc.) and the Kestrel server can reside in the same or different machine.
In the following graph, the PowerServer Web APIs is hosted in Kestrel, and Kestrel is used in a reverse proxy configuration.
-
Kestrel serves the dynamic content (such as data processing tasks) from the PowerServer Web APIs.
-
The reverse proxy server (such as IIS, Nginx, Apache etc.) forwards the requests to the PowerServer Web APIs running in Kestrel. The reverse proxy server may reside on a dedicated machine or may be deployed alongside a web server.
-
The web server (such as IIS, Apache, Nignx etc.), the reverse proxy server, and the Kestrel server can reside in the same or different machine.