Trời tính không bằng máy tính

blog, khám phá, tản mạn

#33: Mình đã tối ưu blog thế nào?

Bài viết này nhằm mục đích lưu trữchia sẻ kinh nghiệm tối ưu hóa web chạy trên WordPress. Ngoài ra, do kỹ thuật tối ưu hóa thì vô kể, và có thể mình bỏ lỡ thứ nào đó, vậy nên mình cũng mong nhận được ý kiến đóng góp.

Website của mình bắt đầu phát triển từ năm 2017, và từ đó tới giờ nó cũng đã có khá nhiều thay đổi. Hiện tại mình đang dùng dịch vụ hosting của HawkHost. Tiêu chí tối ưu hóa của mình hướng đến giải quyết cả 3 vấn đề:

  1. Giá thành thấp
  2. Tốc độ ổn định
  3. Mở rộng về lâu dài

Vậy mình đã làm những gì để thỏa mãn của 3 yêu cầu này? Hãy cùng xem các “lớp” từ bên trong tới bên ngoài server, mà mình đã thiết lập nhé!

1. Redis Cache

Lớp Redis Cache này là một plugin được cài vào bên trong WordPress, dùng để cache các Object (đối tượng) cơ bản nhất như dữ liệu bài viết, người dùng,…

Mình sử dụng plugin Redis Object Cache, kèm theo Redis server có sẵn của hawkhost. Nếu bạn hosting bạn không hỗ trợ Redis thì đừng lo, bạn vẫn có thể sử dụng Redis Labs để thay thế.

2. WordPress Network

Mình sử dụng chế độ multisite của wordpress. Chế độ này, hiểu nôm na là cho phép tạo nhiều trang wordpress trên cùng 1 server, mà không cần phải copy code và tạo database riêng cho mỗi trang.

Nhờ đó, mình có thể chia sẻ các cài đặt, cũng như plugin giữa tất cả các trang trong server. Nhờ đó, mình tiết kiệm công sức bảo trì, và cả 1 chút dung lượng nữa.

Tìm hiểu thêm về cách hoạt động và cài đặt WP network: https://wordpress.org/support/article/create-a-network/

3. LiteSpeed Web Server

Thực ra mà nói thì LiteSpeed không phải do mình lựa chọn, mà là do nó là web server mặc định của hawkhost.

Tuy nhiên, mình cũng ghi vào đây cho đầy đủ các lớp mà mình đang dùng. Chỉ cần cài litespeed + plugin của nó trên wordpress, thế là mình đã có 1 lớp cache trang tĩnh (static page) rồi!

4. Google Cloud Storage

Các ảnh / video trên trang web đều được mình lưu lên Google Cloud Storage (GCS), và link trực tiếp từ blog lên đó. Nhờ vậy, trên server hiện tại của mình hầu như chỉ phải lưu database. Tiết kiệm dung lượng, và bandwidth nữa.

Thật ra mình chọn GCS chứ không phải AWS S3, vì phí của GCS rẻ hơn, và tốc độ cũng không chênh lệch nhau mấy. Ngoài ra, GCS còn cho miễn phí 5GB đầu tiên, sau đó mới tính phí 0.026$/GB.

Mình sử dụng plugin WP Stateless cho việc kết nối nữa wordpress và GCS.

Bảng giá của GCS. Bên trái là giới hạn free,

5. Cloudflare

Cloudflare thì có lẽ quá nổi rồi, và không cần nói cũng biết.

Mình dùng tính năng rocket loaderHTML/CSS/JS minify của cloudflare. Ngoài ra, mình còn cài đặt mức bảo mật cao hơn dành cho trang login của wordpress, để tránh trường hợp bruteforce password.

Page rule để tăng cường bảo mật cho trang login

Hy vọng bài viết này sẽ giúp ích cho bạn. Chúc các bạn vẫn làm việc hiệu quả trong mùa COVID-19 này.

MỚI! Đăng ký nhận bài viết mới nhất qua chatbot: