Rocket-Nginx by SatelliteWP

Rocket-Nginx là một cấu hình Nginx cho plugin WP-Rocket . Nó cho phép Nginx phục vụ các tập tin lưu trữ trực tiếp trước đây mà không cần thông qua WordPress hay bất kỳ lệnh PHP nào. Nó cũng thêm các tiêu đề để cache CSS, JS và ảnh … để tận dụng bộ nhớ cache của trình duyệt nhằm giảm yêu cầu tới máy chủ web của bạn.

Sơ bộ để dễ hình dung thì thế này, bản thân WP Rocket đã cache rất tốt rồi, khi nó cache xong, thì ai vào nó chỉ load check bằng php 1 phát, xong load cái file html ra, riêng cái này đã giảm tải cho PHP, Mysql cực nhiều rồi, mình có thử trên loader.io, vô cùng hiệu quả, không cache thì đẩy nhẹ 250 truy cập 1 phút là sập, cache vào hú hẳn 10.000 truy cập trong 1 phút vẫn … ếu thấy xi nhê gì 😀

Thành ra bản thân cache, dù chỉ là HTML cũng đã rất hiệu quả cho các site nhỏ, views vừa phải, ít tương tác comment và search, chứ còn cỡ 100 thèng vào nó search với sì pam thì đủ vỡ mặt =))
Thật sự cũng không cần vẽ vời dùng thêm Rocket-Nginx làm gì, trừ trường hợp site của bạn 1 phút cỡ 300-500 người online mới quan trọng mấy vụ này, còn dưới thì cũng chủ yếu thử cho biết là chính, mà nhu cầu cao hơn, người ta nặng chủ yếu do database bị search và comment liên tục, chứ không phải ở select nữa, thành ra HTML cache cũng không còn hiệu quả, phải dùng cách khác ^_^

Đối với các tay mảng server khi nói tới cache, chúng nó cực kì dị ứng với kiểu cache ra file HTML rồi dùng php để load trang vì với chúng nó, cách này rất nặng và hao tài nguyên, minh chứng cho điều này, bạn có thể nhìn sang … WordPress.Com, bản thân trang này ban đầu cũng dùng Batcache (một plugin tạo cache html được đánh giá là số 1 thế giớ) cơ mà khi số người vào càng lúc càng đông thì cũng tạch, thành ra đối với chúng nó, cách cache html xong dùng php đọc này rất củ chuối

Rocket-Nginx nó như một lớp nằm bên trong, khi mình truy cập vào web, server sẽ kiểm tra trước xem cái link đó đã được tạo thành file html chưa, nếu nó thì nó chỉ việc lôi ra, không xử lý qua PHP nữa, cơ bản thì dùng cách này CPU gần như không thèm chạy 😀 vì PHP và Mysql gần như không tốn tí tài nguyên nào cả, tay này viết rất đơn giản, dễ đọc, dễ hiểu, ai không biết cái gì về server như mình cứ làm theo bài của nó là được 😀 tin tôi đi, nếu bạn đang dùng WP Rocket thì chỉ mất tầm 10 phút để hiểu các thứ họ viết thôi 😀

Gần như nó tống y xì cấu hình của WP-Rocket sang, nên WP-Rocket của bạn có viết thêm cái gì thì chỉ việc vào Rocket-Nginx thêm vài dòng thế là được, nó biết lúc nào có lưu cookie cho các giá trị thay đổi hay là member login … thì sẽ load file từ WordPress, lúc nào biết chỉ là file tĩnh để load thẳng từ server ra, nói chung là do bản thân WP-Rocket xử lý tốt rồi, nên bên SatelliteWP việc rất nhẹ, chỉ việc bê y xì vào thôi 😀

