4
votes

It is advised to use kestrel with a reverse proxy for production for many reasons listed below (documented at microsoft)

A reverse proxy can:

  1. Can limit the exposed public surface area of the apps that it hosts.

  2. Provide an additional layer of configuration and defense.

  3. Might integrate better with existing infrastructure.
  4. Simplify load balancing and secure communication (HTTPS) configuration. Only the reverse proxy server requires an X.509 certificate, and that server can communicate with the app's servers on the internal network using plain HTTP.

IIS cant be used at Linux, and IIS is considered to be fastest as compared to NGINX or others according to benchmarks.

Since my app needs to be deployed at Linux ...

1) what will be the best web server to use for best performance of my app that can handle multiple concurrent connections well and provides configurations for defense? ..

2) Is it that kestrel alone will give best performance? If yes, then how can i ensure defense of app in accordance with many of features that IIS have but kestrel doesn't like: Request Filtering & Limits

2

2 Answers

2
votes

I've used nginx and haproxy both. I've read articles on Microsoft docs for Nginx:

Sharing the link here: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-3.1