全宇宙人民都知道,ASP.NET Core 应用是不依赖服务器组件的,因此它可以独立运行,一般是使用支持跨平台的 Kestrel 服务器(当然,在 Windows 上还可以考虑用 HttpSys,但要以管理员身份运行)。
尽管 SDK 文档中推荐我们用服务器组件来“反向”代理,但独立运行也是允许的。当 Web 应用独立运行的时候,客户端发出请求后,在响应的 HTTP 消息中,会附上一个 Server 头,其值就是 Kestrel。如下面的高清无码无水印截图所示。
看到了吧,Server = Kestrel。上面老周做了个小站,并且是独立运行的,但我想隐藏那个 Kestrel 名字,想把它改为 Pig Platform。既然想到了,那就动手,这个其实很好办的,只要在中间件的 HTTP 管道中插入一个自定义的中间件,修改一下 Server 头就行了。
实现方法就是在 Startup 类的 Configure 方法中 Use 一下就好了。
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Use(async (context, next) => { context.Response.Headers["Server"] = "Bun Server 2098"; await next(); }); app.UseMvc(); }