2015-09-03 8 views
9

Ich versuche, den gesamten Web/Framework/Application Stack zu verstehen, wenn ich ASP.NET 5 unter Linux installiere.Warum benötigt ASP.NET 5 unter Linux Turmfalke?

Alle Anweisungen, die ich gelesen habe, einschließlich this one haben nicht wirklich meine Frage beantwortet:

Warum kann Nginx Server Arbeit ohne Kestrel wie hier: http://www.mono-project.com/docs/web/fastcgi/nginx/?

Oder bin ich weg. Ich versuche zu verstehen, was der Grund für diese Struktur ist:

.NET Core(or mono) --> Kestrel --> Nginx 

Ist das nicht Kestrel nur ein weiterer Web-Server wie Nginx aber mit viel weniger Funktionen?

Antwort

8

ASP.NET Core- (ASP.Net 5) erfordert nicht Kestrel!

Sie haben recht, Kestrel ist nur ein einfacher HTTP-Server mit einer kleinen Reihe von Funktionen. Sie können ASP.NET Core- ohne Kestrel auf Linux oder Mac, laufen aber Sie müssen entweder einen HTTP-Server oder einen FastCGI-Server.

Nginx wird als Reverseproxy für statische Inhalte im Allgemeinen verwendet und Sie können auch die gzip-Komprimierung für Ihren dynamischen Inhalt aktivieren. Kestrel hat diese Funktion nicht.

Sie können auch Ihren eigenen HTTP-Server mit den spezifischen HTTP-Funktionen schreiben, die Sie benötigen (z. B. HTTP2).

+0

Sie sagen also, wenn ich ASP.net 5 installieren, und nginx mit einem schnellen CGI-Server verwendet, sollte ich alle eingestellt sein? –

+2

Ja, wenn Sie 'Nginx' verwenden möchten, um seine Funktionen zu verwenden. Und Ihr 'fastCGI' Server muss' ASP.Net 5' ausführen können. Meiner Meinung nach ist es besser, 'Nginx' als Reverse-Proxy mit' Kestrel' oder einem anderen einfachen 'HTTP-Server' zu verwenden. Ich denke, Sie können 'Apache' auch als Reverse-Proxy anstelle von' Nginx' verwenden. –

+0

Hallo, Ihre Verbindung ist gebrochen –

3

Necromancing.

Ja, es erfordert Kestrell.
Wie Agua sagt, könnte es theoretisch auch auf einem anderen http-Server als Kestrell ausgeführt werden, einem, der .NET Core oder FastCGI ausführen kann.

Allerdings ist AFAIK, Kestrell der einzige http-Server, der derzeit existiert, der das tatsächlich tun kann.
Und weil AFAIK, ein FastCGI-Server/Bibliothek geschrieben in .NET Core (noch) nicht existiert.

Jetzt, wenn Sie .NET Core mit Nginx oder Apache verwenden möchten, können Sie nur Reverse-Proxy-Anfragen an kestrell.

Verwandte Themen