ALB擴充版支援將請求轉寄至DNS網域名稱類型的後端服務。使用者可以使用OSS儲存靜態資源,由ALB擴充版統一調度請求,通過VPC內網轉寄至OSS,實現前後端分離架構的同時,降低公網流量成本並提升訪問穩定性。
方案架構
擴充版ALB執行個體接收用戶端請求,將請求通過VPC內網轉寄至DNS網域名稱伺服器組中配置的OSS Bucket訪問網域名稱,並將Bucket的響應返回給用戶端。需要處理其他請求時,按需添加後端服務並配置轉寄規則即可。
-
擴充版ALB執行個體:提供負載平衡和流量轉寄能力。
-
HTTPS監聽:接收用戶端請求。
-
DNS網域名稱類型伺服器組:配置OSS Bucket的訪問網域名稱作為後端服務。
-
OSS Bucket:儲存網站靜態資源。
適用範圍
-
使用者已擷取ALB擴充版公測資格。
-
使用者已在華北6(烏蘭察布)地區建立一個Virtual Private Cloud,分別在可用性區域A和可用性區域B建立一個交換器。
-
使用者已註冊自訂網域名,並已完成ICP備案。本方案中的OSS Bucket和ALB執行個體均部署於華北6(烏蘭察布)地區,綁定到OSS Bucket的網域名稱以及用戶端訪問ALB執行個體的網域名稱都需要完成ICP備案後才能使用。
-
使用者已準備好與自訂網域名匹配的伺服器憑證。非阿里雲購買的認證需要上傳到阿里雲認證服務。
操作步驟
1.建立OSS Bucket並配置靜態網站託管
建立OSS Bucket,配置公用讀取許可權,上傳靜態頁面檔案,並啟用靜態網站託管功能。
建立OSS Bucket
-
登入OSS管理主控台,在左側導覽列單擊Bucket列表,然後單擊建立 Bucket。
-
在建立 Bucket面板,完成以下配置,其他配置項保留預設值,單擊完成建立並確認。
-
Bucket 名稱:設定Bucket名稱,需全域唯一。
-
地區:選擇華北6(烏蘭察布)。
-
配置Bucket許可權
-
在Bucket列表中,單擊目標Bucket 名稱進入Bucket詳情頁。
-
在左側導覽列,單擊許可權控制 > 阻止公用訪問,關閉阻止公用訪問開關,並在彈出的對話方塊中進行確認。
-
切換到讀寫權限頁簽,單擊設置按鈕,將Bucket ACL修改為公用讀取,確認後單擊保存。
上傳靜態頁面檔案
-
在左側導覽列,單擊文件管理 > 檔案清單,然後單擊上傳文件。
-
上傳以下樣本的靜態網頁
index.html,文件 ACL選擇繼承Bucket。
<html>
<head>
<title>Hello OSS!</title>
<meta charset="utf-8">
</head>
<body>
<p>Start Alibaba Cloud OSS Hosting</p>
<p>This is the index page</p>
</body>
</html>
-
繼續上傳
404.html檔案,文件 ACL選擇繼承Bucket。
<html>
<head>
<title>Page Not Found</title>
<meta charset="utf-8">
</head>
<body>
<p>The page you are looking for does not exist</p>
<p>You can try visiting the homepage</p>
</body>
</html>
配置靜態網站託管
在左側導覽列,單擊資料管理>靜態頁面,然後單擊設置。配置完成後保存退出。
-
默認首頁:輸入
index.html。 -
子目錄首頁:預設不開通。
-
默認 404 頁:輸入
404.html。 -
錯誤文檔響應碼:預設404。
2.為OSS Bucket綁定網域名稱
通過Bucket的預設網域名稱(無論內網或外網網域名稱)訪問HTML檔案時,OSS會通過添加回應標頭欄位強制瀏覽器下載檔案而非線上預覽,需要為Bucket綁定自訂網域名來繞過此安全限制。
-
在左側導覽列,單擊Bucket 配置 > 域名管理,然後單擊綁定網域名稱。
-
在綁定網域名稱對話方塊輸入想要綁定到OSS Bucket的網域名稱,根據提示資訊完成綁定並確認綁定的網域名稱已生效。
綁定完成後,記錄綁定的網域名稱(如static.example.com),後續步驟中將使用該網域名稱配置ALB後端服務。
3.建立擴充版ALB執行個體
-
登入ALB控制台,單擊建立應用型負載平衡。
-
在購買頁完成以下配置,單擊立即建立。
-
地區:選擇華北6(烏蘭察布)。
-
執行個體網路類型:選擇公網。
-
VPC和可用性區域:選擇目標VPC,勾選烏蘭察布 可用性區域A和烏蘭察布 可用性區域B後選擇對應交換器,並自動分配公網IP。
-
協議版本:選擇IPv4。
-
功能版本:選擇擴充版。
-
-
在確認訂單頁面確認執行個體配置詳情,單擊立即開通。
4.配置PrivateZone解析
配置PrivateZone,將步驟二中綁定到OSS Bucket的自訂網域名指向Bucket的內網網域名稱,使ALB通過VPC內網訪問Bucket,降低公網流量成本並提升訪問穩定性。
添加PrivateZone網域名稱
-
登入內網網域名稱解析控制台,單擊添加域名 (Zone)。
-
在添加對話方塊,完成以下配置,單擊確定並確認。
-
内网权威域名 (Zone):輸入OSS Bucket綁定的網域名稱,如
static.example.com。 -
生效于阿里云VPC内网:選擇ALB執行個體所在VPC。
-
添加CNAME解析記錄
-
在網域名稱列表中,單擊目標網域名稱操作列的解析设置進入解析记录頁面,單擊添加记录。
-
在添加记录對話方塊,完成以下配置,單擊确定。
-
记录类型:選擇CNAME。
-
主机记录:輸入
@,即解析到主網域名稱static.example.com。 -
记录值:輸入OSS Bucket的內網網域名稱。可在OSS Bucket的概覽頁查看ECS 的 VPC 網絡訪問(內網)在Bucket 域名列的對應值,格式如
bucket-name.oss-cn-wulanchabu-internal.aliyuncs.com。 -
解析请求来源和TTL时间:保持預設。
-
-
在彈出的解析变更确认對話方塊確認解析資訊,單擊確定。
解析生效後,在ALB所在VPC內訪問static.example.com時,會被最終解析至OSS Bucket的內網IP,通過VPC內網進行訪問。
5.建立DNS網域名稱類型伺服器組
建立DNS網域名稱類型的伺服器組,將OSS Bucket的訪問網域名稱添加為後端服務。
-
在伺服器組控制台,確認地區為華北6(烏蘭察布),單擊建立伺服器組。
-
參考以下資訊完成伺服器組配置,單擊建立。
-
伺服器群組類型:選擇DNS網域名稱。
-
伺服器組名稱:本文輸入
sgp-dns-oss。 -
選擇後端協議:預設選擇
HTTP。 -
DNS伺服器配置:單擊一鍵填充內網DNS解析地址,系統將自動填寫阿里雲內網DNS。
-
-
在伺服器組建立成功對話方塊單擊添加後端伺服器。在添加DNS網域名稱對話方塊完成以下配置,單擊確定。
-
DNS網域名稱:輸入OSS Bucket綁定的網域名稱,如
static.example.com。 -
通信埠:輸入
80。
-
6.建立監聽
-
在ALB控制台,單擊目標執行個體ID進入執行個體詳情頁。在監聽頁簽單擊建立監聽。
-
在配置監聽步驟,選擇監聽協議為HTTPS,監聽通信埠填寫
443,完成後單擊下一步。 -
在設定SSL憑證步驟,選擇與自訂網域名匹配的伺服器憑證,單擊下一步。
-
在選擇伺服器組步驟,依次選擇DNS網域名稱類型和伺服器組
sgp-dns-oss,完成後單擊下一步。 -
在組態稽核步驟,確認配置並單擊提交。
7.設定網域名稱解析
將自有網域名稱通過CNAME解析指向ALB執行個體的DNS名稱,用戶端通過自有網域名稱訪問ALB。
本文以阿里雲Alibaba Cloud DNS為例,對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台。
8.驗證測試
test.example.com為樣本網域名稱,實際測試時請替換為步驟七中配置的真實網域名稱,需確保網域名稱解析已生效。
訪問首頁
在瀏覽器中訪問https://test.example.com,返回OSS中配置的預設首頁index.html。
直接存取index.html
在瀏覽器中訪問https://test.example.com/index.html,同樣返回index.html。
測試404錯誤頁面
在瀏覽器中訪問不存在的資源,如https://test.example.com/donotexist,返回OSS中配置的404錯誤頁面404.html。
更多資訊
計費說明
ALB擴充版支援的地區
|
地區 |
地區 |
可用性區域 |
|
中國 |
華北6(烏蘭察布) |
可用性區域A、可用性區域B、可用性區域C |
|
華東1(杭州) |
可用性區域J、可用性區域K |
|
|
華北2(北京) |
可用性區域I、可用性區域K、可用性區域L |
|
|
華東2(上海) |
可用性區域B、可用性區域F |
|
|
中國香港 |
可用性區域B、可用性區域C、可用性區域D |
|
|
亞太地區 |
新加坡 |
可用性區域A、可用性區域B、可用性區域C |
|
日本(東京) |
可用性區域B、可用性區域C、可用性區域E |
|
|
馬來西亞(吉隆坡) |
可用性區域A、可用性區域B、可用性區域C |
|
|
歐美地區 |
德國(法蘭克福) |
可用性區域A、可用性區域B |
|
美國(矽谷) |
可用性區域A、可用性區域B |
|
|
中東 |
阿聯酋(杜拜) |
可用性區域A、可用性區域B |
使用建議
-
Bucket類型選擇:根據訪問頻率選擇合適的儲存類型,平衡效能和成本;對重要的靜態資源啟用同城冗餘儲存,擷取更高的可用性保障。
-
CDN加速:在ALB前配置CDN,將靜態資源緩衝至邊緣節點,提升訪問速度和使用者體驗。
常見問題
訪問未到達OSS,報錯upstream connect error or disconnect/reset before headers. reset reason: connection timeout
-
確認已正確配置PrivateZone解析,且PrivateZone已正確關聯ALB所在VPC。
-
確認伺服器組中配置的網域名稱為OSS Bucket綁定的網域名稱。
訪問到達OSS,但未展示首頁內容
-
確認Bucket已開啟公用訪問,且ACL許可權為公用讀取。
-
確認Bucket已開啟靜態網站託管功能,已上傳
index.html檔案並設定為預設首頁。