Ich bin ein .NET-Entwickler. Ich sehe, dass das ASP.NET MVC-Framework jetzt eine Selbsthosting-Funktion bereitstellt. Es macht sehr viel Sinn (für mich). Eine selbst gehostete Anwendung fühlt sich vollständig ohne externe Abhängigkeit an.
Die Frage, die ich im Kopf habe, ist jetzt, warum jemand sich NICHT selbst hosten möchte. Ich meine, gibt es irgendwelche Vorteile, die IIS mir gegenüber Selbsthosting bietet? Ich bin sicher, dass es einige Vorteile gibt, da sich Microsoft sonst nicht die Mühe gemacht hätte, die IIS-Integration mit dem asp.net-Kern zu erstellen.
Ich möchte nicht, dass meine Frage spezifisch für .NET ist. Also werde ich mitmachen - warum mit IIS oder Apache Tomcat anstatt Selbsthosting?
web-development
iis
tomcat
web-hosting
bilal fazlani
quelle
quelle
Expires
undETag
Headern. Und dann kompliziertere Dinge, wie das Trennen des Datenverkehrs durchhost
, das Fernhalten von Anwendungen vom Speicher des anderen, SSL und das Verwalten von Tausenden von gleichzeitigen Anforderungen ...Antworten:
IIS bietet eine Reihe allgemeiner Funktionen, die in selbst gehosteten Webdiensten standardmäßig nicht verfügbar sind. Supervisor: Überwacht den Zustand der Webanwendung und beendet die Anwendung, wenn sie ungesund aussieht (mit zu viel Speicher, CPU usw. - konfigurierbar). Ressourcenbeschränkungen wie CPU-Auslastung, Verbindungsbeschränkungen usw. Als bestimmter Benutzer für die geringste Berechtigungssicherheit ausführen. Zertifikate / SSL verwalten. Hosten / verwalten Sie viele Anwendungen über einen Port / eine Schnittstelle. Proxy für Konsolenanwendungen umkehren. Viele andere Dinge, die ich nicht erwähnt habe, wie die Protokollierung von Anfragen.
Ich bin mit Tomcat nicht vertraut, aber ich gehe davon aus, dass es die gleiche Geschichte ist. Sie erhalten zusätzliche Hosting-Funktionen, die Ihnen Self-Hosting standardmäßig nicht bietet und die möglicherweise nur schwer selbst zu implementieren sind.
Oft empfehlen Produkte, die einen selbst gehosteten Webdienst verfügbar machen, diese weiterhin hinter einem Reverse-Proxy oder einem anderen Supervisor in der Produktion zu platzieren. Dies kann sein, um sicherzustellen, dass es Abstürze überlebt oder bei Netzwerkunterbrechungen ordnungsgemäß funktioniert. Ich denke zum Beispiel an NGINX für Docker-Dienste. Im .NET-Bereich wird Kestrel meines Erachtens standardmäßig über IIS (oder möglicherweise NGINX unter Linux / Mac) umgekehrt .
quelle