首页 > 其他分享 >Kestrel

Kestrel

时间:2023-05-17 16:25:25浏览次数:28  
标签:Http 请求 Limits Kestrel 100 options

概述

  1. 微软推出的跨平台Web服务器,目前Asp.NET项目都支持Kestrel,而且是默认启用的。那可能有人会问,哪里用到了,答案就是这句代码:

    WebApplication.CreateBuilder(args); //调用Kestrel

  2. Kestrel利用KestrelEngine(网络引擎)实现对请求的监听,接受和响应,而KestrelEngine是基于libuv开发的,总体来说,就是一个进程内的高效Http Server。其支持以下方案:

    1. HTTPS
    2. HTTP/2(在 macOS† 上除外)
    3. 用于启用 WebSocket 的不透明升级
    4. 用于获得 Nginx 高性能的 Unix 套接字

配置

在非IIS环境下,Asp.Net项目默认使用的就是Kestrel,因此我们只需要对其进行相关配置即可,无需额外进行创建和引用。

var builder = WebApplication.CreateBuilder(args);
//WebHost中含有多中Http服务器
builder.WebHost.ConfigureKestrel(options =>
{
    // Http或Https请求最大并发数
    options.Limits.MaxConcurrentConnections = 100;
    // 非Http或Https请求,例如WebSocket,最大并发数,默认不受限制
    options.Limits.MaxConcurrentUpgradedConnections = 100;
    // 请求正文最大大小,默认30000000字节,越28.6MB
    /// 在中间件的设置
    /// context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 10 * 1024;
    options.Limits.MaxRequestBodySize = 10 * 1024;
    // 请求正文最小数据速率 MinRequestBodyDataRate MinResponseDataRate
    options.Limits.MinRequestBodyDataRate =
        new MinDataRate(bytesPerSecond: 100, gracePeriod: TimeSpan.FromSeconds(10));
    // 请求正文最小数据速率 MinRequestBodyDataRate MinResponseDataRate
    options.Limits.MinResponseDataRate =
        new MinDataRate(bytesPerSecond: 100, gracePeriod: TimeSpan.FromSeconds(10));
    //保持活动超时
    options.Limits.KeepAliveTimeout =
        TimeSpan.FromMinutes(2);
    // 请求头超时
    options.Limits.RequestHeadersTimeout =
        TimeSpan.FromMinutes(1);
    // 绑定到 TCP 套接字
    options.Listen(IPAddress.Loopback, 5000);
    options.Listen(IPAddress.Loopback, 5001, listenOptions =>
    {
        listenOptions.UseHttps("testCert.pfx", "testPassword");
    });
    // 每个连接的最大流 默认值是100
    options.Limits.Http2.MaxStreamsPerConnection = 100;
    // 标题表大小 默认值是4096
    options.Limits.Http2.HeaderTableSize = 4096;
    // 最大帧大小 默认值为 2^14 (16384)
    options.Limits.Http2.MaxFrameSize = 16384;
});

标签:Http,请求,Limits,Kestrel,100,options
From: https://www.cnblogs.com/wanghun315/p/17354583.html

相关文章

  • Kestrel服务器
    Kestrel服务器是什么Kestrel这个词的意思是红隼(小猛禽).之前的ASP.NET应用深度绑定IIS服务,跨平台和部署都是问题,现在的ASP.NETcore应用默认使用了Kestrelweb服务器,有点类似于SpringBoot默认内嵌了tomcat.ASP.netcore还可以使用Http.sysweb服务器(仅限于W......
  • 如何修改 .NET Core Kestrel 下的端口
    今天在尝试Consul的时候需要动态改变.NETCoreKestrel下的端口以方便测试,故而查了查,发现原来除了最常使用的UseUrls之外,还有许多其他方法,故而总结一下。实现方法A......
  • .net core Kestrel宿主服务器自定义监听端口配置
    .netcoreKestrel宿主服务器自定义监听端口配置http://t.zoukankan.com/williamwsj-p-9645095.html.netcoreKestrel宿主服务器自定义监听端口配置在.netcore的w......
  • kestrel网络编程--开发Fiddler
    1文章目的本文讲解基于kestrel开发类似Fiddler应用的过程,让读者了解kestrel网络编程里面的kestrel中间件和http应用中间件。由于最终目的不是输出完整功能的产品,所以这里......
  • kestrel网络编程--开发redis服务器
    1文章目的本文讲解基于kestrel开发实现了部分redis命令的redis伪服务器的过程,让读者了解kestrel网络编程的完整步骤,其中redis通讯协议需要读者自行查阅,文章里不做具体解......
  • 为什么推荐Kestrel作为网络开发框架
    为什么推荐Kestrel网络框架千千万万,在dotnet平台,我们可以直接手撸Socket,也可以基于dotnetty来开发,或者选择某些第三方类似于dotnetty的网络库,为何我要推荐Kestrel呢?1使......
  • ASP.NET Core教程-Configuration(配置)-配置Kestrel服务器
    更新记录转载请注明出处:2022年11月13日发布。2022年11月12日从笔记迁移到博客。配置Kestrel服务器ConfigureKestrel方法则能够用来配置Kestrel服务器通过Kestrel......
  • Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ng
    系列目录:本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。本系列第一篇:Taurus.MVCV3.0.3微服务开源框架发布:让.NET架构在大并发的演......