架构设计基础设施保障IaaS之网络

news2024/12/24 10:14:32

目录

  • 1 DNS运用
    • 1.1 DNS功能作用
    • 1.2 DNS配置实践
  • 2 DNS生产最佳实践方案
    • 2.1 全球加速功能
    • 2.2 不同运营商的加速方案
    • 2.3 全球业务高可用方案
    • 2.4 跨地域负载均衡
  • 3 DNS域名劫持解决方案
  • 4 CDN剖析
    • 4.1 CDN原理
    • 4.2 缓存过期配置处理流程
    • 4.3 缓存配置规则
  • 5 CDN运用
  • 6 CDN最佳实践方案
    • 6.1 ECS源站加速
    • 6.2 OSS资源加速
    • 6.3 CDN缓存命中率优化


1 DNS运用

在这里插入图片描述

1.1 DNS功能作用

  • 负载均衡

    DNS负载均衡, 原理是给用户返回不同的IP地址, 例如:

    主机记录记录类型线路类型记录值TTL
    wwwA默认200.202.101.1600
    wwwA默认200.202.101.2600
    wwwA默认200.202.101.3600
    wwwA默认200.202.101.4600

    解析返回得到的 IP 地址是可以是轮询, 也可以是随机得到的 IP 地址

  • 健康检查:

    支持ping、telnet、http(s)协议实时健康检查,获取应用服务运行状态。

  • 故障切换

    支持根据健康检查结果自动或者手工进行failover切换操作,实现主备切换、自动修改故障域名的解析,对异常的地址(服务)进行故障隔离或切换。

  • 智能DNS

    支持根据不同运营商、区域进行智能DNS解析,实现用户就近访问。

  1. 阿里云DNS免费版 vs 付费版

    参数项参数值免费版
    最低TTL值最低1秒最低2秒
    子域名级别最高10级最高2级
    A记录负载均衡带权重的A记录轮询,最多支持90条带权重的A记录轮询,最多支持10条
    URL转发URL显性转发+URL隐性转发,最多支持6条URL显性转发+URL隐性转发,最多支持2条
    泛解析
    运营商线路默认、移动、联通、电信、教育网默认、移动、联通、电信、教育网
    运营商线路细分移动(省份)、联通(省份)、电信(省份)、教育网(省份),共135条线路不支持
    海外线路细分亚洲、大洋洲、欧洲、北美、南美、非洲 6大洲34个国家及地区海外
    搜索引擎线路搜索引擎、谷歌、百度、必应、有道、雅虎谷歌、百度、必应

    更多区别, 详情

1.2 DNS配置实践

主要步骤: 创建实例 -> 配置访问策略 -> 主域名设置CNAME解析到实例的CNAME接入域名。

  • 创建两台虚拟机

    两台虚拟机都部署相同的服务(app-server), 用于高可用的测试验证。

  • 创建地址池

    这里指向一台主节点。

在这里插入图片描述

  • 访问策略配置

在这里插入图片描述

配置地址池信息, 如果出现故障, 可以自动切换至备用地址池。

备用地址池指向另外一台云服务器。

在这里插入图片描述

  • 全局配置

在这里插入图片描述

这里可以采用系统分配生成的cname域名, 主域名是用户访问应用服务使用的域名,必须填写真实主域名, 这里主域名是配置: test.mirson.cn。

  • 开启健康检查

在这里插入图片描述

需要对地址池里的IP地址配置健康检查,以获取应用服务的可用性,从而达到根据应用服务地址可用性的状态实现自动故障隔离以及故障自动切换。

  • DNS解析设置

    最后, 在解析设置里面, 添加记录。这里面的记录值要填写上面所设置的cname域名信息。

在这里插入图片描述

  • 测试

    通过访问test.mirson.cn会指向连接池所配置的IP信息。

在这里插入图片描述

通过域名进行访问:

在这里插入图片描述

  • 故障测试

    将地址池改为218.253.0.76不可用地址或停止服务, 开启健康检查后,会自动出现报警提示,并切换为备用地址池。

在这里插入图片描述

查看告警日志, 可以看到详细信息

在这里插入图片描述

访问服务:

在这里插入图片描述

2 DNS生产最佳实践方案

