Đứng ở góc độ cá nhân, mình thấy WP Rocket là plugin cache tuyệt vời nhất, đơn giản vì họ vẫn đang support sản phẩm cực kì tốt, nôm na là dùng WP Rocket bạn có thể tích hợp nó với rất, rất nhiều plugin khác mà không sợ lỗi, cá nhân dùng mình cũng rất hài lòng, nó có preload và xóa cache rất đúng ý, rất hiếm khi có lỗi
Tuy thế, khi dùng qua Easyengine và Webinoly họ đều nói Nginx Fastcgi Cache là một hình thức cache tiên tiến ở tầng server, và đánh giá cực kì cao hình thức cache này, thật sự mình rất nể trình độ của người viết ra Easyengine và Webinoly, tuy thế mình không đồng tình với quan điểm này lắm, plugin hay gì cho cache, mục đích cuối vẫn là tăng khả năng chịu tải và tốc độ cho website, tuy thế không thể bỏ qua vấn đề tính năng và khả năng sử dụng, không thể chỉ vì cache mà bạn phải bỏ đi rất nhiều plugin khác đang dùng, lý do chỉ đơn giản vì nó sẽ không hoạt động được, chưa kể với các plugin cache mới hiện nay, phần nhiều họ viết load thẳng từ Nginx, không còn thông qua WordPress nữa, thành ra hiệu năng cũng rất tuyệt vời
Nginx Fastcgi Cache khi mình dùng, thì nó bị tình trạng là không clear cache các widget, đơn giản nhất nếu bạn dùng widget để hiện các bài viết mới, các comment mới, thì khi có comment hay bài viết mới, thường nó sẽ … không hiện ra, vẫn dùng cache cũ :(( và phần sử dụng của nó thì ta nói, bạn phải ngồi đọc lại khá nhiều phần để có thể config theo đúng ý
# WPFC NGINX CONFIGURATION # DO NOT MODIFY, ALL CHANGES LOST AFTER UPDATE Webinoly set $skip_cache 0; # POST requests and URL with a query string should always go to php if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } # Don't cache URL containing the following segments if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|wp-.*.php|index.php|/feed/|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") { set $skip_cache 1; } # Don't use the cache for logged in users or recent commenter or customer with items in cart if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in|woocommerce_items_in_cart") { set $skip_cache 1; } # Use cached or actual file if they exists, Otherwise pass request to WordPress location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass php; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache WORDPRESS; }
Cơ bản thì file config chuẩn của Fastcgi đa phần như trên, muốn thêm gì thì thêm ở dòng 12 và 16, như đây họ đã để sẵn không cache phần wp-admin, member và phần giỏ hàng cho shop, cũng tương đối đủ dùng, thực tế mình đã phải bỏ phần đếm views của bài post khi dùng Nginx Fastcgi Cache, các widget mình đang chạy trên bibica.net cũng gần như không đổi nên mới chạy ổn
Tuy khá khó config, bù lại hiệu năng của nó so với các plugin khác đúng là tuyệt, ở bài test loader.io nó pass nhẹ nhàng 1000 client mỗi phút mà chỉ có 1 ít lỗi nhỏ, thời gian load trung bình chỉ 2166 ms, CPU dùng chỉ ~ 50% (gói rẻ nhất của Amazon Lightsail Singapore, RAM 512 MB)
Nếu dùng plugin khác, thì thường CPU phải hú lên 100% và như bạn biết, khi CPU load 100% bạn vào trang sẽ vô cùng ỳ ạch, thật ra cũng chỉ test cho vui, thực tế site bạn nào có 1000 người online cùng lúc mà còn dùng mấy gói 512 MB thì khá bựa á 😀
Và điểm cuối cùng có thể nhắc tới đơn giản là nó …. FREE 😀 bạn không phải tốn chi phí cho vấn đề cache
Cấu hình trong WordPress thì bạn làm như hình là được 😀
Tốc độ khá ổn định khi truy cập từ khắp nơi trên thế giới 😀
Thật sự thì mình không khuyến khích dùng Nginx Fastcgi Cache, đơn giản vì nó quá khó để tùy biến và sử dụng, mình cũng chỉ dùng nó trên bibica.net, một trang mà gần như đã tắt sạch các plugin và các widget liên quan, nếu bạn thích cache, mình vẫn khuyên dùng WP Rocket và Rocket-Nginx, nó dễ sử dụng, tính năng mạnh và hiệu năng cũng rất tuyệt vời
cái Nginx Fastcgi Cache nó kinh khủng bố đến nổi đổi theme rồi mà mọi trình duyệt mới vẫn không nhận theme mới luôn @@.
Phải dùng kèm Nginx Helper plugin để purge cache chứ không là ngu người.
Mặc định khi cài Nginx Fastcgi Cache vào là họ từ cài Nginx Helper vào rồi mà 😀
Chủ yếu mục đích Nginx Fastcgi Cache sinh ra là để cache, tăng độ trâu chó chịu tải của site, chứ nó không đi hướng dễ sử dụng, nên cũng chỉ các site tĩnh, kiểu thèng bibica.net, không dùng shop, không chạy các thứ thay đổi nhiều thông tin, còn bạn nào show kiểu bài viết, comment, đếm số lượt đọc bài post …. là Nginx Fastcgi Cache gần như không dùng được
Tổng thể cache mình vẫn recommend dùng WP Rocket và Rocket-Nginx, hiểu quả và tùy biến cao, chạy ổn định và có precache 😀
Hay quá ad ơi, lại dễ hiểu nữa!
Tiện thể làm luôn bài viết về Redis cache đi ad, hj
Chúc ad sức khỏe để ra nhiều thêm các bài viết chất lượng!
Redis cache nói cho dễ hiểu là các thông tin từ database đưa ra, nó sẽ cache, như các wiget hiện ra, cụ thể như thèng bibica.net là phần “Featured Posts” ở bên phải trang chẳng hạn, hay như các comment mới ….
Tổng thể thì wordpress nặng nhất là việc lấy các data từ database ra, dùng Redis cache thì nó sẽ tự lôi các thông tin này ra từ ram, lý thuyết là nhanh và nhẹ
Mỗi cái là nó “vô cùng khó” xử lý, ví dụ như bạn edit bài viết, cụ thể như bài “Cloud VPS UpCloud – Đã hỗ trợ thanh toán Paypal” nằm ở phần “Featured Posts”, bạn đổi nó thành “Cloud VPS UpCloud” thì khi ấn SAVE, bài viết của bạn nó hiểu và nó sửa lại, nhưng ở các phần khác thì nó không xóa cache, vẫn cứ lôi cache cũ ra dùng lại
Nó chồng chéo và dễ sai lên rất nhiều, không phải ngẫu nhiên mà người ta nói cache thành file html và lưu trên ổ cứng là đơn giản và hiệu quả nhất 😀
Thực tế mình vẫn chỉ recommend WP Rocket và Rocket-Nginx để cache trên WordPress thôi 😀
Còn nếu bạn thích cái cảm giác xé gió bất kể truy cập từ mọi nơi trên thế giới thì cứ thử SuperSonic trên Cloudflare là được (https://bibica.net/supersonic-va-cloudflare-ttfb-3x-ms/)
Cân tất cả mọi thể loại cache, 10.000 client mỗi giây vẫn … chiến hết nhá :]]
Trang mình wordpress (không cài plugin cache) chỉ dùng redis + nginx helper, real time 5k CPU vẫn có 35% tất nhiên là không không cache qua Cloudflare vì chả cần thiết vì redis nó cache hết rồi. Nhưng phải công nhận Redis nó phức tạp, nhiều cái oái ăm. Mỗi lần sửa post 1 là phải nhét post đó vào nginx helper để nó clear cache 2 là purge all (nếu lười) >__<
Cái real time 5k là info từ đâu 😀 Google Analytics à, thường thì 1 core CPU nó hú lên tầm 3k client 1s là ngáp ngáp cả rồi, cụ thể thì cứ chạy loader.io vài vòng là có kết quả 😀
Nói chung cache bằng redis mà hiệu quả thì người ta đã dùng cả rồi 😀
Nguyễn Minh Hùng trước tôi dùng Redis cũng méo biết clear cache thế nào toàn phải vào VSP gõ “Rediscli flushall” mỗi khi sửa đổi mới nhục :)) xong sau mới biết là phải cài nginx helper :))
Mình sử dụng các dịch vụ bạn giới thiệu như Upcloud + Ubuntu 18.04 + Webinoly + Wp-rocket + Rocket-nginx. Sử dụng cho 2 site. Đều cho điểm số khá tốt toàn 9x và điểm A. Nhưng mình restart và kiểm tra nginx -t. Nó ra cảnh báo như vầy:
nginx: [warn] could not build optimal fastcgi_params_hash, you should increase either fastcgi_params_hash_max_size: 512 or fastcgi_params_hash_bucket_size: 64; ignoring fastcgi_params_hash_bucket_size
nginx: [warn] could not build optimal fastcgi_params_hash, you should increase either fastcgi_params_hash_max_size: 512 or fastcgi_params_hash_bucket_size: 64; ignoring fastcgi_params_hash_bucket_size
nginx: [warn] could not build optimal fastcgi_params_hash, you should increase either fastcgi_params_hash_max_size: 512 or fastcgi_params_hash_bucket_size: 64; ignoring fastcgi_params_hash_bucket_size
Mình làm thế nào cho nó hết cảnh báo như vậy.
Trong mặc định cài đặt của Webinoly thường rất ít có lỗi gì liên quan tới nginx (là liên quan tới hệ thống) như thế, cài Rocket-nginx vào thì nó thêm 1 dòng code trong file config, thử bỏ dòng đó đi, rồi restart thử lại xem thế nào 😀 hoặc muốn nhanh nhất thì liên hệ thẳng phần support của Webinoly, tác giả và cộng đồng sẽ hỗ trợ bạn 😀 mình thì gần nửa năm nay không đụng gì tới code nên quên ráo rồi 😀 tới cái info VPS cho mấy trang như bibica.net, bữa mình cài lại máy, xóa luôn mà chưa có thời gian để lấy lại á :]]
Về combo đơn giản và hiệu quả nhất thì Ubuntu 18.04 + Webinoly + Wp-rocket là đủ, nó có thể phù hợp tới 99% các nhu cầu, Rocket-nginx thì nó cũng chỉ là một môi trường ảo, đa phần mình cũng dùng để chạy test xem hiệu năng tới cỡ nào, chứ thực tế thuần Wp Rocket nó cũng chịu tải rất tốt rồi 😛
Mình còn chẳng dùng cả WP Rocket, mình dùng sản phẩm miễn phí của KeyCDN là Cache Enabler, và cũng chẳng có gì phàn nàn 😛
Tầm nữa năm nay mình khá ít viết gì hay cập nhập lại bài viết, chủ yếu lượng kiến thức mới nó cũng xoay quanh thế cả, gần như đọc hiểu hết bài “Tăng Tốc, Tối Ưu Hóa Cho WordPress” là đủ (https://bibica.net/tang-toc-toi-uu-hoa-cho-wordpress/)
Cũng có nhiều công nghệ, giải pháp khác …. tuy thế hiệu năng, thường nó chỉ tính theo ms, kiểu 0.001s, thành ra nó cũng chẳng có nhiều ý nghĩa về thực tế
Mà từ ngày Cloudflare họ có hỗ trợ cache server Việt Nam, thì mình cũng gần như không còn đụng chạm gì tới khoản tối ưu này nọ nữa rồi, giải pháp của Cloudflare quá sức triệt để 😀
Mình xài combo đó mấy cái site nó chỉ số toàn A 9x trở lên khá tốt. Nhưng bị cái lỗi đó khó chịu. Remove luôn fastcgi không biết được không?
Công nhận làm mấy cái server này liên tục còn nhớ. Bỏ làm chừng vài tháng là quên hết cho dù toàn xài tools không có cần nhớ mấy câu lệnh nhiều.
Hồi trước tôi cũng xài cloudflare mà thấy nó hay bị lỗi nên nghỉ chơi cloudflare. Chơi với bunnycdn cho site tiếng anh. Site tiếng việt đang xài vccloud cdn. Không biết giờ cloudflare có server VN thì ngon hơn xưa và hết lỗi không.
Thông báo đó do người dùng config thêm gì vào gây ra thôi, cụ thể cứ tạo 1 trang mới hoàn toàn xem có lỗi đó không thì biết ngay mà 😀
Mà theo như nói nãy giờ, nếu chỉ thêm Rocket-nginx ở phía server, thì thử bỏ dòng config đó ra xem còn thông báo đó không thì biết mà?
Về điểm số thì thật ra nó cũng có giá trị tham khảo cho vui ở thời internet vừa có thôi 😀 còn giờ trình duyệt chạy http2 cả rồi thì các kiến thức đó nó vô giá trị cả 😀 chung quy ông đừng chạy quá sai là được, kiểu cái ảnh thumbnail bé xíu, lại đi dùng cái ảnh gốc nặng 2-3MB để load ra thì hơi hãm 😀 còn lại sai bình thường thì cũng chẳng đáng kể
Ý về Cloudflare thì nói nhanh là không dịch vụ CDN nào có tuổi đi so được với Cloudflare hết, chủ yếu khác biệt là do cách nó vận hành, kiểu CDN, thì cũng phải vào trang chủ, vào trang chủ xong mới load các request tĩnh từ CDN về, trong trường hợp trang chủ host ở xa vị trí truy cập, thường vẫn sẽ …. chậm
Cụ thể nhất có thể nhìn vào thèng …. bibica.net cũng được 😀 thực tế nó đang dùng hosting tại US, mà truy cập từ VN tới cũng chỉ loanh quanh ~1s 😀
Nói chung cơ bản như tôi nói từ đầu ấy, cài Webinoly vào, để mặc định là xong, phía server gần như không cần phải sửa cái gì, trừ kiểu cài vài plugin khác vào, nó cần đổi ít thông số thì sửa, còn lại cứ để mặc định mà chạy là thừa nhanh và ổn định rồi, cá nhân tôi cũng chỉ chỉnh lại vài dòng ở cấu hình để thêm quyền cho vài plugin blackup là chính
Và nói tới đây phải nói tới tác giả của Centmin Mod ấy, phần config cấu hình server, hắn sửa kinh hoàng, nhanh thêm 0.001s và chạy không lỗi gì, hắn vẫn không chê và thêm vào 😀 thực tế khi dùng Centmin Mod tôi cũng có thử 1 vài config khác, nhưng chung quy đều …. thua xa setting mặc định tác giả để sẵn :]]