解決使用騰訊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-CNContent-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,未命中列表,響應無變化。 |
原創不易,轉發請說明來源?http://www.osrr.com.cn/wp/2022/04/28/cdn-2/。
