Tom*_*ron 5 kestrel-http-server asp.net-core
我们最近已经将ASP.NET MVC 5应用程序迁移到ASP.NET Core 2.2。
一切似乎都正常,但是我们定期收到以下异常(大约每秒3次,稍后会更多):
BadHttpRequestException: Invalid Host header: '~^appname.*$'
Module "Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException", line 0, col 0, in Throw
Void Throw(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.RequestRejectionReason, System.String)
Module "Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection", line 95, col 0, in EnsureHostHeaderExists
Void EnsureHostHeaderExists()
Module "Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection", line 196, col 0, in TryParseRequest
Boolean TryParseRequest(System.IO.Pipelines.ReadResult, Boolean ByRef)
Module "Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequests>d__185`1", line 170, col 0, in MoveNext
Void MoveNext()
Module "System.Runtime.ExceptionServices.ExceptionDispatchInfo", line 12, col 0, in Throw
Void Throw()
Module "System.Runtime.CompilerServices.TaskAwaiter", line 46, col 0, in HandleNonSuccessAndDebuggerNotification
Void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
Module "Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequestsAsync>d__184`1", line 135, col 0, in MoveNext
Void MoveNext()
Run Code Online (Sandbox Code Playgroud)
通过与我们的运维团队成员协商,很明显,我们有三个HAProxy实例,它们每个大约每秒检查一次应用程序的每个节点。
对此应用程序的每个请求将按以下方式进行:
HAProxy-> Nginx-> Kestrel / ASP.NET Core应用程序
我的问题是,我如何确定这里发生了什么?
当前版本的 Kestrel(我们使用的是 ASP.NET Core 2.2)不支持 HTTP 访问日志记录。
请参阅此问题:支持使用通用日志格式/扩展日志格式的访问日志记录
为了追踪问题,我必须让我们的运营团队检查我们的 nginx 日志(nginx 是我们正在使用的反向代理),以确定带有无效主机标头的请求来自何处。
事实证明,问题是状态检查应用程序配置错误。
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |