WP Rocket và Rocket-Nginx

WP Rocket và Rocket-Nginx về cơ bản là một combo khá hoàn hảo, sử dụng hình thức cache html đơn giản, hiệu quả, với combo này bạn có thể tăng x20-x30 lần sức chịu tải của server so với việc không cài 

Nếu thuần túy khách vào site chỉ views, ít tương tác kiểu comment, mua bán hàng hóa, số liệu thay đổi liên tục thì sơ sơ combo này có thể chịu đựng được trên 1000 client mỗi giây 😀 nói dễ hiểu là khoảng 86.400.000 views / ngày

Tất nhiên con số này chỉ tính thuần túy views thôi 😀 còn nếu đá sang kiểu như forum, post bài liên tục thì tạch sớm 😀 mỗi cái từ ngày có facebook thì mình cũng chẳng còn ai chạy forum làm gì nữa 😀

Mình cũng chưa thấy site nào có 1000 client mỗi giây mà ít tương tác nữa, tay nào viết bài mà có cả ngàn người xem mỗi giây thế thì thành thánh rồi :]] thành ra về con số trên nó cũng thuần túy là số liệu để bạn tham khảo thôi 😀

Nếu không cache, chạy thuần túy, thì một VPS RAM 1GB thông thường khoảng 50-70 người vào cùng lúc là mình thấy nó có triệu chứng ngáp ngáp rồi á, mà đấy là còn config phía server tốt á, chứ giai đoạn đầu tiên thèng bibica.review tự cài tất cả phía server, 5-7 mạng vào thấy đơ đơ nữa á :]]

Config phía server thì bạn có thể cài WebinolyCentmin ModEasyEngine, chúng là những *UNIX script giúp bạn tự động cài đặt một webserver tốt nhất hiện nay

WP Rocket sử dụng html cache, một hình thức cache đơn giản và hiệu quả nhất

Nó lưu tất cả trang php trên site bạn thành file html, khách vào xem trang đã cache thì nó chỉ load file html ra thôi, nên cơ bản rất nhẹ, hiệu quả, thực tế thì chỉ với WP Rocket ở bài test từ loader.io, nó cũng có thể chịu nổi 1000 truy cập mỗi giây, tuy thế RAM và CPU gần như bị vắt kiệt hoàn toàn và có 1 số truy cập bị lỗi, thời gian truy cập trung bình ~ 3s, khá là cao, nói thật ở thời điểm này, nếu bạn google ra kết quả tìm kiếm, ấn 1 phát vào site mà chờ 3s thì ít khi ai còn chịu khó ngồi chờ

Nói đơn giản hơn thì khi sử dụng html cache, ở đây cụ thể là WP Rocket thì site của bạn có thể tăng sơ sơ hiệu xuất chịu tải lên 20 lần so với việc không cài 😀

Tiếp theo ta sử dụng thêm Rocket-Nginx cho WP Rocket

Bạn cũng thấy, nếu chỉ dùng WP Rocket, tuy trang đã được cache, nhưng khi khách vào site, nó vẫn phải chạy lệnh php từ WordPress để load cái file html đó ra, tasks từ 42 -> 142, ít người vào thì thoải mái, tuy thế khi số lượng nhiều thì nó cũng ngắc ngoải, Rocket-Nginx được SatelliteWP viết ra để khắc phục tình trạng này

Nôm na là bây giờ, khi khách vào site, thay vì WP Rocket chạy, thì giờ Nginx sẽ chạy, nó sẽ load các file html nó thấy ra trước, nếu không thấy file cache thì nó để WP Rocket chạy 😀

Ban đầu: NGINX → PHP-FPM → PHP (WP-Rocket) → Static file
Sau khi cài Rocket-Nginx: NGINX → Static file

Chính vì đi thẳng NGINX → Static file nên bạn phải cài thêm cronjob, để nó tự chạy wp-cron giúp tự clear cache và precache nữa 😛

Kết quả là giờ khi Nginx chạy, nó chẳng phải load bất cứ file php nào cả, với 1000 truy cập mỗi giây, nó chỉ ngốn khoảng 60% CPU và RAM, thời gian truy cập trung bình giảm xuống chỉ còn 1.3s như hình và đặc biệt là không có bất cứ kết nối nào có lỗi, hiệu quả là rõ ràng

Một số người cho rằng Redis là công nghệ cache tiến bộ hơn, nhanh hơn, chịu tải tốt hơn phần là vì nó dùng Nginx để chạy thẳng, về lý thuyết là không khác mấy so với bạn dùng WP Rocket và Rocket-Nginx cả 😀

