Trở về

Cloudflare là gì? Có nên sử dụng Cloudflare cho website hay không?

bởi Vi Nè

Cloudflare là gì? Cloudflare là một nhà cung cấp dịch vụ reverse proxy, là một loại proxy server trung gian giữa một máy chủ và các client.

Ảnh: Vinahost

Vậy chúng ta có nên sử dụng Cloudflare cho website hay không? Bài viết này sẽ phân tích một số ưu điểm và khuyết điểm để giúp bạn quyết định có nên sử dụng Cloudflare cho bản thân mình hay không.

Cloudflare là gì?

CloudFlare sử dụng công nghệ giống như CDN để thực hiện một số việc chúng tôi làm. Giống như CDN, chúng tôi chạy nhiều trung tâm dữ liệu và lưu trữ nội dung tĩnh ở cạnh để làm cho nó nhanh hơn. Tuy nhiên, CDN truyền thống chỉ nhận được yêu cầu cho một số tập hợp con yêu cầu và yêu cầu người dùng chọn nội dung nào lưu trữ trên mạng của CDN. CDN truyền thống có thể được mô tả chính xác như là lưu trữ phân tán ồ ạt, nơi CloudFlare được mô tả chính xác hơn như một proxy đảo ngược bộ nhớ đệm. Điều này có nghĩa là, không giống như CDN truyền thống, CloudFlare xử lý tất cả các yêu cầu đến một trang web. Do đó, chúng tôi có thể:

  • Dừng các cuộc tấn công nhắm vào trang web.
  • Tự động sửa đổi nội dung để cải thiện hiệu suất.
  • Chèn ứng dụng vào các trang web.
  • Cung cấp phân tích phong phú về tất cả các yêu cầu cho trang web của bạn.
  • Tự động xác định đối tượng nào là tĩnh và có thể lưu vào bộ nhớ cache ở cạnh của mạng mà không có bất kỳ cấu hình người dùng nào.
  • Cung cấp cổng mạng giữa các giao thức như IPv6 <-> IPv4.
  • Giúp cài đặt SSL linh hoạt và dễ dàng nhấp một lần.
  • Và nhiều thứ khác mà CDN truyền thống không thể cung cấp…

Theo mình hiểu thì Cloudflare là một máy chủ trung gian và nó sẽ xử lý mọi thứ trước khi nó gửi yêu cầu đến máy chủ cũng như trả dữ liệu về người dùng. Cloudflare cung cấp nhiều tính năng tốt như CDN free, SSL free, Apps, bảo mật và tối ưu hóa tốc độ tải trang. Tuy nhiên, trong một vài trường hợp, các tính năng đó lại là một khuyết điểm. Dưới đây mình sẽ đưa ra một số ưu điểm và khuyết điểm, tùy theo từng trường hợp của bạn mà bạn có nên sử dụng Cloudflare hay không.

Lưu ý: Bạn có thể sử dụng Cloudflare như một dịch vụ DNS thông thường bằng cách tắt đám mây màu vàng cho tên miền của bạn trong mục DNS. Bài viết này đề cập đến dịch vụ CDN của Cloudflare.

Tốc độ

Cloudflare là một máy chủ trung gian, từ hình ảnh trên, chúng ta có thể thấy tất cả lưu lượng truy cập sẽ được xử lý thông qua máy chủ Cloudflare. Nếu lưu lượng là hợp lệ, Cloudflare sẽ gửi yêu cầu đến và chờ nhận dữ liệu từ máy chủ gốc. Sau đó nó sẽ xử lý một số công việc mà bạn đã thiết lập trên tài khoản và trả dữ liệu về cho người truy cập. Giả sử, máy chủ gốc của bạn đặt tại Việt Nam, nhưng khi bạn sử dụng dịch vụ proxy của Cloudflare thì trình duyệt sẽ gửi yêu cầu đến máy chủ Cloudflare ở Hồng Kông, máy chủ này sẽ gửi yêu cầu về máy chủ gốc tại Việt Nam và sau đó máy chủ ở Hồng Kông sẽ trả dữ liệu về cho trình duyệt.

Nếu bạn không dùng Cloudflare và các máy chủ trung gian, các lưu lượng truy cập sẽ gửi yêu cầu và nhận dữ liệu trực tiếp từ máy chủ của bạn.

