gpt4 book ai didi

asp.net-core - ASP.NET 核心实际上需要反向代理吗?

转载 作者:行者123 更新时间:2023-12-04 11:11:50 25 4
gpt4 key购买 nike

我们想知道大多数用例是否确实需要反向代理,并且希望获得更多信息。

Kerstel/Nginx 文档声称:
“Kestrel 非常适合从 ASP.NET Core 提供动态内容。但是,Web 服务功能不如 IIS、Apache 或 Nginx 等服务器功能丰富。反向代理服务器可以卸载诸如提供静态内容之类的工作, “缓存请求、压缩请求和来自 HTTP 服务器的 HTTPS 终止。反向代理服务器可能驻留在专用机器上,也可能与 HTTP 服务器一起部署。”
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.2

如果这在当今确实相关,有人可以分享一些见解吗?

在我们的用例中,我们使用带有外部负载平衡 (AWS ALB) 的 Docker 实例。
每个 docker 实例都运行着 Nginx 和我们的 ASP.NET Core 应用程序。
我们无法弄清楚使用 Nginx 的确切好处。

  • 提供静态内容
    当我们使用外部 CRN (AWS CloudFront) 时,我认为静态缓存实际上没有任何实际好处,是吗?
  • 缓存请求
    我相信这与提供静态内容相同,因为动态内容不会在大多数场景中缓存(在我们的用例中 - 所有场景)。
  • 压缩请求
    然而,ASP.NET Core 有一个响应压缩中间件——它声称“中间件的性能可能与服务器模块的性能不匹配。HTTP.sys 服务器服务器和 Kestrel 服务器目前不提供内置压缩支持。 ”。
    也许可以创建一些基准来验证这一说法。
    https://docs.microsoft.com/en-us/aspnet/core/performance/response-compression?view=aspnetcore-2.2
  • 从 HTTP 服务器终止 HTTPS
    我假设大多数拥有负载均衡器的客户端可以跳过这部分,因为如果需要,可以在负载均衡器上完成 HTTPS 终止。

  • 谢谢!
    艾菲

    最佳答案

    本文档不会告诉您“应该”在反向代理后面运行 ASP.NET Core/Kestrel,只是高级场景可以从中受益,因为 Kestrel 没有其他 Web 服务器可能具有的某些功能。
    如果您没有使用额外的 nginx 反向代理,那么您不必使用它。
    例如。 Kestrel 最近才采用 API 来动态更改某些连接参数,而无需重新启动 - 这有助于切换通过 ACME 获取的证书(例如 Let's Encrypt 服务)。
    是否需要反向代理在很大程度上取决于系统架构,但如果您不需要特定功能,则不必部署。

    关于asp.net-core - ASP.NET 核心实际上需要反向代理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56027292/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com