【设计模式】JAVA Design Patterns——Static Content Hosting(静态内容托管模式)

🔍目的


将静态内容部署到基于云的存储服务,该服务可以将它们直接交付给客户端。 这可以减少对昂贵计算实例的需求。

🔍解释


真实世界例子 

全球性的营销网站(静态内容)需要快速的部署以开始吸引潜在的客户。为了将托管费用和维护成本降至最低,使用云托管存储服务和内容交付网络。

通俗描述

静态内容托管模式利用云原生存储服务来存储内容和全球内容交付网络,将其缓存在世界各地的多个数据中心。 在静态网站上,单个网页包含静态内容。 它们还可能包含客户端脚本,例如 Javascript。相比之下,动态网站依赖于服务器端处理,包括服务器端脚本,如 PHP、JSP 或 ASP.NET。

维基百科

与由 Web 应用程序生成的动态网页相反,静态网页(有时称为平面网页或固定网页)是完全按照存储的方式传送到用户的网页浏览器的网页。静态网页适用于从不或很少需要更新的内容,尽管现代Web 模板系统正在改变这一点。可以将大量静态页面作为文件进行维护,没有自动化工具(例如静态站点生成器)是不切实际的。

示例

Static Content Hosting 

我们使用AWS S3创建一个静态网站,并利用 AWS Cloudfront 在全球范围内分发内容。

  1. 首先你需要一个AWS账户,你可以在这个创建一个免费的:AWS Free Tier

  2. 登陆 AWS控制台

  3. 进入身份和接入管理服务 (IAM) .

  4. 创建一个仅具有此应用程序必要权限的IAM用户。

    • 点击 用户
    • 点击 添加用户. 选择你想要的 用户名, 接入类型应该是 编程式接入.
    • 点击 下一步: 权限.
    • 选择 直接附加已存在的策略.
    • 选择 AmazonS3FullAccess 和 CloudFrontFullAccess.
    • Click 下一步: 标签.
    • 没有需要的标签, 所以直接点击 下一步: 回顾.
    • 检查呈现的信息,没问题的话点击创建用户
    • 完成这个示例所需要的访问秘钥Id访问秘钥密码将会呈现在你面前,请妥善保管。
    • 点击 关闭.
  5. 安装AWS命令行工具(AWS CLI)来获得编程式访问AWS云。

  6. 使用aws configure命令来配置AWS CLI 

  7. 为web站点创建AWS S3 bucket。 注意S3 bucket名字必须要在全球范围内唯一。

    • 语法是 aws s3 mb <bucket name> 
    • 比如 aws s3 mb s3://my-static-website-jh34jsjmg
    • 使用列出现有存储桶的命令aws s3 ls验证存储桶是否已成功创建
  8. 使用命令aws s3 website来配置bucket作为web站点。

    • 比如aws s3 website s3://my-static-website-jh34jsjmg --index-document index.html --error-document error.html
  9. 上传内容到bucket中。

    • 首先创建内容,至少包含index.htmlerror.html文档。
    • 上传内容到你的bucket中。 
    • 比如aws s3 cp index.html s3://my-static-website-jh34jsjmg and aws s3 cp error.html s3://my-static-website-jh34jsjmg
  10. 然后我们需要设置bucket的策略以允许读取访问。

    • 使用以下内容创建policy.json(注意需要将bucket名称替换为自己的)
    • {"Version": "2012-10-17","Statement": [{"Sid": "PublicReadGetObject","Effect": "Allow","Principal": "*","Action": "s3:GetObject","Resource": "arn:aws:s3:::my-static-website-jh34jsjmg/*"}]
      }
      

