Steven C
Steven C

Reputation: 317

Kestrel hosting basics

I am in the process of developing an ASP.NET website, and I'm very intrigued by using vNext to host my website regardless of host. When I start looking for some of the basic hosting features though, I seem to think that they might not get developed. Does anyone know if the following features are going to be supported with vNext hosting with Kestrel on all platforms:

  1. SSL hosting
  2. Logging of HTTP requests (like IIS)
  3. IIS modules (I'm guessing not, I only need url rewrite to redirect to HTTPS)

Upvotes: 19

Views: 15400

Answers (3)

Eilon
Eilon

Reputation: 25704

As stated on the KestrelHttpServer repo:

This repo contains a development web server for ASP.NET vNext based on libuv.

Because it is currently slated as a development server, some features might never make their way in. For example, IIS has features for controlling IP address mapping to hostnames, limitations on bandwidth/memory/CPU, etc. A development server generally wouldn't have such features.

As to IIS modules, I can comfortably say that it definitely won't support them because they are IIS-specific, and Kestrel has nothing to do with IIS.

Regarding SSL hosting, that's certainly an interesting possibility, but it's not currently in the plans. That would certainly seem useful even for a development web server (IIS Express supports it).

Update: The repo documentation has been updated as of Sept 1 so it now reads:

This repo contains a web server for ASP.NET Core based on libuv.

Upvotes: 12

KCD
KCD

Reputation: 10281

Here is a small update as Kestrel is becoming production ready

If deploying on Linux, you should run a comparable reverse proxy server such as Apache or Nginx to proxy requests to Kestrel. http://docs.asp.net/en/latest/fundamentals/servers.html#choosing-a-server

And new ASP.NET 5/Core projects come with this in there project.json

"commands": {
  "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5000"

which will soon become:

  "web": "Microsoft.AspNetCore.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5000"

The sample app logging seems good and it supports SSL, see SampleApp/Startup.cs

Watch this space...

Upvotes: 4

druss
druss

Reputation: 1880

You can run kestrel behind nginx server. It will give you SSL, virtual host and other functionality. But kestrel still really unstable, so you should think twice before using it in production. Here is an article with instruction how to configure nginx to pass requests to the kestrel

Upvotes: 5

Related Questions