使用Aliyun CDN实现根据请求前缀路由
leader要求只用一个域名,根据Path前缀可以路由到不同服务,比如访问Web页面、微服务接口调用、OSS、函数计算FC都用同一个域名。
做这个路由有什么好处了?
简化配置和管理,单一域名使得DNS、SSL证书和其他网络配置的管理变得相对简单和集中。所有的服务共享同一套配置,减少了配置的复杂度和管理开销。
网络性能优化,通过HTTP/2或HTTP/3协议,可以在同一域名下复用连接,减少了建立多个连接的开销,从而提高了网络性能。
跨域问题的简化,如果所有服务都在同一域名下,可以避免一些与跨域请求相关的问题和限制。
添加域名
1.添写好加速域名,区域按照需求来,业务类型选择小文件。
2.配置DNS,需要把加速域名转发到CNAME域名。
配置源站信息
配置基础源站
选择基础源站类型,因为主要目的是使用cdn实现路由,当找不到路由时会默认路由到基础源站,建议这里直接配置公司官网的域名或者404页面。
配置条件源站
配置规则条件
在配列表找到规则引擎进行添加,配置好规则。
将规则和源站域名进行绑定
源站地址填写好域名。
回源配置
回源是指通过客户端请求访问资源时,如果CDN节点上未缓存该资源,或者部署预热任务给CDN节点时,CDN节点会回源站获取资源,还可以根据业务的实际需要来配置回源相关功能。
指定源站回源HOST
选择所有源站即可
回源协议
回源协议支持HTTP
和HTTPS
,根据需求进行选择,一般选择跟随即可,这里是选择HTTPS
回源url修改
为什么需要修改回源URL?
因为需要前面使用了Path前缀作为路由,Path上有额外的参数,比如:路由到OSS新增了'\oss'的前缀,在回源时需要把'\oss'去掉,才能在oss中匹配到文件路径。
ali这边使用了PCRE正则表达式来对URL进行处理,文末有PCRE正则表达式的介绍。
待改写的Path、待改写的Path、执行规则的含义
补充
PCRE正则表达式
这里以^/oss/(.*)
和/$1
为例简单讲一下PCRE正则表达式
在PCRE正则表达式中,^/oss/(.*)
和 /$1
可以一起用于查找和替换操作。逐一解释下这两个表达式的功能,以及它们如何配合使用。
查找表达式
^/oss/(.\*)
:^
:指定模式必须从目标字符串的开始处匹配。/oss/
:指定模式必须包含字面字符串“/oss/”。(.*)
:捕获组,匹配“/oss/”后面的所有字符,并将它们保存为一个分组,以便稍后引用。
替换表达式
/$1
:/
:字面字符“/”。$1
:反向引用,表示查找表达式中第一个捕获组的内容。
配合使用: 在一个查找和替换操作中,你可以使用查找表达式 ^/oss/(.*)
来匹配目标字符串,然后用替换表达式 /$1
来生成新的字符串。$1
将被替换为查找表达式中捕获组的内容。
例子: 假设我们有一个字符串 /oss/documents/file.txt
,我们想要将 /oss
部分替换为单独的 /
。我们可以使用上述的查找和替换表达式来完成这个操作:
原始字符串:
/oss/documents/file.txt
查找表达式:
^/oss/(.*)
替换表达式:
/$1
结果字符串:
/documents/file.txt
在这个例子中,查找表达式匹配了原始字符串,并捕获了 documents/file.txt
。然后,替换表达式将 $1
替换为捕获组的内容,生成了新的字符串 /documents/file.txt
。
访问接口
访问接口必须使用POST请求,使用GET请求会缓存接口的返回信息!!!
访问接口必须使用POST请求,使用GET请求会缓存接口的返回信息!!!
访问接口必须使用POST请求,使用GET请求会缓存接口的返回信息!!!
评论