Cloudflare 是業界知名的雲端服務公司,以向客戶提供基於反向代理的內容傳遞網路(Content Delivery Network, CDN)及分佈式域名解析服務(Distributed Domain Name Server)為主要業務。
重點是他有免費計劃,很適合給我這種流量不大的使用者管理我的域名。
接下來一步步講解,購買域名、透過 cloudflare 管理域名、並且指定子域名到其他應用。
向註冊商購買網域
我建議使用 namecheap 購買網域,因為資訊相對明確,且也相當便宜。 跟著這一篇教學完成網域購買。
請注意,剛剛購買的域名並不會馬上在 DNS server 被更新,官方的說法是需要等待 24~48 小時,我的經驗是 1 小時就可以用了。
以下用域名 example.com
講解。
設定 Cloudflare,並修改註冊商的 Nameservers
透過 add website 加入 example.com
:
- 使用免費計劃。
- 跳過 DNS records 環節,等一下在回頭設定。
- 記住 Cloudflare 提供的兩個 Nameservers,完成 add website。
回到 Namecheap 網站,替換 example.com
的 Nameservers。
到此網域設定完成。
官方說註冊商需要 24 小時更新 Nameservers,實際上大約一個小時就可以了。
細節可以參考 namecheap spport。
應用
為 Vercel app 添加新的域名
還記得之前我透過 Vercel 建立了一個靜態部落格嗎?
但 vercel 提供的域名 {project}-{id}.vercel.app
並不好記,我希望能用域名 example.com
,加上 CNAME blog
,
用域名 blog.example.com
訪問 Vercel app。
有兩種方法可以達成這個目的:
- 使用 Cloudflare 作為 DNS Provider。
- 使用 Cloudflare 作為 Reverse Proxy。
考慮我們的使用場景,我們使用第一種方法:
設定 Cloudflare
我們回到 DNS Records 頁面,新增以下 record:
Type | Name | Content | Proxy | TTL |
---|---|---|---|---|
CNAME | blog | cname.vercel-dns.com | DNS only | 2 min |
我設置了一個 CNAME record 指向 cname.vercel-dns.com
,並且關閉了 Proxy 模式,這樣可以讓 DNS 請求透過 Vercel 的 DNS Server 來解析這個子域名。
更詳細的操作流程可以看 using-cloudflare-as-your-dns-provider。
等待 Cloudflare DNS Cache 更新需要一段時間,我們可以用 1.1.1.1 Purge 加速這個過程。
設定 Vercel
- 在 Project Settings -> Domains 新增 domain
blog.example.com
- 等待 Vercel 準備完成後,透過
blog.example.com
確定可以訪問 Vercel app。