【AWS】使用Amazon S3 实现静态网站托管
2025年07月16日
文章浏览:38
【AWS】使用Amazon S3 实现静态网站托管

Amazon S3 (Simple Storage Service) 是一种对象存储服务,它以极高的可用性、耐久性、可扩展性和成本效益而闻名。

S3 最棒的一个功能就是它能够直接托管静态网站

这意味着你不需要传统的 Web 服务器(如 Apache 或 Nginx),就可以通过 S3 直接提供 HTML、CSS、JavaScript 文件、图像和视频等静态内容。



如何使用 Amazon S3 托管静态网站

实现 S3 静态网站托管主要包括以下几个步骤:

创建一个 S3 存储桶 (Bucket):

存储桶名称必须与你的域名完全一致。例如,如果你的域名是 example.com,那么存储桶名称也必须是 example.com。如果你还想支持 www.example.com,则需要再创建一个名为 www.example.com 的存储桶,并将其配置为重定向到 example.com。

选择离你的用户最近的 AWS 区域。

禁用“阻止所有公共访问”设置:默认情况下,S3 存储桶会阻止所有公共访问。你需要禁用这个设置,以便网站内容可以被公开访问。

上传网站文件:

将你的所有静态网站文件(HTML、CSS、JavaScript、图片等)上传到你创建的 S3 存储桶中。

确保入口文件是 index.html:这是默认的首页文件。

确保错误页面是 error.html (可选):这是一个自定义的 404 错误页面。

配置存储桶策略 (Bucket Policy):

这是让你的网站文件可以被公开访问的关键一步。你需要编辑存储桶策略,允许所有用户("Principal": "*")对存储桶中的对象执行 s3:GetObject 操作。

示例存储桶策略:

JSON

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::你的桶名/*"
            ]
        }
    ]
}

请将 "你的桶名" 替换为你的实际存储桶名称。

启用静态网站托管:

在 S3 存储桶的“属性”选项卡中,找到“静态网站托管”部分,并选择“启用静态网站托管”。

指定你的索引文档(通常是 index.html)。

指定你的错误文档(例如 error.html,用于 404 错误)。

保存设置后,S3 会为你提供一个静态网站托管的端点 URL(例如 http://你的桶名.s3-website-区域.amazonaws.com)。现在,你就可以通过这个 URL 访问你的网站了。

配置自定义域名 (Custom Domain) 和 HTTPS (可选但推荐):

尽管 S3 提供了默认的网站端点 URL,但你通常会希望使用自己的自定义域名(如 example.com)。

为了实现自定义域名和 HTTPS,你需要使用 Amazon CloudFront (内容分发网络) 服务。

CloudFront 分配 (Distribution): 创建一个 CloudFront 分配,并将其源指向你的 S3 静态网站托管端点。

SSL/TLS 证书: 在 AWS Certificate Manager (ACM) 中为你的域名申请并配置免费的 SSL/TLS 证书。

Route 53 DNS 配置: 在 Amazon Route 53 (DNS 服务) 中为你的域名创建 CNAME 或 A 记录(如果使用别名记录),将其指向 CloudFront 分配的域名。

这样做的好处是:

HTTPS 加密: 提供安全的加密连接。

全球加速: CloudFront 会将你的内容缓存到全球各地的边缘站点,用户可以从离他们最近的边缘站点获取内容,大大提高网站加载速度。

更好的缓存控制和安全性: CloudFront 提供更高级的缓存策略和与 AWS WAF 集成以增强安全性。


过去考试题

静的Webサイトを低コストでホスティングしたい場合に使用できるサービスはどれですか。

  1. Amazon Glacier
  2. Amazon DynamoDB
  3. Amazon Elastic File System (Amazon EFS)
  4. Amazon Simple Storage Service (Amazon S3)



关注 收藏