Điều kiện trước khi cấu hình
Để cấu hình được NGINX FastCGI Cache trên aaPanel, bạn cần đảm bảo có những điều kiện sau:
- Đã cài đặt Website WordPress trên aaPanel
- Đã cài aaPanel trên VPS hoặc Server
- Có quyền truy cập SSH vào Server hoặc VPS với quyền root.
Các bước cấu hình NGINX FastCGI Cache trên aaPanel
Cấu hình NGINX FastCGI Cache trên aaPanel được thực hiện theo 3 bước chính:
- Bước 1: Tạo thư mục Cache
- Bước 2: Cấu hình NGINX
- Bước 3: Cài đặt và cấu hình Plugin NGINX Helper
Bước 1: Tạo thư mục Cache
Trước tiên bạn cần tạo một thư mục riêng để chứa các file cache. Hãy đăng nhập vào server bằng SSH với quyền root, sau đó thực hiện lệnh sau:
mkdir /var/run/fastcgi-cache

Bước 2: Thiết lập NGINX
Truy cập file cấu hình của website trên aaPanel. Sau đó chọn website cần cấu hình rồi nhấn Config.

Tiếp sau đó, bạn tìm dòng “include enable-php-83.conf” rồi thêm dấu # để vô hiệu hoá dòng lệnh này.

Bạn cần chỉnh sửa file vhost của domain để thêm cấu hình FastCGI Cache. Nếu website đã bật HTTPS, hãy chèn đoạn code này ngay bên dưới dòng #SSL-END.
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $skip_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
location ~ [^/].php(/|$) {
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-83.sock;
fastcgi_index index.php;
include fastcgi.conf;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
add_header X-Cache "$upstream_cache_status From $host";
fastcgi_cache WORDPRESS;
add_header Cache-Control max-age=0;
add_header Nginx-Cache "$upstream_cache_status";
add_header Last-Modified $date_gmt;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
etag on;
fastcgi_cache_valid 200 301 302 1d;
}
location ~ /purge(/.*) {
allow 127.0.0.1;
allow "change_to_your_server_ip";
deny all;
fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
}
#FastCGI-Cache
Lưu ý: Thay change_to_your_server_ip bằng địa chỉ IP của Server hoặc VPS. Sau đó điều chỉnh đường dẫn unix:/tmp/php-cgi-83.sock trong trường hợp bạn dùng PHP phiên bản khác 8.3

Trong đó:
- $host: Là tên miền mà người dùng truy cập vào, ví dụ như example.com.
- $scheme: Chỉ giao thức mà trình duyệt đang sử dụng để truy cập website, có thể là HTTP hoặc HTTPS.
- $request_uri: Toàn bộ đường dẫn URL của trang web, bao gồm cả phần tham số đi kèm nếu có.
- $request_method: Xác định kiểu yêu cầu gửi tới server, phổ biến nhất là GET (để lấy dữ liệu) hoặc POST (để gửi dữ liệu).
Lưu thay đổi và khởi động lại NGINX. Khi đã thêm xong các đoạn cấu hình, hãy bấm Save để lưu lại.
Tiếp theo, cần reload NGINX để các thiết lập mới có hiệu lực, bằng cách sử dụng lệnh sau:
service nginx reload
Bước 3: Thiết lập và cấu hình plugin NGINX Helper
Mở file wp-config.php website WordPress sau đó nhập thêm lệnh:
define('RT_WP_NGINX_HELPER_CACHE_PATH', '/var/run/fastcgi-cache');
Bước tiếp theo, hãy tìm và tải plugin “Nginx Helper” trong thư viện plugin WordPress. Sau đó tiến hành cài đặt và kích hoạt để bắt đầu sử dụng.

Trong phần cài đặt plugin, chọn phương thức “Purge Method” là “Using a GET request to PURGE/url“, sau đó nhớ lưu lại cài đặt.

Kiểm tra NGINX FastCGI Cache
Khi đã hoàn tất việc cấu hình NGINX FastCGI Cache trên aaPanel, bạn có thể kiểm tra xem cache đã hoạt động chưa bằng lệnh curl trong SSH.
curl -I https://[Tên Domain]
Thay tên domain thành tên miền web của bạn. Nếu dòng nginx-cache trả giá trị là HIT thì nghĩa là cấu hình thành công. Nếu giá trị là MISS thì cấu hình chưa thành công.

Câu hỏi thường gặp
Tại sao cache không hoạt động dù đã cấu hình đúng?
Có một số nguyên nhân thường gặp khiến cache không hoạt động như mong đợi:
- Một số dòng cấu hình như fastcgi_cache_bypass hoặc fastcgi_no_cache có thể đang được thiết lập khiến NGINX bỏ qua cache. Ví dụ: nếu người dùng đăng nhập hoặc có cookie nhất định, hệ thống sẽ không cache để tránh xung đột phiên làm việc.
- Plugin của CMS như WordPress có thể tự thêm các header như Set-Cookie, Cache-Control: no-cache khiến cache bị vô hiệu.
- Đường dẫn lưu cache không có quyền ghi, hoặc server không đủ quyền/không tồn tại thư mục đó.
Bạn có thể kiểm tra file log của NGINX để xem chi tiết bằng lệnh:
tail -f /www/server/nginx/logs/error.log
Nên lưu cache ở đâu để đạt hiệu năng tối ưu nhất?
Đối với server có dung lượng RAM trống đủ lớn (trên 2GB), nên lưu cache vào RAM thông qua thư mục /dev/shm/nginx_cache để tối ưu tốc độ truy xuất. Đây là phương án nhanh nhất vì không cần truy xuất ổ đĩa vật lý. Nếu dung lượng RAM không đủ, bạn có thể lưu cache ở ổ cứng SSD, ví dụ /var/cache/nginx, nhưng cần đảm bảo ổ cứng có hiệu suất tốt.
Có cần dùng thêm plugin cache khi đã cấu hình FastCGI Cache không?
Nếu đã cấu hình FastCGI Cache đúng cách ở tầng NGINX, thì không cần dùng thêm plugin như WP Super Cache hoặc W3 Total Cache – trừ khi cần thêm tính năng như preload hoặc xóa cache theo sự kiện đăng bài.
Tuy nhiên, có thể kết hợp plugin Nginx Helper để tự động xóa cache khi có thay đổi trong WordPress (cập nhật bài viết, bình luận, xóa nội dung…).
Lời kết
Trên đây là bài viết hướng dẫn cấu hình NGINX FastCGI Cache trên aaPanel, nếu bạn còn cần hỗ trợ điều gì hãy liên hệ để LANIT support bạn nhanh nhất nhé!