源站存在安全防護(hù)等原因?qū)е略L問CDN域名報(bào)503錯(cuò)誤
問題描述
源站使用CDN加速后,訪問域名報(bào)503錯(cuò)誤。
問題原因
- 安全組規(guī)則限制訪問。
- 服務(wù)器配置了單IP訪問次數(shù)限制。
- Web服務(wù)異常或服務(wù)器超載。
- 系統(tǒng)存在云鎖、安全狗、防火墻等安全策略,攔截了CDN的回源IP。
解決方案
本文以源站為Linux系統(tǒng)的ECS服務(wù)器,且由Nginx服務(wù)提供Web服務(wù)為例,處理方法如下。
CDN讀取數(shù)據(jù)過程
CDN讀取數(shù)據(jù)全程如下。
客戶端 -> CDN L1層 -> CDN L2層 -> 源站
當(dāng)客戶端訪問您的源站資源時(shí),客戶端將先查看CDN的1級(jí)節(jié)點(diǎn),再查找CDN的2級(jí)節(jié)點(diǎn),如果2級(jí)節(jié)點(diǎn)沒有,再查找源站。源站中的數(shù)據(jù)同步到2級(jí)節(jié)點(diǎn),2級(jí)節(jié)點(diǎn)同步到1級(jí)節(jié)點(diǎn),再從1級(jí)節(jié)點(diǎn)返回給客戶端需要訪問的數(shù)據(jù)。對(duì)于源站來說,CDN的L2節(jié)點(diǎn)才是客戶端。
回源節(jié)點(diǎn)的IP地址
為了防止源站被攻擊,一些客戶希望阿里云CDN提供回源的節(jié)點(diǎn)IP,然后在源站設(shè)置IP白名單,只讓CDN回源的節(jié)點(diǎn)訪問源站。但是,由于CDN回源時(shí)會(huì)智能分配節(jié)點(diǎn)訪問您的源站服務(wù)器,回源的節(jié)點(diǎn)IP是不固定的,因此不建議您將源站服務(wù)器的回源策略設(shè)置為固定的節(jié)點(diǎn)IP列表,這樣可能會(huì)發(fā)生回源失敗的情況。
如果您有特殊業(yè)務(wù)需求,源站上有安全狗等防護(hù)軟件確實(shí)需要配置白名單,請調(diào)用接口DescribeL2VipsByDomain,獲取CDN回源的節(jié)點(diǎn)IP列表并添加到您源站服務(wù)器的白名單中,以免影響CDN回源獲取資源。但是該接口僅支持日峰值帶寬為1Gbps以上的用戶調(diào)用,如果您符合該條件,請您提交工單,申請?jiān)摻涌诘恼{(diào)用權(quán)限。
安全組規(guī)則限制
- 登錄ECS控制臺(tái)。
- 在實(shí)例列表頁面,選擇對(duì)應(yīng)的實(shí)例,單擊 管理。
- 選擇本實(shí)例安全組頁面,單擊 安全組列表。
- 查看正在使用的規(guī)則表,單擊 配置規(guī)則,根據(jù)需要添加或變更安全組規(guī)則即可。有關(guān)如何判斷IP地址是否為CDN的IP地址。有關(guān)如何獲取CDN的IP地址。
單IP訪問次數(shù)限制
- 遠(yuǎn)程連接Linux實(shí)例。
-
檢查Nginx服務(wù)的配置文件,修改ngx_http_limit_conn_module和ngx_http_limit_req_module配置項(xiàng)。本文以ngx_http_limit_req_module模塊為例,配置文件示例如下。
http { limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s; ... server { ... limit_req zone=perip burst=5 nodelay; }- ngx_http_limit_conn_module模塊用于限制每個(gè)定義的密鑰的連接數(shù),特別是單個(gè)IP地址的連接數(shù)。使用limit_conn_zone和limit_conn指令。
- ngx_http_limit_req_module模塊用于限制每一個(gè)定義的密鑰的請求的處理速率,特別是從一個(gè)單一的IP地址的請求的處理速率。使用泄漏桶方法進(jìn)行限制,使用limit_req_zone和limit_req指令。
- limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s; 配置項(xiàng)定義一個(gè)limit_req_zone用來存儲(chǔ)Session,其大小是10M內(nèi)存,以$binary_remote_addr為Key,限制平均每秒的請求為10個(gè)。
- limit_req zone=perip burst=5 nodelay; 配置項(xiàng)中啟用nodelay選項(xiàng),嚴(yán)格使用平均速率限制請求數(shù),超過的請求會(huì)被延時(shí)處理。
Web服務(wù)異常
- 遠(yuǎn)程連接Linux實(shí)例。
- 檢查Nginx服務(wù)的日志,根據(jù)具體錯(cuò)誤進(jìn)行排查修復(fù)。
-
執(zhí)行如下命令,重新啟動(dòng)Nginx服務(wù)。
注:該操作會(huì)影響業(yè)務(wù),請謹(jǐn)慎使用。
service restart nginx
安全策略攔截
設(shè)置各個(gè)安全產(chǎn)品的攔截策略,放行CDN的回源IP即可。
我公司為阿里云代理商,通過此頁面下單購買,新老阿里云會(huì)員,均可享受我公司代理商價(jià)格!


