解决使用腾讯CDN后部分网站后台无法登陆的问题
网站使用CDN进行内容分发时,网站后台是不需要缓存的,需要在CDN后台将网站后台设置为不缓存,但仍然发现使用腾讯CDN时,有些网站后台仍然无法登陆,这通常是跨源资源共享错误问题。
解决办法如下:
1、打开腾讯云「内容分发网络 CDN」页面。
2、在左侧切换到「域名管理」界面,在右侧界面中选择加速的域名,这里也可以看到加速类型“CDN静态加速”、接入方式等。在这里选择「管理」。
3、在加速域名管理界面,选择「高级配置」。
4、打开「HTTP响应头配置」的配置状态。什么是“HTTP 响应头配置”?
响应头部配置是域名维度的,因此一旦配置生效,会对域名下任意一个资源的响应消息生效。配置响应头部仅影响客户端(如浏览器)的响应行为,不会影响到 CDN 节点的缓存行为。
5、选择「新增规则」,头部操作选择“设置”,头部参数有Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Max-Age、Access-Control-Expose-Headers、Content-Disposition、Content-Language和自定义。它们的区别可以查看腾讯官方文档(头部参数)。
头部参数
头部参数 | 说明 |
---|---|
Access-Control-Allow-Origin | 用于解决资源的跨域权限问题,域值定义了允许访问该资源的域。若来源请求 Host 在域名配置列表之内,则直接填充对应值在返回头部中。也可以设置通配符 “*”,允许被所有域请求。更多说明请见 Access-Control-Allow-Origin 匹配模式介绍。 支持输入“*” ,或多个域名 / IP / 域名与 IP 混填(必须包含 http:// 或 https:// ,填写示例:http://test.com,http://1.1.1.1 , 逗号隔开)(注意:输入框最多可输入1000字符)。 |
Access-Control-Allow-Methods | 用于设置跨域允许的 HTTP 请求方法,可同时设置多个方法,如下: Access-Control-Allow-Methods: POST, GET, OPTIONS 。 |
Access-Control-Max-Age | 用于指定预请求的有效时间,单位为秒。 非简单的跨域请求,在正式通信之前,需要增加一次 HTTP 查询请求,称为“预请求”,用来查明这个跨域请求是不是安全可以接受的,如下请求会被视为非简单的跨域请求: 以 GET、HEAD 或者 POST 以外的方式发起,或者使用 POST,但是请求数据类型为 application / x-www-form-urlencoded、 multipart / form-data、text / plain 以外的数据类型,如 application / xml 或者 text / xml。 使用自定义请求头为:Access-Control-Max-Age: 1728000 ,表明在1728000秒(20天)内,对该资源的跨域访问不再发送另外一条预请求。 |
Access-Control-Expose-Headers | 用于指定哪些头部可以作为响应的一部分暴露给客户端。 默认情况下,只有6种头部可以暴露给客户端:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。 如果想让客户端访问到其他的头部信息,可以进行如下设置,当输入多个头部时,需用 “,” 隔开,如: Access-Control-Expose-Headers: Content-Length,X-My-Header ,表明客户端可以访问到 Content-Length 和 X-My-Header 这两个头部信息。 |
Content-Disposition | 用来激活浏览器的下载,同时可以设置默认的下载的文件名。 服务端向客户端浏览器发送文件时,如果是浏览器支持的文件类型,如 TXT、JPG 等类型,会默认直接使用浏览器打开,如果需要提示用户保存,则可以通过配置 Content-Disposition 字段覆盖浏览器默认行为。常用的配置如下: Content-Disposition:attachment;filename=FileName.txt |
Content-Language | 用于定义页面所使用的语言代码。常用配置如下:Content-Language: zh-CN Content-Language: en-US |
自定义 | 支持添加自定义 Header,自定义 key-value 设置。 自定义头部参数:由大小写字母、数字及 – 组成,长度支持1 – 100个字符。 自定义头部取值:长度为1 – 1000个字符,不支持中文。 |
Access-Control-Allow-Origin 匹配模式介绍
匹配模式 | 域值 | 说明 |
---|---|---|
全匹配 | * | 设置为 * 时,则响应添加头部: Access-Control-Allow-Origin:* |
固定匹配 | http://cloud.tencent.com https://cloud.tencent.com http://www.b.com | 来源https://cloud.tencent.com ,命中列表,则响应添加头部: Access-Control-Allow-Origin: https://cloud.tencent.com 来源为 https://www.qq.com ,未命中列表,响应无变化。 |
二级泛域名匹配 | https://*.tencent.com | 来源 https://cloud.tencent.com ,命中列表,则响应添加头部: Access-Control-Allow-Origin: https://cloud.tencent.com 来源为 https://cloud.qq.com ,未命中列表,响应无变化。 |
端口匹配 | https://cloud.tencent.com:8080 | 来源为 https://cloud.tencent.com:8080 ,命中列表,则响应添加头部: Access-Control-Allow-Origin:https://cloud.tencent.com:8080 来源为 https://cloud.tencent.com ,未命中列表,响应无变化。 |
原创不易,转发请说明来源 https://www.rvvr.cn/wp/2022/04/28/cdn-2/。