首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kestrel - IIS | Apache是否是微服务的理想运行时宿主进程,而不是队列支持的Windows服务?

Kestrel和IIS/Apache都可以作为微服务的运行时宿主进程,但它们在不同的场景下有不同的适用性。

Kestrel是一个跨平台的、轻量级的Web服务器,由ASP.NET Core提供支持。它专注于处理HTTP请求,并且在性能方面表现出色。Kestrel适用于需要快速响应的微服务,尤其是在Linux或Docker等容器化环境中。它支持HTTP/1和HTTP/2协议,并且可以与反向代理服务器(如Nginx)配合使用,以提供负载均衡和SSL终止等功能。

IIS(Internet Information Services)是微软的Web服务器软件,它提供了丰富的功能和广泛的扩展性。IIS适用于Windows环境下的微服务部署,尤其是在需要与其他Microsoft技术(如ASP.NET、.NET Framework)集成的情况下。IIS支持多种协议(如HTTP、HTTPS、FTP)和多种身份验证方式,并且具有强大的管理工具和监控功能。

Apache是一个开源的、跨平台的Web服务器软件,它是互联网上最流行的Web服务器之一。Apache适用于各种操作系统,并且具有高度可配置性和可扩展性。它支持多种模块和插件,可以实现各种功能,如URL重写、反向代理、缓存等。Apache在微服务中可以作为运行时宿主进程,特别是在需要与其他开源技术(如PHP、MySQL)集成的情况下。

队列支持的Windows服务是一种常见的微服务部署方式,它通过消息队列实现服务之间的解耦和异步通信。Windows服务可以作为后台进程运行,并且可以通过Windows服务管理器进行监控和管理。它适用于需要长时间运行的任务和对实时性要求不高的场景。

综上所述,Kestrel、IIS和Apache都可以作为微服务的运行时宿主进程,选择哪种取决于具体的需求和环境。如果需要跨平台和高性能,可以选择Kestrel;如果需要与Microsoft技术集成,可以选择IIS;如果需要开源和可配置性,可以选择Apache。对于队列支持的Windows服务,适用于需要解耦和异步通信的场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET Core 进程内(InProcess)托管(6)《从零开始学ASP.NET CORE MVC》:

Core中进程内(InProcess)托管模型 什么Kestrel服务器 当一个 ASP.NET Core 应用程序执行时候,.NET 运行时会去查找 Main()方法,因为它是这个应用程序起点...内部Web服务Kestrel, 外部Web服务器可以是IIS,Nginx或Apache。 使用InProcess托管,只有一个Web服务器,承载asp.net Core应用程序IIS。...因此,在内部和外部Web服务器之间,他们代理和请求不没有性能损失。 什么Kestrel KestrelASP.NET Core跨平台Web服务器。....NET Core支持所有平台和版本都支持它。它默认包含在ASP.NET Core中作为内部服务器。...Kestrel本身可以用作边缘服务器,即面向互联网Web服务器,它可以直接处理来自客户端传入HTTP请求。 在Kestrel中,用于托管应用程序进程dotnet.exe。

1.6K20

ASP.NET Core服务器综述

ASP.NET Core搭载两个服务器实现: Kestrel一个基于libuv跨平台HTTP服务器,libuv一个跨平台异步I/O库 WebListener一个基于HTTP.SYS内核驱动“...Windows专用”HTTP服务Kestrel Kestrel包含在ASP.NET Core新项目模板中默认web服务器。...如果你应用只接收来自内部网络请求,你可以只使用Kestrel本身。 ? 如果你将你应用部署在公共网络上,我们建议你使用IIS,Nginx或者Apache作为反向代理服务器。...IIS with Kestrel 当你使用IIS或者IIS Express作为对ASP.NET Core反向代理时,ASP.NET Core应用将运行在由该IIS工作进程分离出一个进程中。...当你只想要在内网中部署你应用时,WebListener可以被用来代替Kestrel,特别是当你需要Weblistener服务支持功能中某项Kestrel恰好不支持时候。 ?

