Kestrel is the default, cross-platform web server for ASP.NET Core. It is lightweight and built for high performance, handling many concurrent connections. It supports HTTP/1.1, HTTP/2 and HTTP/3.
Kestrel can face the internet on its own, or sit behind a reverse proxy such as IIS, Nginx or Apache. Both setups are supported. A proxy adds a layer of security and configuration in production. It can also handle HTTPS certificates and load balancing, and let several apps share one IP address and port.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.