2.1 全球加速功能

全球加速可以为不同地域的客户端智能返回不同的加速IP,降低解析时延,如果是面向国际的服务,是需要开启此功能, 如果只是国内使用, 可以不用开启。

在这里插入图片描述

  • 华东区域客户端访问Web服务会智能解析到全球加速上海加速IP。
  • 华东以外的其他中国内地区域客户端访问Web服务会智能解析到全球加速北京加速IP。
  • 境外区域客户端访问Web服务会直接走境外线路到美国(硅谷)源站IP。

详细操作, 查阅官方文档。

2.2 不同运营商的加速方案

不同运营商会有自身专有的网络, 如果跨运营商访问存在不稳定的情况, 可以开启此功能。

实现原理:

在这里插入图片描述

  • 联通用户通过域名,访问应用服务的联通IP地址:1.1.1.1 。
  • 移动用户通过域名,访问应用服务的移动IP地址:2.2.2.2 。
  • 其他用户通过域名,访问应用服务的默认电信IP地址:3.3.3.3 。

详细操作, 查阅官方文档。

2.3 全球业务高可用方案

部署方案:

在这里插入图片描述

为了实现全球用户都能获得较好的访问质量,通常企业会在中国大陆和海外分别部署至少两套以上的接入服务点,后端数据服务仍然使用一套。通过DNS服务,对于不同地区的用户请求流量做智能调度,将用户访请求流量路由至不同的接入服务点。出现故障灾难时,各接入站点自建互相备份,最终实现业务的高可用。

操作配置说明

2.4 跨地域负载均衡

企业应用服务一般会有多个IP,且多个IP地址可能分布于不同地区。可以采用流量平均分配原则,对多个IP地址进行负载均摊,实现用户访问同一个应用服务域名时多个IP地址同时承担用户的访问请求。

实现方案:

在这里插入图片描述

平均分配与加权分配配置

3 DNS域名劫持解决方案

  1. 域名劫持

    域名劫持又称DNS劫持,是指在劫持的网络范围内拦截域名解析的请求,域名劫持通常相伴的措施是封锁正常DNS的IP, 这样就可以采用虚假的IP来代替真实的IP。

    常见的域名劫持问题:

    • 广告劫持:用户正常页面指向到广告页面。
    • 恶意劫持:域名指向IP被改变,将用户访问流量引到挂马,盗号等对用户有害页面的劫持。
    • 本地DNS缓存:为了降低跨网流量及用户访问速度进行的一种劫持,导致域名解析结果不能按时更新。
  2. HTTPDNS解决方案

    HTTPDNS是仅面向移动App域名劫持解决方案,具有域名防劫持、精准调度的特性。

    优势特性:

    • 域名防劫持

      域名解析请求直接发送至HTTPDNS服务器,绕过运营商Local DNS,避免域名劫持问题。

    • 调度精准

      直接获取客户端 IP ,基于客户端 IP 获得最精准的解析结果,让客户端就近接入业务节点。

    • 实时生效

      可以实现毫秒级低解析延迟的域名解析效果。

  3. 使用配置

    流程:

在这里插入图片描述

操作配置

4 CDN剖析

4.1 CDN原理

在这里插入图片描述

  1. 当终端用户(北京)向www.a.com下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。

  2. LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。

  3. 当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。

  4. 域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。(用户从北京访问,返回最近的北京节点信息。)

  5. LDNS获取DNS返回的解析IP地址。

  6. 用户获取解析IP地址。

  7. 用户向获取的IP地址发起对该资源的访问请求。

    • 如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户。

    • 如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。

      可以根据缓存策略做相应配置(针对静态资源配置指定目录和文件后缀名的缓存过期时间和优先级,资源过期后,自动从CDN节点删除。)

4.2 缓存过期配置处理流程

在这里插入图片描述

4.3 缓存配置规则

默认的缓存时间计算规则, 要符合3个条件:

  • t =(curtime-last_modified)*0.1 【结果是时间差的10%】
  • t = max(10s,t) 【最小要大于10S】
  • t = min(t,3600s)【最大不能超过3600s】

