You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置缓存优化AWS ECS服务API的DNS、TCP及SSL握手耗时,将响应时间降至100ms以内

优化ECS路径的握手与DNS缓存,将响应时间降至100ms以内

针对你遇到的ECS路径(Route53 -> API Gateway -> ALB -> NGINX -> Django)中DNS查询、TCP/SSL握手耗时过高的问题,结合Lambda路径的缓存特性对比,我们可以从路径上的每个节点逐一配置连接复用与缓存,以下是具体的可落地方案:

一、API Gateway到ALB的连接复用与DNS缓存优化

API Gateway默认对Lambda集成会自动维护长连接并缓存后端连接信息,但对ALB这类HTTP后端,需要手动开启相关配置:

  • 启用HTTP长连接:在API Gateway的集成设置中找到「Connection Settings」,开启Enable HTTP keep-alive。这会让APIGW与ALB之间保持TCP长连接,避免每次请求都重复建立TCP连接(省去握手耗时)。
  • 调整DNS缓存TTL:在集成的「Advanced Settings」里,设置DNS cache time-to-live (TTL)为300秒(5分钟),减少APIGW重复查询ALB域名DNS的频率。

二、ALB到ECS服务的连接复用优化

ALB到NGINX容器之间的连接复用同样关键,需要两端配合配置:

  • 调整ALB目标组空闲超时:在ALB的目标组设置中,把Idle timeout从默认60秒调整为300秒,和APIGW的长连接超时保持一致,避免连接过早断开。
  • 配置NGINX长连接:在NGINX的配置文件中添加以下规则,确保与上游Django容器、下游ALB都保持长连接:
    server {
        listen 80;
        # 与ALB的客户端连接复用配置
        keepalive_timeout 300s;
        keepalive_requests 1000;
    
        location / {
            proxy_pass http://django-container:8000;
            # 与Django上游的长连接核心配置
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            # 缩短上下游连接超时,避免无效等待
            proxy_connect_timeout 5s;
            proxy_send_timeout 10s;
            proxy_read_timeout 10s;
        }
    }
    

三、Route53到API Gateway的DNS缓存优化

从客户端到API Gateway的DNS查询也可以通过缓存减少耗时:

  • 客户端层面开启DNS缓存:比如Postman可以在设置中确认「Enable DNS caching」已开启;生产环境的客户端需确保操作系统层面的DNS缓存配置合理(如Linux的systemd-resolved、Windows的DNS缓存)。
  • 调整Route53记录TTL:在Route53的API Gateway域名解析记录中,将TTL设置为300秒,减少客户端重复发起DNS查询的次数。

四、额外优化:端到端HTTPS场景的SSL缓存

如果后续需要配置端到端HTTPS(APIGW到ALB改用HTTPS协议),可以在API Gateway集成设置中开启Enable SSL certificate verification,并设置SSL缓存时长,避免每次请求重复验证SSL证书。

参考内容查询渠道

你可以在AWS官方文档中通过以下关键词搜索,获取更详细的配置细节:

  • API Gateway HTTP集成连接设置
  • 应用负载均衡器目标组空闲超时配置
  • ECS环境下NGINX反向代理最佳实践

内容的提问来源于stack exchange,提问作者Sulaiman Ghori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 00:32:28