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

如何在AWS Amplify应用中移除Server响应头?

移除Amplify应用中CloudFront返回的'Server: S3'响应头

方案一:结合Lambda@Edge处理响应头

Amplify默认的customhttp.yml配置无法覆盖CloudFront自动添加的Server头,最可靠的方式是用Lambda@Edge在响应阶段移除该头:

  • 创建部署在us-east-1区域的Lambda函数,选择CloudFront的Viewer Response触发器类型,函数逻辑如下:
    exports.handler = (event, context, callback) => {
      const response = event.Records[0].cf.response;
      // 删除Server响应头
      delete response.headers['server'];
      callback(null, response);
    };
    
  • 在项目的amplify.yml中添加配置,将Lambda关联到CloudFront:
    frontend:
      phases:
        build:
          commands:
            - npm run build
      artifacts:
        baseDirectory: build
        files:
          - '**/*'
    cloudfront:
      lambdaFunctionAssociations:
        - eventType: 'viewer-response'
          lambdaArn: 'arn:aws:lambda:us-east-1:你的AWS账号ID:function:你的Lambda函数名:版本号'
    

方案二:尝试Amplify自定义头强制置空

如果不想用Lambda,可先尝试在customhttp.yml中强制将Server头置空:

customHeaders:
  - pattern: '**/*'
    headers:
      - key: Server
        value: ''

保存后重新部署应用,若CloudFront缓存未刷新,可手动触发缓存失效。

注意事项

  • Lambda@Edge必须部署在us-east-1区域,且需配置允许CloudFront调用的IAM权限
  • 修改后需等待CloudFront缓存更新,通常需要数分钟到数小时
  • 若自定义头配置无效,Lambda@Edge方案是最终可行的解决方式

内容的提问来源于stack exchange,提问作者mongesh madhavan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:12:02