Tuy thế Redis nó lưu thẳng cache trên RAM, nên về lý thuyết, là tốn RAM hơn, chưa kể nó khá là khó cấu hình, WP Rocket vẫn dễ sử dụng và config hơn, gần như bạn có thể chạy nó hoàn hảo với mọi plugin 😛

Điểm hơi kẹt, là WP Rocket phải mua :]] giá cũng không rẻ, cơ chế preload của nó, không hiểu sao chạy rất dễ có lỗi với cái server của thèng Google, dễ hiểu là khi bạn có thay đổi gì trên site, như edit bài viết, có thêm comment … nó sẽ tự xóa cache cũ, load data mới, nhưng đôi khi có lỗi, nó vẫn load data cũ, không thay đổi ….

Về chuyện này mình không chắc là lỗi hay là do thiếu … license 😀 vì theo như code của WP Rocket là ngoài trừ chuyện tạo cache bằng XML sitemap, họ còn chạy bot tới site của bạn để lần ra các link trên site giúp tạo cache 😀 mình đoán là ai mua license thì bot nó mới chạy =))

Nói chung là hem chắc lắm, vì chưa có license để thử, cũng vì hem có license nên ếu thể chửi bới gì khi lỗi cả ^_^

Vấn đề mình gặp khi dùng WP Rocket chủ yếu là vấn đề preload, nếu tính năng này chạy hoàn hảo thì thú thực WP Rocket và Rocket-Nginx là một giải pháp tuyệt hảo cho mọi site chạy WordPress trong việc chịu tải

Về độ chịu tải thì dùng WP Rocket và Rocket-Nginx hiệu quả là miễn bàn rồi, kể cả dùng VPS 512 MB RAM cùi nhất nó vẫn có thể chịu hơn 1000 người online views cùng lúc mà vẫn đảm bảo tốc độ 😀 có điều thực tế tốc độ load trang khi cache và không cache, nhanh chậm hơn làm sao?

Cái này nó liên quan tới việc bạn config các thứ khác, như hình ảnh, file css, js, cdn … ra làm sao nữa, nên hiệu năng load trang thì nó không có con số cụ thể, ví dụ TTFB khi không cache bình thường ~ 150-450 ms, thì khi cache nó xuống còn 80-250 ms, kiểu na na thế, không hẳn là dùng cache thì tăng tốc độ gấp đôi, vì như mình nói từ đầu, sai số nhiều nên rất khó ra con số cụ thể, cũng không hẳn 100% cache là nhanh hơn không cache, ví dụ cụ thể là khi bài viết có người lần đầu vào thì nó sẽ cache lại bài viết sang dạng html (có thể là lưu vào hdd hoặc ram tùy config) thành ra người đầu tiên xem bài viết, nó sẽ chậm hơn vì phải tốn thêm thời gian save lại, tuy thế nó cũng rất nhanh, rất khó để cảm nhận, vì chỉ lệch đâu đó 0.1-0.2s, tổng thể thường là cache sẽ nhanh hơn là chạy bình thường

Cái quan trọng nhất của cache, là tăng độ chịu tải, nó giúp bạn có thể tăng lên x20- x30 lần so với bình thường, chính vì thế khi dùng cache, site nào đông người vào ta thường thấy nhanh hơn rất nhiều, còn nếu bạn test trên 1 người, thì giữa việc cache và không cache, nó lệch không đáng kể, muốn cảm giác về tốc độ thì liên quan tới hosting nhiều hơn

Nói chung bạn có thể dùng bất cứ plugin cache nào bạn thích, tổng thể đều khá giống nhau, là save thành file tĩnh (html), xong để Nginx load trực tiếp ra, WP Rocket nó chỉ khá hơn chỗ là có preload, giúp load trước thành các file tĩnh (dựa vào XML sitemap và bot), đỡ phải người đầu tiên vào bị chậm thôi