缓存规则示例解析:

  • 如果last-modified20140801 00:00:00,当前时间为20140801 00:01:00, (curtime-Last_modified)*0.1=6s,那么缓存时间为10s(因为最小值要大于10s)。
  • 如果last-modified20140801 00:00:00,当前时间为20140802 00:00:00,(curtime-Last_modified)*0.1=8640s,那么缓存时间为3600s。
  • 如果last-modified20140801 00:00:00,当前时间为20140801 00:10:00`,(curtime-Last_modified)*0.1=60s,那么缓存时间为60s。

5 CDN运用

  1. 验证域名所属权

在这里插入图片描述

  1. 域名验证设置

    如果是阿里云申请的域名, 设置起来比较简单, 直接添加一条验证记录:

在这里插入图片描述

如果是其他第三方域名, 可以采用文件验证方式。

在这里插入图片描述

下载verification.html验证文件,上传到您的域名源站服务器的根目录。

  1. 添加域名

在这里插入图片描述

这里所填写的加速域名是需要先备案。

业务类型有五种, 根据需要选择不同配置:

  • 图片小文件

    内容多为小型的静态资源 (如小文件、图片、网页样式文件等),推荐您选择图片小文件业务类型。

  • 大文件下载

    内容为较大的文件(大于20MB的静态文件),推荐选择大文件下载业务类型。

  • 视频点播加速

    如果需要加速音频或视频文件,例如音乐、视频的点播业务场景,推荐选择此类型。

  • 全站加速

    网站或应用含有大量动静态内容混合,且较多为动态资源请求,可以使用全站加速,静态内容高速缓存,动态内容通过阿里云的最优链路算法及协议层优化快速回源获取。

  • 安全加速

    网站易遭受攻击且必须兼顾加速的业务场景,则需要使用安全加速功能,提升全站安全性。例如金融交易、电商网站等。

  1. 配置CNAME

    阿里云的配置流程:

    • 记录加速域名的CNAME地址

在这里插入图片描述

  • 添加CNAME记录

在这里插入图片描述

 这里的记录值,填写上面的CNAME地址。
  1. 验证CNAME配置是否生效

在这里插入图片描述

如果返回的解析结果和CDN控制台上该加速域名的CNAME值一致,则表示CDN加速已经生效。

6 CDN最佳实践方案

6.1 ECS源站加速

通过阿里云CDN实现ECS上静态资源加速, ECS上可存储的资源包括静态资源和动态资源。

访问ECS上的资源时,动态资源请求直接返回,静态资源通过CDN实现访问加速,由CDN节点返回。

在这里插入图片描述

操作步骤:

  1. 在CDN控制台上,添加ECS域名。

    源站信息, 可以填写IP或源站域名

    • 填写服务器外网IP,支持多个服务器外网IP。
    • 填写源站域名,支持多个源站域名。
  2. 在CDN控制台上,获取CNAME值。

  3. 在DNS控制台上, 配置CNAME值。

  4. 通过PING命令,验证CNAME配置是否生效。

详细操作

6.2 OSS资源加速

  1. 背景

    OSS源站上存储的静态资源包括静态脚本、图片、附件等信息,当用户访问静态资源时,CDN对OSS源站上的静态资源进行加速,源站上的资源缓存到CDN的加速节点,系统自动调用离终端用户最近的CDN节点上已缓存的资源。加速OSS架构如下图所示。

在这里插入图片描述

  1. 方案优势:

    • 用户访问网站资源,全部通过CDN,降低源站压力。
    • 使用CDN流量,单价低于OSS直接访问外网流量。
    • 资源从距离客户端最近的CDN节点获取,减少网络传输距离,保证静态资源质量。
  2. 操作配置:

    1. 在CDN控制台上,添加OSS域名, 并记录加速域名的CNAME值。

    2. 在阿里云云解析DNS控制台上,配置加速域名的CNAME值。

    3. 通过PING命令, 验证CNAME配置是否生效。

    4. 在OSS控制台上,打开加速域名的CDN缓存自动刷新开关。

      执行本操作后,如果Object有更新,OSS会自动将更新后的Object刷新到CDN的缓存节点上,从而实现文件更新后实时刷新缓存的功能。

详细操作说明

6.3 CDN缓存命中率优化

  1. 背景

    在实际应用中, 如果CDN缓存命中率低,则会导致源站压力大,静态资源访问效率低。

    需要选择对应的优化策略,来提高CDN的缓存命中率。

    CDN缓存命中率包括:

    • 字节缓存命中率: CDN缓存命中响应的字节数 / CDN所有请求响应的字节数。
    • 请求缓存命中率: CDN缓存命中的请求数 / CDN所有的请求数。

    字节缓存命中率越低,回源流量越大,回源流量代表了源站服务器接收到的负载压力。

  2. 查看CDN缓存命中率

    CDN控制台提供的缓存命中率监控是字节缓存命中率:

在这里插入图片描述

  1. 优化方案

    • 预热URL

      在业务高峰前预热热门资源,再次访问该资源时,直接从CDN节点获取,从而提升CDN的缓存命中率。

      详细操作

    • 配置资源缓存规则

      当静态资源未返回响应头EtagLast-modified时,缓存失败会导致CDN缓存命中率低,可以针对该资源配置缓存规则,提升缓存命中率。

      详细操作

    • 过滤URL中可变参数

      当URL请求中带有queryString或其他可变参数时,资源重新回源,会导致CDN缓存命中率降低。

      可以针对可变参数开启参数过滤功能,提升资源的缓存命中率。

      详细操作

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

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

相关文章

NSSCTF web 刷题记录1

文章目录 前言题目[GXYCTF 2019]禁止套娃方法一方法二 [NCTF 2019]Fake XML cookbook[NSSRound#7 Team]ec_RCE[NCTF 2018]Flask PLUS 前言 今天是2023.9.3,大二开学前的最后一天。老实说ctf的功力还是不太够做的题目太少,新学期新气象。不可急于求成&am…

批量重命名、转换格式,让你的视频焕然一新!

你是否曾经遇到过需要批量重命名或转换视频格式的情况?在这个数字化时代,我们经常需要处理大量的视频文件,但是命名混乱、格式不兼容等问题常常让我们头疼。现在,我们为你提供了一个全面、高效的解决方案,让你的视频管…

JVM类的加载相关的问题

JVM类的加载相关的介绍 学习类的加载的加载过程对深入理解JVM有十分重要的作用,下面就跟我一起学习JVM类的加载过程吧! 文章目录 JVM类的加载相关的介绍一、类的加载过程二、双亲委派机制1、类加载器的种类2、为什么JVM要分成不同的类的加载器3、类的加…

AIGC风暴席卷出版业,探索人工智能与创造力的融合

随着时代的不断发展,人工智能技术正逐渐深入并改变着各行各业,其中包括传统的出版行业。最近独家连载于微信读书的刑侦小说《马一鸣从警记》的成功,以及其中使用到的AI工具在策划、编校、推广和封面设计上的辅助,不仅为出版行业带…

windows下的mysql安装部署和配置环境

目录 一、下载(mysql下载链接) 1.进入官网选择下载 2.拉到最底下,选择社区版下载 3.选择mysql community server 4.选择数据库版本,以及系统和安装方式(这里我选的msi) 5.直接点击no thanks,just sta…

Unity 安卓(Android)端AVProVideo插件播放不了视频,屏幕一闪一闪的

编辑器运行没有问题,但是安卓就有问题,在平板上运行就会报错: vulkan graphics API is notsupported 说不支持Vulkan图形API,解决方法:把Vulkan删除掉

NPM 常用命令(二)

目录 1、npm bugs 1.1 配置 browser registry 2、npm cache 2.1 概要 2.2 详情 2.3 关于缓存设计的说明 2.4 配置 cache 3、 npm ci 3.1 描述 3.2 配置 install-strategy legacy-bundling global-style omit strict-peer-deps foreground-scripts ignore-s…

文心一言 VS 讯飞星火 VS chatgpt (86)-- 算法导论8.2 3题

三、用go语言,假设我们在 COUNTING-SORT的第 10行循环的开始部分,将代码改写为: 10 for j 1 to A.length 试证明该算法仍然是正确的。它还稳定吗? 文心一言: 首先,让我们先明确 COUNTING-SORT 算法的基本思想。COUNTING-SOR…

Java学习笔记之----I/O(输入/输出)二

【今日】 孩儿立志出乡关,学不成名誓不还。 文件输入/输出流 程序运行期间,大部分数据都在内存中进行操作,当程序结束或关闭时,这些数据将消失。如果需要将数据永久保存,可使用文件输入/输出流与指定的文件建立连接&a…

kubernetes/cluster/addons/fluentd-elasticsearch

#发文福利# 一、前言 kubernetes 1.23搭建EFK所用到的yaml文件,本帖均来自kubernetes官方,且没做修改。 https://github.com/kubernetes/kubernetes/tree/release-1.23/cluster/addons/fluentd-elasticsearch 二、EFK 原版yaml 1、create-logging-na…

【Unity3D】UI Toolkit元素

1 前言 UI Toolkit简介 中介绍了 UI Builder、样式属性、UQuery、Debugger,UI Toolkit容器 中介绍了 VisualElement、ScrollView、ListView、GroupBox 等容器,本文将介绍 UI Toolkit 中的元素,主要包含 Label、Button、TextField、Toggle、Ra…

Nerd Font 字体安装

一、Nerd Font 是什么? Nerd Font 是为开发人员准备的,具有大量字形(图标)的字体。特别是从流行的“标志性字体”中添加大量额外的字形,如Font Awesome、Devicons、Octicons等。 二、安装步骤 1.克隆仓库 git clon…

【上海迪士尼度假区】技术解决方案

开源平台地址Giteehttps://gitee.com/issavior/disney 技术解决方案 1. 背景2. 技术架构3. 业务架构3.1 架构图3.2 说明 4. 技术能力4.1 自研中间件4.2 定制化中间件 5. 领域模型6. 数据模型7. 交易链路8. 状态机8. 接口文档 1. 背景 上海迪士尼度假区已运营近10年&#xff0c…

【微服务部署】四、Jenkins一键打包部署NodeJS(Vue)前端项目步骤详解

本文介绍使用Jenkins一键将NodeJS(Vue)前端项目打包并上传到生产环境服务器,这里使用的是直接打包静态页面,发送到远程服务器Nginx配置目录的方式,首先确保服务器环境配置好,安装Nginx,运行目录…

微软拼音输入法配置小鹤双拼

实现微软拼音能够使用小鹤双拼,再也不用下载搜狗输入法了 winR输入regedit,打开注册表 计算机\HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS新建字符串值: 名字为:UserDefinedDoublePinyinScheme0值为 &#…

加杠杆平台怎么样_哪个平台可以给股票加杠杆?配先查

加杠杆是一种投资策略,以小额的资金进行更大规模的投资交易。这种策略通常在金融市场中使用,包括股票市场。然而,加杠杆投资并非适合所有人,因为它带有更高的风险和潜在的损失。那么哪个平台可以给股票加杠杆? 通过配先…

手写Mybatis:第12章-完善ORM框架,增删改查操作

文章目录 一、目标:完善增删改查二、设计:完善增删改查三、实现:完善增删改查3.1 工程结构3.2 完善增删改查类图3.3 扩展解析元素3.4 新增执行方法3.4.1 执行器接口添加update3.4.2 执行器抽象基类3.4.3 简单执行器 3.5 语句处理器实现3.5.1 …

CS420 课程笔记 P7 - 虚拟内存 多级指针寻址

文章目录 IntroPointersMemory leaksPointer pathPointer scanningExample! Intro 上节课我们学习了静态地址,这节课我们将着手关注动态地址,我们需要了解一个叫做指针的东西 Pointers 简单地说,指针是对象之间的单向连接 Pointers are co…

【 BlockChain 】零知识证明

【 BlockChain 】零知识证明 一、零知识证明起源 “零知识”的概念最早在80年代由麻省理工学院的研究人员 Shafi Goldwasser,Silvio Micali 和 Charles Rackoff 所提出。当时这些人正在研究与交互证明系统相关的问题——即一种理论系统,使得甲方&#…

QT6删除旧的编译文件,编译会出错,可以选择重新选择编译

QT6工程文件和编译文件的路径关系 下面是显示的工程情况 可能编译文件全部被删除,或者部分缺失 编译问题出现后的处理办法 删去编译工程时添加的内容,其中主要修改CMakeLists.txt中添加的内容,例如添加的路径或resource内容,可…