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

如何配置AWS架构实现用户访问S3、EC2的HTTP原域名时跳转至CloudFront的HTTPS站点

AWS源站自动重定向到CloudFront HTTPS配置方案

1 S3存储桶(React应用)侧配置

  • 首先开启S3桶的静态网站托管功能,进入S3控制台对应桶的「属性」 tab,拉到最下方找到静态网站托管选项开启
  • 在静态网站托管的「重定向规则」栏填入如下JSON配置,将所有源站访问请求301重定向到你的CloudFront HTTPS域名,注意替换示例中的CloudFront域名为你自己的:
[
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "403"
        },
        "Redirect": {
            "HostName": "你的CloudFront分发域名,例:d1234567890.cloudfront.net",
            "Protocol": "https",
            "HttpRedirectCode": "301"
        }
    },
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "你的CloudFront分发域名,例:d1234567890.cloudfront.net",
            "Protocol": "https",
            "HttpRedirectCode": "301"
        }
    }
]
  • 额外安全加固:给S3桶配置CloudFront源访问控制(OAC),关闭S3桶的公开访问权限,确保只有CloudFront可以正常读取S3桶内容,用户直接访问S3源站只会触发重定向或者权限拒绝。

2 EC2(Node.js服务)侧配置

你可以根据自己的部署情况选以下任意一种方式实现重定向:

2.1 Node.js代码层实现(Express框架为例)

添加全局中间件,识别直接访问EC2源站的请求做重定向,示例代码如下:

app.use((req, res, next) => {
  // 替换为你的EC2公网域名/IP、对应CloudFront域名
  const sourceHosts = ['你的EC2公网IP', '你的EC2公网域名'];
  const targetHost = '你的Node服务对应的CloudFront域名';
  if (sourceHosts.includes(req.hostname) || req.protocol === 'http') {
    return res.redirect(301, `https://${targetHost}${req.originalUrl}`);
  }
  next();
});

2.2 Nginx反向代理层实现(如果你用Nginx做Node.js的前置代理)

在Nginx配置文件的server块中添加如下规则:

server {
  listen 80;
  server_name 你的EC2公网IP 你的EC2公网域名;
  return 301 https://你的Node服务对应的CloudFront域名$request_uri;
}
  • 额外安全加固:修改EC2关联的安全组入站规则,仅允许CloudFront的IP段访问你Node服务暴露的端口,从网络层面禁止用户直接访问EC2源站。

3 配置验证

  • 直接在浏览器访问S3的原生静态网站HTTP域名,确认自动跳转到对应的CloudFront HTTPS域名
  • 访问EC2的公网IP/HTTP域名,确认自动跳转到Node服务对应的CloudFront HTTPS域名
  • 可通过curl -I http://你的源站地址命令查看返回头,确认返回301 Moved Permanently状态码,且Location字段为目标CloudFront HTTPS地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:06:06