Bạn nghĩ thế nào? Cloudflare có giúp làm tăng tốc độ website của bạn trong bất kỳ trường hợp? Tùy từng trường hợp:

  • Nếu máy chủ của bạn nằm gần hơn hoặc bằng, hoặc không quá xa người truy cập, so với máy chủ Cloudflare thì việc sử dụng Cloudflare sẽ khiến người dùng truy cập website chậm hơn.
  • Nếu máy chủ của bạn nằm quá xa vị trí của người truy cập và tốc độ mạng của người truy cập không nhanh, bạn có thể sử dụng Cloudflare để tăng tốc độ tải trang. Tại sao? Vì người truy cập chỉ cần truy cập đến máy chủ Cloudflare và với tốc độ đường truyền của Cloudflare, nó có thể kết nối đến máy chủ của bạn nhanh hơn. Mình không chắc chắn lắm về trường hợp này lắm.

Cá nhân mình sử dụng máy chủ web ở Singapore, sau khi tắt Cloudflare thì tốc độ tải trang đã nhanh hơn rõ rệt. Bạn nên cân nhắc không sử dụng Cloudflare nếu bạn đang sử dụng host VN để phục cho người truy cập ở VN…

Mình cũng đã từng gặp lỗi Error 502 Bad Gateway hay Error 502 Bad Gateway gì đó mình không nhớ, mình có hai site đều sử dụng Cloudflare, cả hai site đều đặt trên cùng một máy chủ nhưng chỉ có một site bị trong khoảng 15 phút. Theo lý thuyết thì nguyên nhân là do máy chủ, nhưng mình nghi ngờ nguyên nhân thật sự là do Cloudflare.

Auto Minify

Auto Minify (Tự động rút gọn) loại bỏ các ký tự không cần thiết khỏi mã nguồn của bạn (như khoảng trắng, chú thích, v.v.) mà không thay đổi chức năng của nó. Việc giảm thiểu có thể nén kích thước tệp nguồn làm giảm lượng dữ liệu cần được chuyển cho khách truy cập và do đó cải thiện thời gian tải trang.

  • CSS nội tuyến hoặc JS được nhúng bên trong mã HTML của bạn sẽ không được rút gọn.
  • Tự động rút gọn sẽ không xóa các dòng mới khỏi HTML của bạn nhưng sẽ xóa khoảng trống không cần thiết.

Cloudflare sẽ nhận mã HTML được trả về từ máy chủ gốc của bạn và sẽ luôn thực hiện công việc này nếu tùy chọn này được bật. Thời gian xử lý khá nhanh, tuy nhiên việc này sẽ không cần thiết nếu mã gốc của bạn đã được giảm bớt. Hơn nữa, có những thư viện giúp bạn có thể làm điều này tốt hơn, mình đang dùng W3 Total Cache để giảm bớt HTML, CSS và JavaScript. Nếu bạn đã giảm bớt mã thì không có lý do gì để sử dụng tính năng này.

Rocket Loader

Rocket Loader ưu tiên nội dung trang web của bạn (văn bản, hình ảnh, phông chữ, v.v.) bằng cách trì hoãn việc tải tất cả JavaScript của bạn cho đến khi kết xuất.

Việc trì hoãn các tập lệnh JavaScript có thể gây ra các lỗi mà phổ biến nhất là các hàm và biến chưa được định nghĩa. Ví dụ, trong mã HTML bạn nhúng một đoạn mã JavaScript có sử dụng lệnh jQuery, việc trì hoãn tập lệnh jQuery sẽ khiến kịch bản JavaScript bị lỗi, xem thêm về xóa JavaScript chặn hiển thị.

CDN miễn phí

Cloudflare cung cấp dịch vụ CDN miễn phí rất hữu ích mà bạn có thể tận dụng để tăng tốc website và tiết kiệm tài nguyên cho máy chủ. Tất cả các tài nguyên tĩnh như tệp tin hình ảnh, JavaScript và CSS sẽ được tải về một lần từ máy chủ của bạn và được lưu lại trên máy chủ Cloudflare. Sau đó, các tệp tin này sẽ được phục vụ từ máy chủ Cloudflare mà không cần phải gửi yêu cầu đến máy chủ gốc của bạn. Thậm chí, bạn có thể cache cả nội dung HTML và tất cả những nội dung khác.

Đây là một trong những tính năng đáng dùng nhất, mình thấy một vài ưu điểm sau:

  • Tiết kiệm băng thông và tài nguyên cho máy chủ.
  • Giảm yêu cầu đến máy chủ.
  • Tăng tốc độ tải trang (điều này có thể không đúng nếu máy chủ gốc của bạn nằm gần vị trí người truy cập hơn so với máy chủ Cloudflare).

Nếu tệp tin trên máy chủ gốc của bạn có sự thay đổi, bạn chỉ cần vào mục Caching và nhập đường dẫn trong mục Purge Cache để xóa phiên bản đã cache, Cloudflare sẽ lấy phiên bản mới hiện tại từ máy chủ gốc của bạn.

