ASP.NET Core runs on a brand new web server called Kestrel, based on libuv.
Microsoft recommends that Kestrel should be treated as an internal web server-excellent for development, it but shouldn't be exposed to the internet.
Then the obvious question would be how to host ASP.NET Core apps to expose them to the internet. The following diagram briefly illustrates the deployment strategy:
ASP.NET Core apps deployment strategy
The figure depicts the deployment strategy of having a proxy (aka a reverse proxy) in the form of IIS, Nginx, and so on.
These reverse proxies allow us to offload work by serving static content, caching requests, compressing requests, and SSL termination from the HTTP server.
Any requests coming from the internet will go through the reverse proxy (IIS or Nginx). The request is passed, and then the ASP.NET Core apps invoke the Kestrel...