Skip to content Skip to main navigation Skip to footer

Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x

Giới thiệu chung.

NGINX FastCGI Cache WordPress như thế nào? Nhắc đến cấu hình Cache thì chắn hẵn không còn xa lạ với bất kỳ ai khi triển khai website. Cache được được coi là “xương sống”, quyết định hiệu năng và tốc độ của website. Giả sử website của bạn phục vụ hàng trăm, hàng ngàn lượt truy cập mỗi ngày thì việc không triển khai cache sẽ làm cho hệ thống luôn ở trạng thái overload vì phải nhận request và phản hồi response liên tục. Khi bạn đã triển khai cache thì sẽ giảm tải đi response giúp cho máy chủ được nhàn rỗi hơn. NGINX là một máy chủ web phổ biến, hiệu suất cao có thể lưu trữ các trang web WordPress. Ngoài vai trò là một máy chủ web, nó còn được sử dụng như một reverse proxy, mail proxy, load balancer, và bộ đệm HTTP. Theo W3Techs 32.1% các trang web được cài đặt lên máy chủ NGINX (tính đến 25/05/2020)
Tăng tốc trang web với NGINX FastCGI Cache

Các bước thực hiện.

Bước 1: Tạo thư mục fastcgi-cache

Bạn sẽ cần tạo một thư mục fastcgi-cache để lưu cache vào đây. Bạn dùng lệnh sau để tạo cho nhanh nhé.
AZDIGI
mkdir /dev/shm/fastcgi-cache
Chú thích:
  • mkdir: lệnh tạo thư mục
  • /dev/shm/fastcgi-cache: thư mục được tạo

Bước 2: Cấu hình vào file domain.conf.

Bạn truy cập vào Website => Configuration để đến phần thiết lập nâng cao.
Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x
Bạn chọn Config sau đó nhập đoạn mã code mình để bên dưới trên dòng server như ảnh đính kèm.
Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x
AZDIGI
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_path /dev/shm/fastcgi-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
Mình sẽ giải thích các dòng vừa thêm vào để các bạn hiểu rõ hơn. fastcgi_cache_key: NGINX sử dụng chúng để tính khóa (mã định danh) của một yêu cầu. Quan trọng là, để gửi một phản hồi đã lưu trong bộ nhớ cache đến máy khách, yêu cầu phải có cùng một khóa với một phản hồi được lưu trong bộ nhớ cache.
  • $scheme: Yêu cầu scheme HTTP hoặc HTTPS
  • $request_method: Các phương thức yêu cầu thường là POST hoặc GET
  • $host:
  • $request_uri: URL yêu cầu
fastcgi_cache_path: Chỉ định số lượng các tham số
  • /var/cache/nginx: Đường dẫn thư mục cho bộ nhớ cache.
  • levels: Xác định phân cấp của bộ nhớ cache
  • keys_zone (name:size): Cho phép tạo vùng bộ nhớ chia sẻ nơi lưu trữ tất cả các khóa hoạt động và thông tin về dữ liệu (meta). Lưu ý rằng việc lưu trữ các khóa trong bộ nhớ sẽ tăng tốc quá trình kiểm tra, bằng cách giúp NGINX dễ dàng xác định xem MISS hay HIT của nó mà không cần kiểm tra trạng thái trên disk.
  • inactive: Chỉ định khoảng thời gian mà sau đó dữ liệu đã lưu trong bộ nhớ cache không được truy cập trong thời gian đã chỉ định sẽ bị xóa khỏi bộ nhớ cache. Giá trị 60m trong cấu hình ví dụ có nghĩa là các tệp không được truy cập sau 60m sẽ bị xóa khỏi bộ nhớ cache.
Sau đó bạn di chuyển và # dòng include enbale-php-73.conf
Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x
Nếu web của bạn đã cài đặt và kích hoạt SSL(HTTPS) bạn hãy thêm đoạn mã code sau vào sau dòng # SSL-END như ảnh đính kèm.
Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x
AZDIGI
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-73.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";
        }
Lưu ý: Dòng có đoạn allow “change_to_your_server_ip“; bạn hãy thay vào bằng IP của máy chủ bạn đang dùng nhé. Nếu không thay bạn sẽ gặp lỗi như sau.
Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x
Thực hiện allow IP sau đó save lại.
Sau đó thực hiện reload lại nginx với lệnh là
AZDIGI
service nginx reload
Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x

Bước 3: Cài đặt và cấu hình NGINX FASTCGI với Nginx Helper

Để kết hợp môi trường giao tiếp giữa website và máy chủ web. Bạn sẽ cài một Plugin để cài đặt kết hợp. Ở đây mình sẽ sử dụng Plugin Nginx Helper để cấu hình.
Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x
Thêm file cấu hình vào wp-config.php. Bạn truy cập vào mã nguồn mở file wp-config.php và thêm vào dòng như ảnh đính kèm.
Cấu hình NGINX FastCGI Cache WordPress trên aaPanel 6.x
AZDIGI
define('RT_WP_NGINX_HELPER_CACHE_PATH', '/dev/shm/fastcgi-cache');
Sau khi đã thêm file cấu hình, bạn hãy quay lại admin WordPress và bật các option như ảnh bên dưới lên.
Bạn save lại các phần thiết lập và hãy mở website ở trình duyệt ẩn danh để bắt đầu kiểm tra. Bạn mử debug trình duyệt sau đó di chuyển sang Tab Netword để load. Chọn website và xem Headers cache đã HIT hay là MISS nhé.
Như vậy là mình vừa hoàn tất hướng dẫn bạn thực hiện cấu hình NGINX FASTCGI lên máy chủ. Hi vọng qua tài liệu hướng dẫn này sẽ giúp bạn setup website có hiệu năng cao. Tốc độ load web cũng như TTFB được cải thiện nhiều hơn.
  • Hotline 247: 028 730 24768 (Ext 0)
  • Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com