【发布时间】:2017-07-23 01:17:48
【问题描述】:
我正准备将 ASP.NET Core MVC 网站部署到生产环境。该应用程序将部署到 AWS ECS(EC2 容器服务)。不建议将 Kestrel 用于服务来自 Internet 的流量,并且建议将反向代理放在前面。我的问题是,AWS ALB 足够好吗?它执行 SSL 终止、负载平衡,并支持 HTTP/2 和 WebSocket。
我相信我正在放弃压缩(据我所知,ALB 或 Kestrel 都不支持它)。此设置缺少什么?我应该看一个额外的反向代理(haproxy/nginx)吗?额外的复杂性足以让我在没有必要的情况下不想走那条路。
【问题讨论】:
-
使用此解决方案需要考虑的一件事是您将如何管理 kestrel 流程。推荐的 Windows 解决方案(在 IIS 之后运行)通过 IIS 核心模块执行此操作。它会在第一次请求时启动 kestrel,如果失败则重新启动
-
对于 ECS,ALB/ECS 负责启动足够多的实例。
-
啊,好吧,我错过了容器服务部分,我没用过。听起来那样会很好。我刚刚从 ELB 切换到 NGINX,因为我们需要对负载平衡进行更精细的控制,但如果您的需求是基本的,ELB 可以正常工作。
-
我觉得红隼做不到 http/2 github.com/aspnet/KestrelHttpServer/issues/73
标签: asp.net amazon-web-services asp.net-core amazon-ecs kestrel-http-server