Cài đặt HestiaCP để có trang WordPress tốc độ cao

Hướng dẫn cơ bản cài HestiaCP ở đây, nhưng nó là hướng dẫn chung, chưa tối ưu hẳn hiệu suất, nên tôi viết bổ sung bài này để ai có nhu cầu cần một website nhỏ gọn, tải nhanh có thể áp dụng.

Cơ bản trên lý thuyết thì không có gì mới, chẳng qua là chúng ta làm mấy điều sau:

  • Loại bỏ các dịch vụ không dùng (email, dns cấp độ hosting);
  • Và quan trọng nhất là chuyển qua chỉ dùng Nginx thuần thay vì dạng lai Nginx + Apache, hoặc Apache thuần.

Tuy nhiên bài này bổ sung thêm phần cài đặt plugin xóa cache chuyên dụng cho HestiaCP, rất quan trọng để việc xóa cache thuận tiện và có trang cập nhật cao cho người dùng cuối.


Bước 1: Cài Debian thay vì Ubuntu trên VPS

HesitaCP cài được trên cả Debian và Ubuntu, trong bối cảnh muốn hiệu suất tối đa & tiết kiệm dung lượng ổ SSD, RAM thì Debian có lợi thế hơn đôi chút.

OS: Debian 12, cài trên Vultr HP 1GB RAM, AMD64, location: Singapore.

Ngoài lề: Tôi tranh thủ benchmark (kiểm tra hiệu suất) của VPS bằng YABS:

Benchmark VPS
Kết quả cho thấy tôi được cấp một VPS hơi yếu

Điểm Geekbench cho thấy đây là VPS yếu so với trung bình:

Geekbench khá yếu
Điểm gb6 chỉ 727, thấp hơn trung bình khoảng 200 điểm

Một lợi ích của việc này là có thể giúp cho bạn tránh vớ phải VPS yếu hơn mức trung bình. VPS ở Vultr, loại HP 6USD AMD, thường có IOPS 4k khoảng 70K, geekbench6 khoảng 900, chip thì quãng 2000MHz (EPYC Rome). Thi thoảng may mắn có thể được cấp cho VPS có geekbench6 tới 1200 hơn.


Bước 2: Nạp & tự động cập nhật các gói mới nhất cho Debian

Lệnh tương tự như bên Ubuntu (Ubuntu được phát triển từ Debian):

sudo apt update && sudo apt -y upgrade

Cập nhật xong thì khởi động lại VPS:

sudo reboot

Bước 3: Trỏ ba bản ghi A là cp, @ & www về IP của VPS

Tiện nhất là thực hiện qua Cloudflare.

@ & www là cho tên miền website chính thức.

cp là cho control panel quản trị VPS (địa chỉ này quan trọng, vừa để bạn truy cập trang quản trị, vừa để dùng vào việc quản lý xóa cache với plugin chuyên dụng sau này).

Trỏ về IP cho VPS

Bước 4: Tải về bản cài của HestiaCP

Nhập lệnh sau vào terminal:

wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh

Bước 5: Tối ưu dịch vụ cài & chỉ chọn cài Nginix thuần

Thực hiện lệnh dưới đây:

bash hst-install.sh --apache no --named no --exim no --dovecot no --clamav no --spamassassin no

Hoặc bạn chủ động vào link này: https://hestiacp.com/install.html, tùy chọn tắt các dịch vụ không muốn cài (chỉ khuyến khích khi bạn hiểu bản thân đang tắt dịch vụ gì), rồi copy lệnh tương ứng.

Sau đó làm theo hướng dẫn, chú ý khi nhập thông tin đến phần FQDN hostname thì nhập cp.ten-mien-cua-ban.com, thay ten-mien-cua-ban.com bằng tên miền thực tế của bạn.

Đợi khoảng 10 phút để quá trình cài đặt hoàn tất. Cuối cùng thì nhấn Enter cho nó khởi động lại.


Bước 6: Đăng nhập vào trang quản trị để cài đặt trang

Truy cập địa chỉ sau:

https://cp.ten-mien-cua-ban.com:8083

Bạn sẽ được chuyển sang trang login, đăng nhập bằng thông tin mà bạn đã nhập khi cài đặt.

1. Khi vào được trang quản trị, bạn thêm tên miền, tiếp đến nhấn Save:

Thêm tên miền trong HestiaCP

2. Vào tên miền cần cài đặt:

Vào tên miền cần cài đặt

3. Thiết lập chuyển hướng và https:

Chuyển hướng và https

Ở đây nghĩa là:

  • Tên miền dạng có-www sẽ được chuyển hướng về không-www
  • Cấp phát SSL thông qua Let’s Encrypt.
  • Chuyển hướng tự động dạng http về dạng https.

4. Bật Nginx cache:

Click vào Advanced Options. Tick chọn Enable FastCGI cache:

Bật FastCGI cache

Cache Duration là thời gian lưu cache trước khi nạp mới, nếu là blog có thể để là 1d (một ngày) hoặc hơn (ví dụ 7d, hoặc 30d).

Nếu cần thêm tài khoản FTP thì chọn thêm Additional FTP account. Và nhập thông tin cần thiết.

Thêm tài khoản FTP

Cuối cùng kéo lên và nhấn Save, để tất cả các cài đặt được áp dụng.


Bước 7: Cài đặt WordPress

Vào Quick Install App. Kéo xuống cuối đến phần WordPress, nhấn Setup để cài.

Nhập thông tin rồi nhất Save. Quá trình cài khoảng 15s là xong.


Bước 8: Cài plguin Hestia Nginx Cache

Cài plugin Hestia Nginx Cache để tự động xóa cache các phần liên quan trên web mỗi khi thêm, sửa, xóa bài viết. Phần cài này hơi phức tạp chút.

1. Thêm các IP hợp lệ cho API

Trước hết vào configure:

Vào phần cài đặt bảo mật để thêm IP cho API

Tiếp đến thêm IP, mỗi IP một dòng, có 2 IP cần thêm:

  • 127.0.0.1
  • IP của VPS

Ví dụ:

Thêm IP cho API

2. Lấy khóa API

Truy cập phần lấy khóa API
Truy cập phần lấy khóa API
Tạo khóa cho nhiệm vụ xóa cache
Tạo khóa cho nhiệm vụ xóa cache
Thông tin khóa, lưu ý là nó chỉ có thể được nhìn thấy 1 lần duy nhất
Thông tin khóa bí mật, lưu ý là nó chỉ có thể được nhìn thấy 1 lần duy nhất

3. Nhập thông tin vào plugin Hestia Nginx Cache

Nhập thông tin vào plugin Hestia Nginx Cache
Nhập thông tin tương ứng vào plugin Hestia Nginx Cache
  • Server hostname: địa chỉ của control panel, như hướng dẫn của chúng ta thì nó sẽ có dạng cp.ten-mien-cua-ban.com
  • Server port: cổng, mặc định sẽ là 8083
  • Access key: chính là Access key ID lấy ở phần tạo khóa
  • Secret key: chính là khóa bí mật lấy ở phần tạo khóa.
  • Hestia username: tài khoản đăng nhập Hestia, như trong phần cài đặt ở trên thì sẽ là admin
  • Domain to purge: tức là tên miền chúng ta muốn nhắm đến.
  • Tick chọn Show button in the admin bar để có thêm nút xóa nhanh cache toàn bộ trang khi cần.

Nhấn Save Changes để lưu là xong.

Test thử bằng cách sửa một bài rồi copy link mở trên trình duyệt ẩn danh xem sửa đổi có xuất hiện ngay không, nếu xuất hiện ngay là đã làm đúng (vì cache đã được xóa khi bạn sửa). Nếu nội dung cũ vẫn hiện, chứng tỏ cache chưa xóa => có lỗi cài đặt ở đâu đó.

Lưu ý: hóa ra HestiaCP không phù hợp với plugin Nginx Helper (một plugin rất phổ biến cho trang chạy trên Nginx).


Nhận xét

Mọi thứ của HestiaCP đều dễ dùng, control panel nhẹ, cài được Nginx thuần là các ưu điểm mạnh nhất của nó. Tuy nhiên việc cài plugin xóa cache Nginx chuyên dụng của nó hơi phức tạp, nhưng cũng chỉ là dạng thiết lập một lần, nếu chịu khó làm thì bạn sẽ có ngay một trang WordPress tốc độ cao mà không phải đau đầu cài thêm bất cứ plugin cache nào khác (như Cache Enabler, WP-Rocket,…)

Tôi tranh thủ dùng Apache Bench để xem khả năng chịu tải của nó:

1000 rq tổng cộng, 10 rq đồng thời
1000 rq tổng cộng, 10 rq đồng thời

Không quá nhanh, có lẽ vì máy khách test Apache Bench ở Hàn, máy chủ ở Singapore (ngoài ra đây là VPS khá yếu với geekbench6 chỉ 727 điểm), nhưng có thể thấy là nó rất ổn định.

Khi nâng lên 30 kết nối đồng thời thì gặp khó khăn từ mốc 95% đổ lên (tức khoảng 5% sẽ cảm thấy chậm):

1000 rq tổng cộng, 30 rq đồng thời

Một lần nữa nó cho thấy mức ổn định khá cao.

Viết một bình luận