回源指您通过客户端请求访问资源时,如果CDN节点上未缓存该资源,或者您部署预热任务给CDN节点时,CDN节点会回源站获取资源。您还可以根据业务的实际需要来配置回源相关功能。
回源工作原理
客户端发起请求:当用户访问一个网站时,客户端(例如浏览器)会向CDN节点发送一个请求,请求的URL指向CDN加速域名。
CDN节点查找缓存:CDN节点首先会检查自身的缓存中是否存在请求的资源。如果存在,CDN节点会直接返回缓存的资源给客户端,从而实现快速响应。
回源请求:如果CDN节点的缓存中不存在请求的资源,CDN节点会根据配置的回源策略,向源站发起回源请求。
回源获取资源:源站接收到CDN节点的回源请求后,根据请求的URL和参数,生成并返回相应的资源。
缓存资源:CDN节点在获取到源站返回的资源后,会将资源缓存到自身的缓存中,以便下次请求时能够直接返回缓存的资源。
返回响应:CDN节点将获取到的资源返回给客户端,完成整个请求-响应过程。
阿里云提供丰富的回源配置功能
功能 | 说明 | 文档链接 |
自定义CDN节点回源时需要访问的具体服务器域名 | 当您的源站的同一个IP地址上绑定了多个域名或站点时,您可配置回源HOST,CDN在回源时根据HOST信息去对应站点获取资源。 | |
自定义在CDN中明确指定回源的主机地址 | 当您的同一个加速域名配置了多个回源站点并且需要结合HOST头请求不同虚拟站点的资源时,您可使用指定源站回源HOST功能,为不同的源站配置不同的回源HOST。 | |
设置回源协议类型 | 回源协议指CDN节点回源站请求资源时使用的协议。配置该功能后,CDN节点将根据指定的协议回源到源站请求资源,同时支持自定义HTTP和HTTPS协议端口。 | |
OSS私有Bucket回源 | 当您的源站为OSS且Bucket设置为私有时,必须先打开阿里云OSS私有Bucket回源开关对CDN授权,才能实现CDN回源至私有OSS Bucket访问资源,从而有效防止资源盗链。 | |
指定CDN回源时具体访问的站点 | 当您的源站IP绑定了多个域名,CDN节点以HTTPS协议访问您的源站时设置回源SNI,CDN在回源时会根据设置的SNI访问具体域名获取资源。 | |
开启Common Name白名单 | 开启Common Name白名单功能后,CDN节点以HTTPS协议与源站建连时,将会对请求的SNI和源站返回证书的CommonName进行校验。 | |
设置CDN回源请求的最长等待时间 | 设置CDN回源请求的最长等待时间。当回源请求等待时间超过配置的超时时间时,CDN节点与源站的连接断开。 | |
根据不同的请求参数回源到不同的源站 | 高级回源可以根据客户端请求的Request Header、Query String Parameter、Path、Request Cookie不同参数回到不同的源站。 | |
指定是否由CDN节点代替用户处理302状态码的内容 | 配置回源301/302跟随功能,CDN节点会代替用户直接处理301/302状态码的内容。 | |
CDN节点支持以IPv6协议访问源站 | 通过配置IPv6回源,CDN节点将支持以IPv6协议访问源站,并且可以配置使用不同的回源策略(例如:回源优先使用IPv6地址、回源跟随客户端协议版本、回源IPv4/IPv6负载均衡)。 | |
添加、修改或删除回源HTTP请求头 | 改写回源请求中的HTTP Header。 | |
添加、修改或删除回源HTTP响应头 | 改写回源响应中的HTTP Header。 | |
回源URL改写 | 源站的资源路径发生了变更,客户源站的资源存放路径发生了变更,但是用户请求URL里面包含的资源路径没有变更,这时就需要CDN节点来改写回源请求里面的资源路径。 | |
配置回源参数改写 | 如果用户发起的原始请求URL中携带的参数与需要发送给源站的参数不一致,您可以通过回源参数改写功能改写回源请求URL中携带的参数。实现忽略所有参数、添加参数、删除参数、保留参数、修改参数等操作。 |