Cloudflare là dịch vụ DNS trung gian, giúp điều phối lượng truy cập giữa máy chủ và các client qua lớp bảo vệ CloudFlare. Hay nói một cách dễ hiểu thì thay vì bạn truy cập trực tiếp vào Website thông qua máy chủ phân giải tên miền DNS (Domain Name Server) thì bạn sẽ sử dụng máy chủ phân giải tên miền của CloudFlare. Các truy cập sẽ phải đi qua máy chủ của CloudFlare để xem dữ liệu website thay vì truy cập trực tiếp.
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 …
Cloudflare hoạt động như thế nào, bạn xem qua hình bên dưới để có thể dễ hình dung.
ƯU VÀ NHƯỢC ĐIỂM CỦA VIỆC SỬ CLOUDFLARE
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.
Ưu điểm của CloudFlare
- Giúp website của bạn tăng tốc độ truy cập bằng cách CloudFlare sẽ lưu một bản bộ nhớ đệm (cache) của website trên máy chủ của CDN của họ. Từ đó phân phối cho người dùng truy cập ở gần máy chủ đó nhất. Chẳng hạn như nếu hosting tại CAFETINHOC đặt máy chủ đặt ở Hà Nội thì người dùng ở New York sẽ truy cập chậm vì máy chủ vật lý ở xa và ngược lại. Bên cạnh đó, những dữ liệu tĩnh như hình ảnh, CSS, các tập tin,…cũng được CloudFlare nén gzip lại nên tốc độ tải nhanh hơn.
- Giúp tiết kiệm được băng thông cho máy chủ vì hạn chế truy trực trực tiếp vào máy chủ. Lúc này, băng thông sử dụng giảm hẳn chỉ còn 1/2 – 1/3 so với trước khi dùng.
- Giúp website tăng khả năng bảo mật, hạn chế được sự tấn công của DDoS, spam bình luận trên blog và một số phương thức tấn công cơ bản khác. Bạn có thể cải thiện bảo mật website bằng cách sử dụng CloudFlare như sử dụng SSL miễn phí để thêm giao thức HTTPS cho website; hạn chế truy cập từ các quốc gia chỉ định; cấm truy cập với các IP nhất định; công nghệ tường lửa ứng dụng website; bảo vệ các trang có tính chất đăng nhập (gói Pro).
Nhược điểm của CloudFlare
- Nếu website của bạn nằm trên hosting có máy chủ đặt tại Việt Nam, khách hàng truy cập chủ yếu đến từ Việt Nam thì việc sử dụng CloudFlare làm chậm đi tốc độ tải trang vì chất lượng đường truyền quốc tế tại Việt Nam. Nguyên nhân được cho là lúc này truy vấn sẽ đi vòng từ Việt Nam đến DNS Server của CloudFare rồi mới trả kết quả về Việt Nam.
- Thời gian uptime website phụ thuộc vào thời gian uptime của Server CloudFlare nếu bạn sử dụng. Tức là nếu Server CloudFlare bị down thì khả năng truy xuất vào website của bạn sẽ bị gián đoạn vì không phân giải được tên miền website đang sử dụng.
- Không ai biết được IP máy chủ của bạn là một điều tốt. Nhưng vấn đề nằm ở chỗ, nếu web bảo mật không kĩ thì sẽ rất dễ bị tấn công bằng nhiều cách khác nhau. Tất nhiên, người dùng cũng sẽ không bao giờ biết được IP thực sự của khách hàng truy cập vào website của mình.
- Đôi lúc Firewall của hosting mà website bạn đang đặt hiểu lầm dải IP của CloudFlare là địa chỉ tấn công. Rất có thể website của bạn bị offline.
Có nên sử dụng Cloudflare cho website?
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ị.
Bạn có thể trì hoãn hoặc tải không đồng bộ các tập lệnh JavaScript bằng cách thêm async và defer vào thẻ script trên mã gốc của bạn. Nếu bạn đã thực hiện việc này trên mã gốc của bạn thì không có lý do gì để sử dụng tính năng này.
Bảo mật
Bảo mật là một yếu tố quan trọng để giữ website của bạn an toàn trước những kẻ tấn công. Cloudflare có thể phát hiện và chặn những kẻ tấn công vào website của bạn.
1. Ẩn địa chỉ IP máy chủ gốc
Điều đầu tiên phải kể đến là sẽ không có ai có thể tìm thấy địa chỉ IP của máy chủ gốc bằng cách PING tên miền của bạn. Từ đó giảm thiểu được các cuộc tấn công trực tiếp vào máy chủ của bạn thông qua IP. Mặc dù vậy, những các kể tấn công có thể kiểm tra các bản ghi khác như MX để tìm ra IP của máy chủ Mail, nếu bạn muốn thật sự muốn che giấu địa chỉ IP thì bạn không sử dụng máy chủ mail trên cùng một máy chủ web.
2. I’m Under Attack!
Bạn có thể tìm thấy nhiều hơn các tùy chọn trong mục Firewall (tường lửa), có một tùy chọn khá quan trọng đó là Security Level (Cấp độ bảo mật). Nếu trang web của bạn đang gặp phải một cuộc tấn công DDOS, bạn có thể chọn I’m Under Attack!, rất hữu ích.
- I’m Under Attack!: Chỉ nên sử dụng nếu trang web của bạn bị tấn công DDoS.
- Khách truy cập sẽ nhận được trang xen kẽ trong khi chúng tôi phân tích lưu lượng truy cập và hành vi của họ để đảm bảo rằng họ là khách truy cập hợp pháp của con người đang cố truy cập trang web của bạn.
3. Email Address Obfuscation
Trình thu thập email và các robot khác đi lang thang trên Internet tìm kiếm địa chỉ email để thêm vào danh sách nhắm mục tiêu người nhận spam. Xu hướng này dẫn đến số lượng email không mong muốn ngày càng tăng.
Quản trị viên web đã đưa ra các cách thông minh để bảo vệ chống lại điều này bằng cách viết ra các địa chỉ email (ví dụ: info [at] sitecuatui [dot] com) hoặc bằng cách sử dụng hình ảnh được nhúng của địa chỉ email. Tuy nhiên, bạn mất sự tiện lợi khi nhấp vào địa chỉ email để tự động gửi email.
Bằng cách cho phép Cloudflare Email Address Obfuscation, địa chỉ email trên trang web của bạn sẽ được obfuscated (ẩn) từ các chương trình, trong khi giữ chúng hiển thị cho con người. Trên thực tế, không có thay đổi hiển thị nào cho trang web của bạn cho khách truy cập.
Bạn có thể bật hoặc tắt tùy chọn Cloudflare Email Address Obfuscation trong mục Scrape Shield.
Các tùy chọn bảo mật khá hữu ích, rất đáng sử dụng. Ngoài ra, Cloudflare cũng cung cấp các chứng chỉ SSL miễn phí để mã hóa dữ liệu, xem ở dưới.
4. 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.
5. 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:
- Miễn phí.
- Kích hoạt và thiết lập đơn giản chỉ qua vài nhấp chuột.
- Bạn không cần phải có chứng chỉ SSL
- 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.
- Bạn có thể chuyển hướng HTTP sang HTTPS bằng cách tạo Page Rules.
Nhược điểm:
- 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).
- 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.
- 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 Certificates và Universal 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.
6. 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.
LỜI KHUYÊN KHI SỬ DỤNG CLOUDFLARE:
Vậy bạn chỉ nên sử dụng CloudFlare khi:
Website được đặt tại máy chủ ở nước ngoài, có lượng traffic chủ yếu ở Việt Nam. Hoặc cũng có thể là lượng traffic toàn thế giới.
Muốn che giấu địa chỉ IP máy chủ website của bạn đang sử dụng
Bài viết trên mình đã cung cấp những thông tin cơ bản và chính xác nhất về CloudFlare, về những ưu – nhược điểm cũng như thời điểm cần sử dụng nó. Mong rằng thông tin của mình phần nào giúp ích cho các bạn! Trong quá trình sử dụng CloudFlare, nếu gặp bất kỳ vấn đề gì bạn hãy để lại comment bên dưới, mình sẽ support hỗ trợ.