后续步骤

  1. 根据这些设置桶策略
    • 比如 aws s3api put-bucket-policy --bucket my-static-website-jh34jsjmg --policy file://policy.json
  2. 使用浏览器测试web站点。

    • web站点的URL格式是 http://<bucket-name>.s3-website-<region-name>.amazonaws.com
    • 比如 这个站点创建在 eu-west-1 区域 ,名字是 my-static-website-jh34jsjmg 所以它可以通过 http://my-static-website-jh34jsjmg.s3-website-eu-west-1.amazonaws.com来访问。
  3. 为web站点创建CloudFormation 分发。

  4. 比如,最简单的方式是使用命令 aws cloudfront create-distribution --origin-domain-name my-static-website-jh34jsjmg.s3.amazonaws.com --default-root-object index.html

  5. 也支持JSON格式的配置 比如使用 --distribution-config file://dist-config.json 来传递分发的配置文件参数

  6. 命令的舒勇将显示准确的分配配置项,包括包括可用于测试的生成的 CloudFront 域名,例如 d2k3xwnaqa8nqx.cloudfront.net

  7. CloudFormation 分发部署需要一些时间,但一旦完成,您的网站就会从全球各地的数据中心提供服务!

  8. 这样! 就实现了一个静态网站,其内容分发网络以闪电般的速度在世界各地提供服务。

🔍适用场景


当您想要执行以下操作时,请使用静态内容托管模式:

  • 最小化包含一些静态资源的网站和应用程序的托管成本。
  • 使用静态内容构建全球可用的网站
  • 监控网站流量、带宽使用、成本等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/841212.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个机器学习问题的重新定义

任何事物都有两面性。 一些机器学习问题也是如此。并非每个回归问题&#xff08;你认为的&#xff09;都需要回归。仔细考虑和审视问题的业务不仅可以帮助开发更好的模型&#xff0c;还可以找到有效的解决方案。 重构或重新定义&#xff08;reframing&#xff09;是一种改变机…

如何用ai打一场酣畅淋漓的数学建模比赛? 给考研加加分!

文章目录 数学建模比赛1. 数学建模是什么&#xff1f;2. 数学建模分工合作2.1 第一&#xff1a;组队和分工合作2.2 第二&#xff1a;充分的准备2.3 第三&#xff1a;比赛中写论文过程 3. 数学建模基本过程4. 2023全年数学建模竞赛时间轴5. 数学建模-资料大全6. 数学建模实战 数…

【feature selection】特征选择学习笔记

文章目录 1. 什么是特征选择2. 特征选择与特征提取的区别3. 特征选择的方法3.1 Filtering过滤法3.2 Wrapper包装法3.3 Embedding嵌入法 4. 特征选择示例4.1 方差选择法示例4.2 递归特征消除法示例 1. 什么是特征选择 特征选择是特征工程的内容, 其目标是寻找最优特征子集。剔除…

MTK下载AP

只升级选Firemare Upgrade &#xff0c;点下载后&#xff0c;关机下插入USB

无人机反制:光电干扰一体设备技术详解

一、光电干扰技术原理 光电干扰技术是一种利用光学和电子技术手段对无人机实施干扰和控制的先进技术。该技术通过向无人机发射特定频率和强度的光信号或电磁信号&#xff0c;干扰无人机的视觉系统、控制系统或通信链路&#xff0c;进而达到反制无人机的目的。光电干扰技术具有…

N进制计数器【01】

N进制计数器 前面介绍过二进制计数器和十进制计数器&#xff0c;但是在很多时候需要到其他进制的计数器&#xff0c;我们把这些任意进制的计数器简称为 N 进制计数器 设计 N 进制计数器的方法有两种&#xff1a; 用时钟触发器和门电路设计&#xff08;前面常用的方法&#xf…

垃圾回收机制及算法

文章目录 概要对象存活判断引用计数算法可达性分析算法对象是否存活各种引用 垃圾收集算法分代收集理论复制算法标记清除算法标记-整理算法 概要 垃圾收集&#xff08;Garbage Collection&#xff0c; 下文简称GC&#xff09;&#xff0c;其优缺点如下&#xff1a; 优点&#…

Nature Communications | 柔性半导体器件的大规模集成(柔性半导体器件/柔性电子)

韩国中央大学Sung Kyu Park、 韩国成均馆大学Jong-Woong Kim和Yong-Hoon Kim团队,在《Nature Communications》上发布了一篇题为“Full integration of highly stretchable inorganic transistors and circuits within molecular-tailored elastic substrates on a large scal…

OZONBIGSELL分析产品工具,OZON平台数据分析