Mình có thử, nếu chỉ là thuần túy views kiểu blog thì đúng là thiên hạ vô địch, load 100% là file html, siêu nhẹ, tuy thế nếu áp lên WooCommerce thì vẫn kẹt kẹt, kiểu như ban đầu bạn vào, nó chỉ load toàn file html thẳng từ server ra, khi bạn vào shop, nhập 1 sản phẩm vào, nó sẽ biết là đang ở shop, load file từ WordPress, tuy thế khi mình trả giá trị sản phẩm về 0 lại, nó không biết load file thẳng file html lại, mà cứ load file từ WordPress ra (tất nhiên cũng là html, tuy thế nó phải chạy lệnh php 1 phát)

Ví dụ cụ thể như thế này, mình vào web, nếu file đó đã cache thành html, nó sẽ load thẳng file html ra, không thông qua WordPress, chú ý dòng X-Rocket-Nginx-Serving-Static: Yes (bên phải phía dưới)

Tiếp theo mình vào shop thử add 1 sản phẩm vào giỏ hàng, nó biết có sự thay đổi số lượng trên giỏ hàng, nên không lôi file html cũ ra nữa, là dùng WordPress để có thể thay đổi số lượng sản phẩm ở các bước tiếp theo

Tiếp theo mình gỡ sản phẩm đó ra, quay lại trang blog, đúng ra, ở bước này, nó phải load thẳng file html từ server ra, nhưng ở đây nó vẫn tiếp tục lấy file thông qua WordPess

Hiệu quả của nó chỉ được ~ 60-70% so với chuyện nó quảng cáo thôi, còn mấy cái vụ set cookie vào thẳng trình duyệt lâu hơn thì giờ mấy dịch vụ CDN, bản thân server khi config người ta cũng làm cả rồi, với cái cái vụ lưu vào trình duyệt thì cá nhân mình cũng gần như hạn chế dùng, vì khi site thay đổi các file đó, trình duyệt của khách phải chủ động xóa (kiểu phải ấn Ctrl + F5 để làm mới lại), SatelliteWP làm thêm vào có vẻ hơi thừa

WP Rocket mình dùng nó đang bị một cái lỗi khá bựa, mãi vẫn chưa biết cách nào để fix triệt để, nôm na, khi bạn cài vào, nó sẽ tự preload tất cả link theo XML Sitemap của site, hoặc nó sẽ tự lần mò link từ trang chủ, xong trang chủ đi tới trang nào liên quan nó sẽ tự cache các link đó, tạo thành đầy đủ file html, tiếp theo khi bạn sửa, xóa, thêm bài viết, comment ở blog, thay đổi số lượng sản phẩm, comment ở shop … nói chung là nếu có sự thay đổi trên site nó sẽ tự xóa file cache cũ (có khi chỉ là file có sự thay đổi, có khi là toàn bộ cache trên site, tùy trường hợp), tiếp theo nó preload lại file html mới cho đúng với số liệu hiện tại, ờ, thành ra cache html nó chỉ hợp với site views nhiều, ít có sự thay đổi, còn comment liên tục, shop mua bán liên tục thì giải pháp này khá là rác rưởi 😀
Tốc độ tạo link của nó rất nhanh, tuy thế nó lại rất hay bị vụ đơ, kiểu site mình có tổng cộng khoảng 100 link, nó phải tạo thành 100 file html, thì có khi nó làm tốt, có khi nó tạo được 2-10 link xong đơ ở đó luôn, không thèm nhúc nhích, thậm chí tới cả khi có người vào site, vào link đó, nó cũng không chịu tạo file html luôn :((

Bù lại, phương pháp tạo file HTML nó đơn giản, phù hợp với mọi loại hosting, không phụ thuộc vào nhà cung cấp dịch vụ, hiệu quả lại thấy rõ, server khỏe re mà tốc độ truy cập từ cải thiện rõ rệt

3 thoughts on “Rocket-Nginx by SatelliteWP

  1. Tony says:

    Đang sử dụng stablehost thì dùng cái rocket nginx này như thế nào bạn ơi. Stablehost nó dùng litespeed server

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *