- Một trường hợp chuyển blog cá nhân sang bunny.net để giảm sự phụ thuộc tập trung vào Cloudflare
- bunny.net là dịch vụ CDN châu Âu có trụ sở tại Slovenia, cung cấp hiệu năng nhanh trên toàn cầu và mạng lưới PoP hiệu quả
- Sử dụng Porkbun để đăng ký tên miền và chuyển tính năng “Orange Cloud” của Cloudflare sang môi trường bunny.net
- Cấu hình CDN hoàn chỉnh theo từng bước với Pull Zone, chính sách cache, chứng chỉ SSL, Edge Rule
- Chỉ với các tính năng cơ bản như bảo vệ DDoS, Origin Shield, Stale Cache, dịch vụ vẫn đủ ổn định và có thể trở thành một lựa chọn thay thế Cloudflare thực tế cho người dùng cá nhân
Chuyển từ Cloudflare sang bunny.net
- Tổng hợp quá trình và cách cấu hình để chuyển blog cá nhân sang bunny.net nhằm giảm sự phụ thuộc vào Cloudflare và vấn đề tập trung hóa
- Cloudflare cung cấp nhiều tính năng mạnh mẽ miễn phí, nhưng điều đó cũng làm gia tăng mức độ phụ thuộc vào một công ty duy nhất, và khi sự cố xảy ra có thể ảnh hưởng tới internet trên diện rộng
- Sự khó chịu với tình trạng internet tập trung quanh các công ty Mỹ cùng nhiều tranh cãi khác đã thúc đẩy việc tìm kiếm phương án thay thế
Tổng quan về Bunny.net
- bunny.net là một công ty châu Âu có trụ sở tại Slovenia, cung cấp dịch vụ CDN có thể cạnh tranh với Cloudflare
- Dịch vụ cho thấy hiệu năng và tốc độ cao trên phạm vi toàn cầu; quy mô mạng PoP nhỏ hơn nhưng hiệu quả
- Cũng được đánh giá tích cực ở khía cạnh hỗ trợ sự phát triển của hệ sinh thái công nghệ châu Âu
Thoát khỏi Cloudflare
- Tác giả từng dùng Cloudflare làm nhà đăng ký tên miền cho blog, nhưng rất khó tìm được phương án thay thế trong châu Âu
- INWX bị loại vì không có WHOIS privacy miễn phí, nên chọn Porkbun thay thế
- Porkbun dùng hạ tầng Cloudflare nhưng chất lượng hỗ trợ rất tốt
- Chuyển tính năng “Orange Cloud” của Cloudflare (tự động cache, ẩn origin, tính năng bảo vệ) sang bunny.net
Các bước cấu hình Bunny.net
-
Tạo tài khoản
- Khi đăng ký sẽ có 20 USD credit trong 14 ngày, và thêm 30 USD nếu đăng ký thẻ tín dụng
- Có thể cấu hình sau khi xác thực email; áp dụng mô hình tính phí theo mức sử dụng (tối thiểu 1 USD/tháng)
- Chuyển sang một mô hình mà “người dùng là khách hàng chứ không phải sản phẩm”
-
Tạo Pull Zone
- Đây là thành phần cốt lõi để kích hoạt CDN, kết nối máy chủ bằng cách chỉ định Origin URL
- Nếu đang vận hành nhiều ứng dụng, hãy chỉ định tên miền trong Host header
- Có thể chọn gói Standard rồi cấu hình Zone có mức giá khác nhau theo từng khu vực
- Người dùng ở khu vực đã vô hiệu hóa sẽ được chuyển hướng đến Zone đang hoạt động gần nhất
-
Kết nối Pull Zone
- Nhập tên miền website vào mục “Add a custom hostname”
- Thêm bản ghi CNAME theo hướng dẫn để kết nối đường CDN (dạng
website.b-cdn.net)
- Sau khi DNS propagation hoàn tất, nhấn “Verify & Activate SSL” để hoàn tất chứng chỉ SSL
- Khi thành công, website sẽ được phục vụ thông qua CDN của bunny.net
Cấu hình cache
- Nếu website trả về header Cache-Control phù hợp thì bunny.net sẽ tôn trọng thiết lập đó
- Kiểm tra tùy chọn “Respect origin Cache-Control” trong “Caching → General”
- Nếu đặt
no-cache thì sẽ không cache
- Nếu không có header cache, tính năng Smart Cache sẽ tự động cache chỉ các tệp như ảnh, CSS, JS
- Với blog dựa trên Elixir Phoenix, tác giả đã thêm middleware header cache tùy chỉnh vào pipeline
public
- Thiết lập
cache-control: public, s-maxage=86400, max-age=0 để cache cả trang HTML
- Khi đăng bài mới, cần xóa cache của Pull Zone thủ công để HTML mới nhất được phản ánh
- Kết quả đo bằng công cụ Larm cho thấy tốc độ phản hồi được cải thiện ở nhiều vị trí trên thế giới
Thiết lập cơ bản được khuyến nghị
- Bật “Force SSL” để bắt buộc mọi request dùng HTTPS
- Có sẵn bảo vệ DDoS; nếu bật thêm Origin Shield thì có thể giảm tải cho máy chủ
- Chọn vị trí gần origin để tập trung cache, khi đó edge server sẽ truy vấn Origin Shield trước
- Với tùy chọn “Stale Cache: While Origin Offline / While Updating”
- Có thể tiếp tục phục vụ nội dung đã cache ngay cả khi origin gặp sự cố
- Trong lúc cập nhật cũng tạm thời phục vụ bản cache cũ
- Thêm Edge Rule để chuyển hướng tên miền pull zone được tạo tự động về tên miền thực tế
- Tên quy tắc: “Default domain redirect”
- Hành động: Redirect, mã trạng thái 301
- Điều kiện: khi có request
*://<slug>.b-cdn.net/* thì chuyển đến https://jola.dev{{path}}
Kết luận và đánh giá
- Cấu hình này mới chỉ đề cập đến các tính năng cơ bản của bunny.net,
còn Edge Rules, cấu hình cache nâng cao, Security Shield, video streaming, Edge Scripting, Edge Containers vẫn chưa được đề cập
- Thống kê, log và metric trên dashboard rất chi tiết, có thể theo dõi trạng thái cache và sự cố ở cấp độ từng request
- Tác giả đang tiếp tục chuyển toàn bộ dịch vụ sang bunny.net và kỳ vọng vào dịch vụ lưu trữ tương thích S3 trong tương lai
- Đây là một lựa chọn đủ sức cạnh tranh như giải pháp thay thế Cloudflare, ngay cả với người dùng cá nhân
1 bình luận
Ý kiến trên Hacker News
Với một bài viết blog mang tính tích cực như vậy, có lẽ nên nêu rõ vì mục đích minh bạch công khai rằng mọi liên kết trên trang đều trỏ tới Bunny Affiliate Program
Tôi đang dùng bunny.net cho CDN và DNS
Tôi luôn thấy bất an rằng dịch vụ miễn phí một ngày nào đó có thể chuyển sang trả phí, nên tôi nghĩ tốt hơn là trả một khoản nhỏ ngay từ đầu. Tăng từ $2 lên $3 thì ổn, nhưng từ miễn phí lên $20 thì khá rủi ro
Hơn nữa, tôi thích những công ty nhỏ và độc lập biết quan tâm tới nhà phát triển. Vì vậy tôi dùng bunny.net, transistor.fm và Plausible Analytics
Tôi đang vận hành một SaaS bằng Cloudflare Workers + Pages. Khả năng triển khai hàm serverless và trang tĩnh từ cùng một kho mã mang lại trải nghiệm phát triển rất tốt
Nhưng gần đây tôi gặp vấn đề CDN edge cache vẫn phục vụ HTML cũ rất lâu sau khi triển khai. Việc debug khá khó, và phải đoán xem tầng cache nào đang có vấn đề
Dù vậy, để bắt đầu với tier miễn phí thì đây vẫn là lựa chọn tốt nhất. Với Workers, Pages, KV và R2, có thể vận hành một ứng dụng production gần như miễn phí
Cloudflare giờ không còn chỉ là CDN đơn thuần mà là một nền tảng edge. Nếu có thể dễ dàng chuyển sang Bunny, thì có lẽ bạn chưa thực sự dùng tới những tính năng cốt lõi của Cloudflare
Thật tiếc là họ không hỗ trợ đúng mức các tiêu chuẩn như WinterTC. Việc dùng hàm serve chuyên biệt như BunnySDK thậm chí còn là dạng phụ thuộc độc quyền nặng hơn
Chúng tôi dùng Bunny cho nhiều mục đích khác nhau và rất hài lòng. Đặc biệt chất lượng hỗ trợ rất xuất sắc. Cloudflare cũng tốt, nhưng nếu không có hỗ trợ enterprise trả phí thì sẽ có giới hạn. UpCloud cũng có hỗ trợ rất tốt
Người ta thường nói “Cloudflare là một điểm lỗi duy nhất của Internet”, nhưng thực tế phức tạp hơn
Nếu các dịch vụ nhỏ được dùng đa dạng hơn thì phân bố sự cố có thể khác đi. Đổi lại, có thể sẽ xuất hiện các sự cố nhỏ thường xuyên hơn
Ngoài ra, hạ tầng của Cloudflare cũng không hoàn toàn tập trung. Một số dịch vụ vận hành độc lập theo từng khu vực
Tôi đã chuyển sang Bunny từ một năm trước và rất hài lòng. Việc có thể hỗ trợ CDN đặt tại EU cũng rất hay, và nhờ Magic Containers mà có thể chạy một API mở rộng toàn cầu với chi phí khoảng $1/tháng
Bài viết này có thể trông như quảng cáo, nhưng thực ra chỉ là chia sẻ trải nghiệm đơn thuần. Liên kết tiếp thị liên kết đã được nêu rõ, không có ý định che giấu
Có một điều cần lưu ý là nhiều nơi như các cơ sở giáo dục thường chặn tên miền
*.b-cdn.netĐiểm đáng tiếc là không có hosting miễn phí. Dù lưu lượng thấp thì vẫn phải trả 1 euro mỗi tháng (chưa gồm VAT)
Ngoài ra, không có nhiều nhà cung cấp DNS hỗ trợ CNAME flattening. Việc vô hiệu hóa cache cũng phải làm hai lần mới phản ánh đúng