ASP.NET 5 is a new framework from Microsoft. Goals of that framework:
- Cross platform
- Cloud optimized if needed
- Getting rid of the System.Web overhead. Achieved through 1) modularization 2) everything new will be - if possible - asynchronous 3) Dependency Injection
On Windows we can use IIS to host our application.
On Linux we are using Mono + KestrelHttpServer which is based on libuv.
The problem we face is that Kestrel is a development server, so if we want to use Kestrel in production we miss a lot of features. For example Virtual Hosts.
But we don't have to! Nginx and Kestrel work together like a charm.
So let's get started:
I assume that you have a working mono environment installed. If not, click here.
In our project.json of our test project we mapped the address to http://localhost:5001.
Usually the default host file routes localhost to 127.0.0.1. So our address is actually http://127.0.0.1:5001
0. Stop your application in the background:
(You can get the process id with ps -ef)
1. First we need to install nginx:
2. Then we need to configure a virtual host, so nginx works as a reverse proxy:
(Save with CTRL+O and Exit with CTRL+X)
3. Remove the default config file:
4. Enable your nginx site:
5. (Re)start nginx:
6. Start your application:
(Note: We redirect (save) the output-stream into the file error.log)