在当今的数字化时代&#xff0c;电商平台的竞争日趋激烈&#xff0c;数据成为了企业决策的重要支撑。OZON作为俄罗斯领先的电商平台&#xff0c;其背后蕴含的海量数据对于卖家而言&#xff0c;既是挑战也是机遇。接下来看看OZONBIGSELL这一分析产品工具&#xff0c;以及如何利用…

等保2.0看这一篇就够了

一、等级保护介绍 1.1什么是等级保护 网络安全等级保护是指对国家重要信息、法人和其他组织及公民的专有信息以及信息和存储、传输、处理这些信息的信息系统分等级实行安全保护&#xff0c;对信息系统中使用的信息安全产品实行按等级管理&#xff0c;对信息系统中发生的信息安…

ROS | C++和python实现发布结点和订阅结点

发布者结点&#xff1a; 代码实现&#xff1a; python: C: C和Python发布结点的差异&#xff1a; python: 发布结点pub 大管家rospy调用publisher函数发布话题 (话题,类型&#xff0c;话题长度&#xff09; C: 先定义一个大管家&#xff1a;NodeHandle 然后大管家发布话题…

C# NetworkStream 流的详解与示例

文章目录 一、NetworkStream类的基本概念1.1 NetworkStream类概述1.2 NetworkStream类属性1.3 NetworkStream类方法 二、NetworkStream的连接方式三、NetworkStream的传输模式四、NetworkStream类示例服务器端代码&#xff1a;客户端代码&#xff1a; 五、总结 在C#中&#xff…

VS Code添加高亮缩进功能

当代码缩进层次较多时&#xff0c;为了视觉上容易识别&#xff0c;一般希望可以多个缩进以不同颜色进行高亮显示&#xff0c; VS Code 中 indent-rainbow 插件可以实现这个功能。

python列表生成式的魅力:轻松创建新列表

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 1. 列表生成式的基本结构 2. 列表生成式的进阶应用 3. 结合其他结构使用列表生成式 1. 列表…

HTML静态网页成品作业(HTML+CSS)——利物浦足球俱乐部介绍网页设计制作(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;共有5个页面。 二、作品演示 三、代码目录 四、网站代码 HTML部分代…

校园招新之获取进QQ群但未报名人员

校园的社团、实验室招新一般由是校领导会发一个QQ通知&#xff0c;让各个班的同学们进一个招新群。 群里面会有负责人提示大家报名&#xff0c;但是群成员不总是都会报名&#xff0c;我们需要的就是&#xff0c;找到那些&#xff0c;已经进群&#xff0c;但是没有报名的同学&am…

ELK 日志监控平台(一)- 快速搭建

文章目录 ELK 日志监控平台&#xff08;一&#xff09;- 快速搭建1.ELK 简介2.Elasticsearch安装部署3.Logstash安装部署4.Kibana安装部署5.日志收集DEMO5.1.创建SpringBoot应用依赖导入日志配置文件 logback.xml启动类目录结构启动项目 5.2.创建Logstash配置文件5.3.重新启动L…

当HR问你是否单身时,该怎么回答?

知识星球&#xff08;星球名&#xff1a;芯片制造与封测技术社区&#xff0c;星球号&#xff1a;63559049&#xff09;里的学员问&#xff1a;我是晶圆厂厂务工程师&#xff0c;最近在面试新工作&#xff0c;但是几乎每家HR都会问我同一个问题&#xff1a;你结婚没有&#xff1…

解密Spring Boot Starter与自动配置:探秘神奇的背后

starter可以理解为Spring Boot中的一站式集成启动器&#xff0c;包含了一系列可以集成到应用中的依赖项&#xff0c;可以快递集成spring组件及其框架&#xff0c;而不需要到处找示例代码。 一、为什么要用starter&#xff1f; 在springboot还没有出来之前&#xff0c;我们使用…

wps使用(解决毕业论文)

目录自动生成 页码自动生成 一部分使用I II III IV 格式&#xff0c;一部分使用1&#xff0c;2&#xff0c;3&#xff0c;4 格式 先设置全部文章为I II III IV 格式&#xff0c;然后再需要的地方再设置1&#xff0c;2&#xff0c;3&#xff0c;4 格式 一键设置中文、英文、数…