24 thoughts on “WP Rocket và Rocket-Nginx

  1. Chạy cronjob trước khi cài rocket nginx thì chỉ cần ssh vào rồi gõ lệnh như này là xong đúng ko? */15 * * * * wget -q -O – http://www.website.com/wp-cron.php?doing_wp_cron &>/dev/null
    hay có cần cd tới thư mục nào không bạn? mình không rành bạn hướng dẫn cụ thể chỗ này cho mình được không? cảm ơn nhiều lắm

  2. Đọc thấy wprocket nghe mà ham… search thấy plugin trả phí.. nên thôi…39$/năm

    :(:(:(

    • Có rất nhiều sản phẩm cache miễn phí thuần túy hiệu năng thì như nhau cả, chẳng hạn như Cache Enabler của KeyCDN, bạn thêm phần config Nginx cho nó thì cơ bản cũng chẳng khác gì WP Rocket Và Rocket-Nginx (trừ tính năng preload), tuy thế các bản miễn phí tác giả gần như ít update, support và hỗ trợ thêm cho các plugin khác

      WP Rocket thì bạn có thể dùng chung các bản license INFINITE, không giới hạn website, giá đâu đó 50.000 vnđ thôi ? (không kiếm ai đó xin về dùng là được)

  3. Hehe, sau khi tìm hiểu thì xác nhận lại với bác là 100% do thằng supersonic nhé 😀

      • Rocket-Nginx em không cài được vì hiện tại cái web cần thì nó đang chạy trên host share , còn mấy cái tối ưu này em sẽ áp dụng trên vps riêng sau 😀

        • Thế cái mỗi WP Rocket là đủ rồi 😀

          Mà thời buổi nào rồi còn xài host share thế 🙁

          • Hx, cái đó của công ty em không can thiệp được chứ vps giờ cũng rẻ, hết tháng này em cũng phải chuyển vps có vẻ con upcloud cũng ngon bổ rẻ bác nhỉ 😀

        • UpCloud độc thôi, Việt Nam không rõ có ông nào dùng chưa vì bọn này chuyên cho khách Euro :]]

          Dùng thì thực tế lâu dài mới biết, trang cần sự ổn định lâu dài ít phải nghĩ thì Vultr vẫn lành nhất 😀

  4. Hiên tại thì em 2 có 2 vấn đề phát sinh: 1 là lỗi về UX Builder của flatsome, sửa ngoài trang chủ mà nó cứ quay quay không ra, 2 là có cách nào khi login thì ra xem các trang không bị cache không bác? Nhờ bác chỉ dạy! <3

    • 99% liên quan tới Fast Velocity Minify :]]

      Tắt thử nó đi, clear hết cache load lại coi phải không đã 😀

      Trong Fast Velocity Minify có tính năng Fix Page Editors, bật nó lên để kiểm tra lỗi
      1 trình duyệt login vào admin và 1 trình duyệt để thường, nhìn xem có phần vào login bằng admin thì hiện bình thường mà phía bên trình duyệt guest không hiện ra không?

      Chạy nhẹ một hồi là biết vấn đề do đâu thôi 😛

  5. Có bắt buộc phải cài mục crontab không bác? Nãy giờ đọc hết 1 đống bài tối ưu của bác hoa cả mắt.
    Em đang cần tối ưu site flatsome bán hàng woocommerce mà thấy càng ngày càng chậm nên em đọc bài của bác thì sẽ tối ưu như này bác xem được không:
    + Site : Cài Fast Velocity Minify + wp rocket + Rocket-Nginx + SuperSonic + Jetpack
    + CDN: Cloudflare

    • Khi dùng Rocket-Nginx là nó đi thẳng NGINX → Static file, nghĩa là không thông qua WordPress, có điều sử dụng WP Rocket mình vẫn bỏ qua phần shop, admin … không cache nên thực tế bạn có vào phần admin hay có khách vào site ở phần shop thì cron vẫn chạy 😀

      Thực tế dùng linux cron thêm có 1 dòng code trên VPS, 1 dòng trong file config của WordPress thôi mà 😀 đâu mất bao nhiêu thời gian

      Wp rocket + Rocket-Nginx + SuperSonic: 3 cái này cài cùng lúc mình không chắc là chạy có xung đột không nhé :]]

      Shop thì mình thấy cài mỗi WP Rocket là đã dư thừa 😛 Rocket-Nginx cũng chỉ là dành cho site nào thật bự, liên tục quá tải thôi, trong các bài test của mình, cài WP Rocket vào là đã đủ đáp ứng 1000 người views cùng lúc, tạo order đơn hàng thì thú thực chưa có điều kiện test xem thử bao nhiêu người order cùng lúc thì tạch :]] vì bước này thì gần như không thể cache mà phải để VPS chạy trực tiếp, mình nghĩ 1 con VPS 512 MB RAM bèo bèo cũng có thể chịu tầm 20-50 người vào mua hàng cùng lúc rồi

      Rocket-Nginx thực tế dành cho bạn nào cuồng hiệu năng kiểu mềnh thôi, có cài Fast Velocity Minify + Jetpack + WP Rocket là VPS đã được giảm tải nhiều lắm rồi, quá đủ hiệu quả 😛

  6. Để chạy đc lệnh Git clone thì fai cài git, vậy cho mình hỏi, sau khi chạy xong, mình xóa remove git được k ? Vì mình lỡ cài bản cũ quá 1.8, mà giờ nó 2.17 luôn rồi, tìm cách update mà k đc.

    • Dùng VPS, nắm quyền root rồi thì làm gì mà không được bạn 😀

      Lệnh gì không rõ thì cứ hỏi cụ google tí là xong cả ấy mừ ^_^

Leave a Comment