2.9K50
  • Docker最全教程——从理论到实战(二)

    能够在 IIS、Nginx、Apache、Docker 上进行托管或在自己进程中进行自托管我们应用。 性能.NET Core一个关键特性,这里有必要介绍下。...Kestrel 可以单独使用,也可以与反向代理服务器(如 IIS、Nginx 或 Apache)一起使用。...在没有 Kestrel 或自定义服务器实现情况下,不能使用 IIS、Nginx 和 Apache。 ASP.NET Core 设计为在其自己进程中运行,以实现跨平台统一操作。...IIS、Nginx 和 Apache 规定自己启动过程和环境。 若要直接使用这些服务器技术,ASP.NET Core 必须满足每个服务需求。...注意: Kestrel 可以单独使用,也可以与反向代理服务器(如 IIS、Nginx 或 Apache)一起使用。在docker容器中,我们推荐使用Kestrel

    1.5K30

    Docker最全教程——从理论到实战(二)

    能够在 IIS、Nginx、Apache、Docker 上进行托管或在自己进程中进行自托管我们应用。 性能.NET Core一个关键特性,这里有必要介绍下。...Kestrel 可以单独使用,也可以与反向代理服务器(如 IIS、Nginx 或 Apache)一起使用。...在没有 Kestrel 或自定义服务器实现情况下,不能使用 IIS、Nginx 和 Apache。 ASP.NET Core 设计为在其自己进程中运行,以实现跨平台统一操作。...IIS、Nginx 和 Apache 规定自己启动过程和环境。 若要直接使用这些服务器技术,ASP.NET Core 必须满足每个服务需求。...注意: Kestrel 可以单独使用,也可以与反向代理服务器(如 IIS、Nginx 或 Apache)一起使用。在docker容器中,我们推荐使用Kestrel

    1.4K30

    ASP.NET CoreKestrel服务

    跨平台ASP.NET Core web服务器,libuv一个跨平台异步I/O库。...如果你将你应用部署在公共网络上,我们建议你使用IIS,Nginx或者Apache作为反向代理服务器。...另一个需要反向代理场景,你有多个需要在单独服务器上运行并分享同一端口应用。因为Kestrel支持在多进程间分享同一端口,所以应用并不能直接和Kestrel合作。...如果你需要为不同ASP.NET Core应用在同一端口上绑定不同主机名,请使用WebListener或者诸如IIS,Nginx或Apache这样反向代理服务器。...on a Mac Using Visual Studio Code 本教程在本地仅使用Kestrel,在将该应用部署到Azure之后,它将在Windows上使用IIS作为反向代理服务器。

    5K50

    《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(上)

    : 配置 Kestrel 服务器作为默认 Web 服务器来负责处理 Web 请求与响应 使用当前目录作为应用程序内容目录,该目录决定了 ASP.NET Core 查找内容文件位置 从以 ASPNETCORE...,通过设置不同环境,能够使应用程序在运行时获取相应配置,从而具有不同行为和逻辑 内部提供3个环境: Development:开发 Staging:预演 Production:生产 Kestrel...轻量级、托管、开源且跨平台 Web 服务器,它作为 ASP.NET Core 组成部分,能够使 ASP.NET Core 应用程序运行在任何平台上 当 Kestrel 作为 ASP.NET Core...服务器时,它会在 ASP.NET Core 进程内运行,并负责监听 HTTP 请求以及对每一次请求返回 HTTP 响应 在实际生产环境部署应用程序时,推荐使用主流 Web 服务器(如 IIS...和 Apache 等)放在 Kestrel 之前作为反向代理服务器,增加应用程序安全性,也提供了负载均衡、过滤请求和 URL 重定向等功能 IWebHostBuilder 接口有多个扩展方法,其中有一个很重要

    90310

    如何在ASP.NetCore增加文件上传大小

    换句话说,您可以在 IIS、Ngnix 和 Apache Web 服务器上托管应用程序。...Kestrel 可用作独立服务器或被其他服务器反向代理,如 IIS、Nginx 或 Apache。没有单一解决方案可以覆盖所有的部署选项来增加请求大小限制。根据不同部署选项,解决方案也不尽相同。...1、托管在 IIS 上(有凯斯特雷尔或没有凯斯特雷尔) 2、托管在 Kestrel 上(作为独立或与 Ngnix 和 Apache 服务器一起托管) 2 在 IIS 上 还能记得在 ASP.NET 中,...该值一个可空长值。将它设置为 null 会禁用该限制。现在你可能会想,为什么这对 windows 不起作用,因为 IIS 也使用 Kestrel。...原因,这个设置对于运行在 IIS 后面的 Kestrel 来说是无效,在 IIS 后面应用正常 web.config 限制。

    4.9K10

    ASP.NET Core 进程外(out-of-process)托管(7)《从零开始学ASP.NET CORE MVC》

    进程外(out-of-Process)托管 有2个Web服务器 ,内部Web服务器和外部Web服务器。 内部Web服务Kestrel, 外部Web服务器可以是IIS,Nginx或Apache。...kestrel直面互联网 Kestrel 还可以与反向代理服务器 (如 IIS、Nginx 或 Apache) 结合使用。 ?...因为Kestrel使用 "进程外(out-of-process)托管", 结合反向代理服务一个不错选择, 因为它提供了额外配置和安全性层。它可能会更好地与现有基础设施集成。...由于我们已将应用程序配置为使用进程外托管,所以当前情况下,IIS Express 已经在充当反向代理服务器了。 IIS Express接收传入HTTP请求并将其转发给Kestrel进行处理。...使用进程外托管无论您是否使用反向代理服务器,Kestrel服务器都是作为托管应用程序服务器同时处理请求,也就是我们最开始说自托管。

    1.5K50

    宿主

    什么宿主     ASP.NET Core应用程序需要在宿主中执行.宿主必须实现IWebHost接口,这个接口暴露了功能和服务集合,以及Start方法。...服务器负责接收HTTP请求。确保应用程序服务服务器可用并正确配置也是宿主职责一部分。可以把宿主看成服务包装。宿主被配置为使用一个特定服务器;服务器并不知道它宿主。...协议(“http://”或“https://”)必须包含在每个URL里,前缀由配置好服务器解释;服务器之间支持格式有所不同。...UseIISIntegration()       如果应用程序需要使用IIS,需要构建宿主时调用UseIISIntegration方法。注意这不是像UseKestrel那样配置一个服务器。...为了让ASP.NET Core使用IIS,必须同时指定UseKestrel和UseIISIntegration。Kestrel被设计为在代理后运行不应该直接部署到互联网。

    1K30

    ASP.NET Core模块概述

    支持Windows版本: Windows 7和Windows Server 2008 R2和更高版本 查看或下载代码示例 ASP.NET Core 模块做了什么 ANCM一个原生IIS模块,它挂接到...因为ASP.NET Core应用运行在某个IIS工作进程分离出一个进程中,ANCM也能进行进程管理。当接收到第一个请求时候,ANCM会为该ASP.NET Core应用启动进程。...ANCM也有重启崩溃进程功能。和运行在IIS进程中,通过WAS(Windows Activation Service)进行管理传统ASP.NET 应用,在本质上相同。...转寄Windows身份认证tokens。 怎么在ASP.NET Core应用中使用ANCM 这一节提供了对IIS服务器和ASP.NET Core应用设置过程概述。更详细信息,请参考发布到IIS。...这种机制有利于例如在MacOS上开发测试程序并部署到运行IIS服务场景。当在Mac上运行时Kestrel以web服务身份存在,但是当应用部署到IIS环境时,它会自动搭接ANCM和IIS

    1.7K80

    ASP.NET Core 8 在 Windows 上各种部署模型性能测试

    比如如果部署在 IIS 下,那么 In Process 会比 Out Process 快;如果 Self Host 那么使用 HttpSys 服务器会比 Kestrel 快。...InProcess 模式 InProcess 模式将 ASP.NET Core 应用程序直接部署在 IIS 中,与 IIS 工作进程相同进程中运行。...SelfHost Kestrel 模式 Kestrel 模式 ASP.NET Core 内置 Web 服务器,可以独立运行而无需依赖其他外部服务器。...同时,SelfHost Kestrel 模式性能优于 SelfHost HttpSys 模式,这也与一般预期不同,因为 HttpSys 运行在内核态服务器。...这样差异可能受多种因素影响,包括硬件配置、操作系统版本、IIS版本等,毕竟这些产品都是10年前产物, ASP.NET Core8 2023 年全新产品。

    36610

    ASP.NET 5 Beta 8 发布

    ASP.NET 5 Beta 8一个重大更新就是IIS 宿主模型,统一了宿主模型,Beta7之前模型通过一个叫做"Helios" 实现另一套宿主机制,两个完全不同宿主模型为 ASP.NET 5...导入了大量复杂性和不一致性,在 IIS 中承载 ASP.NET 5 应用程序现在使用 IIS HttpPlatformHandler转发到 ASP.NET 5 Kestrel 服务器。...HttpPlatformHandler 一个本机 IIS 模块,需要管理员在 IIS 服务器上安装(安装程序: x86, x64)。...新宿主模型带来好处包括: IIS应用程序池不需要运行托管代码,类似于在IIS上运行PHP那样,根本不会在IIS上加载CLR 不再需要安装Windowsasp.net组件 IIS上可以同时运行...ASP.NET 4.x模块和HttpPlatformHandler HttpPlatformHandler支持给每个进程设置环境变量 Visual Studio 中 ASP.NET 5 项目模板已经更新

    1.5K90

    ASP.NET Core 5 在IIS,Nginx,Caddy下性能测试

    曾经结论 Rick Strahl 在 原文* 中测试了 Windows 下 ASP.NET Core 2.2 在 KestrelIIS InProcess、IIS Out of Process 中性能...结论 IIS InProcess > Kestrel > IIS Out of Process。...注意,在理想环境下,最好不要使用性能测试工具测试localhost地址,因为操作系统本身分配调度测试工具和Web服务器之间网络资源会有一定影响。...Rick 测试中,IIS In Process 性能竟然能超越 Kestrel,他曾经表示意外。今天 IIS In Process 还是被 Kestrel 吊打了,这好像还挺合理。...但是我没想到,同样用 KestrelWindows 服务性能竟然能吊打 Linux,我表示意外,毕竟说好 Windows 性能差,说句政治正确的话,这一定不是 Linux 问题,很可能

    2.4K20

    ASP.NET Core跨平台技术内幕

    ASP.NET Core设计初衷开源跨平台、高性能Web服务器,其中跨平台特性较早期ASP.NET一个显著飞跃,.NET现可以理直气壮与JAVA同台竞技,ASP.NET Core高性能特性更是成为致胜法宝...一般不支持外部对内部网络访问请求; 当一个代理服务器能够代理外部网络主机,访问内部网络,这种代理服务器被称为反向代理服务器 。...平台 [ 管控应用、转发请求] 由ASP.NET Core Module(插入在IIS Pipeline中原生组件,下面简称ACM)一手操办,w3wp.exe、dotnet.exe互动关系通过父子进程维系...下图脚本力证dotnet.exe进程w3wp.exe创建出来进程: ?...约定 携带该Token请求为合法转发请求 与ACM夫唱妇随UseIISIntegration()扩展方法,完成如下工作: ① 启动Kestrel服务在http://localhost:{ASPNETCORE_PORT

    1.1K10

    ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS)

    以下本次对比测试任务目标: 编号 对比方 系统环境 宿主环境 测试目标 1 ASP.NET Core vs ASP.NET Core Windows Kestrel vs IIS 相同平台不同宿主间性能差距...2 ASP.NET Core vs ASP.NET Windows IIS vs IIS 相同平台相同宿主不同框架间性能差距 3 ASP.NET Core vs ASP.NET Windows Kestrel...可能由于IIS进一步http封装导致吧,毕竟IIS提供了那么多其他功能。 以下Windows性能监视器,两个曲线图差不多我就放一个了: ?...这个结果说明了,在同样Windows+IIS环境中,ASP.NET具有优势和竞争力,可以预见 ASP.NET 应该还不会淘汰太快。...总结 以下测试结果汇总统计: 编号 对比方 系统环境 宿主环境 测试结果(QPS) 1 ASP.NET Core vs ASP.NET Core Windows Kestrel vs IIS 45.6k

    5.5K70

    ASP.NET Core托管和部署Linux实操演练手册

    一、课程介绍 ASP.NET Core 一种全新跨平台开源 .NET 框架,能够在 IIS、Nginx、Apache、Docker 上进行托管或在自己进程中进行自托管。...作为一个.NET Web开发者,我最伤心时候就是项目开发部署时面对Windows Server上贫瘠解决方案,同样神器Nginx,Win上Nginx便始终不如Linux上所幸.ASP.NET...作为.NET程序员大多数工作无法脱离Windows,习惯于图形化工作环境,特别对刚接触Linux系统来说感觉使用很不习惯, 所谓工欲善其事,必先利其器,毕竟我们程序员精力有限 ,把有限时间投入到有价值事情上去...2、asp.net core web服务器HTTP.sys和Kestrel区别以及特点 3、asp.net core两种托管模型以及如何选择?...2.2、asp.net core web服务器HTTP.sys和Kestrel以及特点 2.3、asp.net core两种托管模型以及如何选择 1)、Inprocess(进程内托管) 2)、Outofprocess

    90920

    ASP.NET Core 进程内与进程性能对比

    所以请记住: ASP.NET Core 2.X 及以前默认进程外托管 ASP.NET Core 3.X 默认为进程内托管 我最近查询了下,应该说最早.NET Core 就不支持进程内,所以也是慢慢迭代到支持进程...只有一个 Web 服务器,它是承载我们应用程序 IIS 服务器,如图进程内托管图。 ?...进程内模型不使用 Kestrel,而是使用 IISHttpServer()直接在 IIS 应用程序池内部托管新 Web 服务器实现,该实现与传统 ASP.NET 被引入 IIS 方式有些相似。...同一个应用程序实现 100%兼容,无论部署在 Windows 还是 Linux 上,Kestrel 主要机制可以处理所有平台上 HTTP 请求。...它还可以检查服务 HTTP 响应,并检查 Web 服务Kestrel 或 Microsoft IIS 作为 Web 服务器: ASP.NET Core2.X 进程外(OutOfProcess)

    1.7K31
    领券