Nếu bạn không muốn sử dụng Cloudflare cho các website chính, bạn vẫn có thể sử dụng CDN free của nó thông qua subdomain. Điều này có nghĩa là người truy cập sẽ truy cập vào trang web của bạn trực tiếp qua máy chủ gốc của bạn và các tệp tin hình ảnh, JavaScript và CSS sẽ được phục vụ từ máy chủ CDN của Cloudflare qua subdomain hoặc một tên miền khác. Site của tui đang áp dụng phương pháp này.

SSL miễn phí

Cloudflare không phải là sự lựa chọn duy nhất nếu bạn muốn có một chứng chỉ SSL miễn phí cho website của bạn. Bạn có thể tạo chứng chỉ SSL miễn phí với Let’s Encrypt nhưng Cloudflare sẽ cung cấp cho bạn các tùy chọn đơn giản hơn nhiều.

Ưu điểm:

  1. Miễn phí.
  2. Kích hoạt và thiết lập đơn giản chỉ qua vài nhấp chuột.
  3. Bạn không cần phải có chứng chỉ SSL
  4. Không cần cài đặt SSL, thậm chí không cần mở cổng 443 trên máy chủ gốc.
  5. Bạn có thể chuyển hướng HTTP sang HTTPS bằng cách tạo Page Rules.

Nhược điểm:

  1. Dù bạn đang có một chứng chỉ SSL hợp lệ đã được ký bởi một CA nào đó, thậm chí là Extended Validation Certificate (EV) thì người dùng cũng chỉ có thể nhìn thấy chứng chỉ của Cloudflare. Trừ khi bạn tải lên chứng chỉ SSL của bạn trong mục Upload Custom SSL Certificate (chỉ được hỗ trợ trong gói Business 200$/tháng và gói Enterprise).
  2. Flexible SSL: Dữ liệu chỉ được mã hóa giữa người dùng và máy chủ Cloudflare nhưng dữ liệu này không được mã hóa giữa máy chủ gốc và Cloudflare.
  3. Full (strict): Dữ liệu sẽ được giải mã và mã hóa lại một lần nữa tại máy chủ Cloudflare, sau đó gửi đến máy chủ gốc. Sau khi nhận được dữ liệu được mã hóa từ máy chủ gốc, dữ liệu sẽ được giải mã và mã hóa lại một lần nữa tại máy chủ Cloudflare, sau đó trả về cho trình duyệt.

Cloudflare Dedicated CertificatesUniversal SSL chỉ hỗ trợ các trình duyệt trên Windows Vista hoặc OS X 10.6 hoặc mới hơn, không hỗ trợ Windows XP và không hỗ trợ trình duyệt IE 6. Trên di động, Mobile Safari for iOS 4.0, Android 3.0 (Honeycomb) và mới hơn, Windows Phone 7.

Một tính năng rất tiện lợi nhưng cũng có những tiêu cực. Bởi vì Cloudflare là một máy chủ trung gian, nó có thể giải mã tất cả các dữ liệu đã được mã hóa giữa người dùng và máy chủ. Nếu bạn cho rằng dữ liệu giữa người dùng và máy chủ của bạn là tuyệt mật, bạn không nên giao cho một bên thứ ba xử lý chúng. Nhưng dù sao, Cloudflare vẫn nên được tin tưởng nhiều hơn nhiều dịch vụ tạo blog miễn phí hay các dịch vụ lưu trữ dữ liệu khác. Xem thêm về cách kích hoạt SSL free.

Apps

Cloudflare cũng cung cấp kho ứng dụng với rất nhiều ứng dụng hữu ích như Google Analytics, Back To Top Button, Save To Pinterest, Share Buttons… Bạn có thể cài đặt các ứng dụng này chỉ với vài nhấp chuột. Cloudflare sẽ chèn một tập lệnh JavaScript vào mã HTML của bạn để chèn các ứng dụng mà bạn đã cài vào website của bạn. Xem tất cả các ứng dụng trong mục Apps.

Trên đây chỉ là một số ý kiến cá nhân về cách hoạt động và các tính năng của Cloudflare. Ngoài ra, còn rất rất nhiều tùy chọn và tính năng mà bạn có thể tìm hiểu thêm. Mình chưa từng sử dụng các gói trả tiền của Cloudflare nên không thể có ý kiến về các gói này. Bây giờ theo bạn thì chúng ta có nên sử dụng Cloudflare không? Cá nhân mình đã tắt Cloudflare cho domain chính và chỉ sử dụng CDN free và SSL free của nó để phục vụ cho các tệp tin tĩnh như hình ảnh, JS và CSS. Nó giúp tăng tốc độ và tiết kiệm băng thông cho website của mình khá nhiều.

Chúc bạn thành công!

Chúng tôi tạm dừng chức năng bình luận, mọi thắc mắc vui lòng gửi thông qua mục liên hệ. Xin cám ơn!