Cấu hình NGINX FastCGI Cache trên AAPANEL

Nginx được cấu hình để chuyển yêu cầu PHP sang PHP-FPM vì bản thân Nginx không thể xử lý mã PHP. Hãy cùng tìm hiểu cách mà LEMP hoạt động.

    1. Các trình duyệt Web gửi yêu cầu HTTP đến Nginx.
    2. Nếu Nginx tìm thấy mã PHP, nó sẽ chuyển yêu cầu tới PHP-FPM để xử lý mã PHP.
    3. Nếu cần, PHP-FPM sẽ truy vấn cơ sở dữ liệu MySQL/MariaDB để lấy những gì nó cần.
    4. PHP-FPM tạo ra một trang HTML tĩnh, sau đó trả lại cho Nginx.
    5. Cuối cùng, Nginx gửi trang HTML tĩnh tới trình duyệt Web.

Nginx hoạt động cực nhanh khi phục vụ các trang HTML tĩnh. Thay vì chuyển yêu cầu trang động tới PHP-FPM, Nginx có thể lưu trữ trang HTML đã tạo để lần sau nó có thể gửi các trang được lưu trong bộ nhớ cache tới trình duyệt Web.

    • Điều này có thể cải thiện đáng kể thời gian phản hồi của máy chủ và giảm tải cho PHP-FPM và MySQL/MariaDB.
    • Nó cũng cho phép Nginx phục vụ các trang Web từ bộ đệm khi máy chủ cơ sở dữ liệu PHP-FPM gặp vấn đề (MySQL/MariaDB thường sẽ không hoạt động khi máy chủ Linux của bạn hết dung lượng).

FastCGI là giao thức giữa Nginx và PHP-FPM nên cache được gọi là FastCGI Cache.

nginx fastcgi cache

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

Đầu tiên bạn hãy tạo một thư mục để lưu trữ các File cache. Mình sẽ tạo trong /var/run

mkdir /var/run/website_1

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

Mình sẽ cấu hình trực tiếp vào File nginx.conf. Bạn hãy SSH vào bên trong Cloud Server và mở File nginx.conf với lệnh sau.

vi /www/server/nginx/conf/nginx.conf

Lưu ý: Nếu bạn cấu hình cho nhiều Web bạn hãy tạo thêm 1 dòng fastcgi_cache_path với đường dẫn mới và thay đổi keys_zone

#FastCGI-Cache
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_path /var/run/website_1 levels=1:2 keys_zone=website_1:100m inactive=7d;
#fastcgi_cache_path /var/run/website_2 levels=1:2 keys_zone=website_2:100m inactive=60m;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
#FastCGI-Cache

Bước 3: Cấu hình fastcgi cache vhost domain

Tiếp theo cũng ở file này bạn thêm các đoạn mã cấu hình sau ở dưới #SSL-END .

Bên dưới là toàn bộ File cấu hình của mình, bạn hãy sao chép và dán vào sau đó chỉnh sửa lại thêm một chút thông tin về địa chỉ IP.

Lưu ý: File cấu hình bên dưới sử dụng PHP 7.4. Nếu bạn sử dụng PHP khác bạn có thể thay đổi PHP ở dòng fastcgi_pass unix:/tmp/php-cgi-74.sock;

#FastCGI-Cache
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-74.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 website_1;
                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 website_1 "$scheme$request_method$host$1";
        }
#FastCGI-Cache

Ở dòng allow "change_to_your_server_ip"; bạn thay nhập vào IP của Cloud Server bạn vào để khả dụng.

Khi cấu hình đã xong. Bạn cần làm một bước quan trọng nữa, bạn mở File cấu wp-config.php của web. Và dán vào đường dẫn đến thư mục lưu cache đã tạo ở Bước 1.

define('RT_WP_NGINX_HELPER_CACHE_PATH', '/var/run/website_1');

Bước 4: Cài đặt Plugin

Và đây là bước cuối cùng, bạn hãy cài đặt Plugin Plugin Nginx Helper để làm môi trường kết nối.

Sau khi cấu hình hoàn tất, bạn có thể kiểm tra trực tiếp ở cửa sổ SSH bằng lệnh currl -I https://my-domain

Như vậy đã hoàn tất các bước cấu hình. Với Website thứ 2 bạn chỉ cần làm từ bước 3 là được.

Qua bài viết này POWERNET đã hướng dẫn các bạn cách cài đặt Nginx FastCGI Cache giúp giảm tải máy chủ và giúp Website của bạn tải nhanh hơn. Chúc các bạn thực hiện thành công.

Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
Tel: 0236 267 5555
Hotline : 0979 347 999
Ticket: Bạn sử dụng Email đăng ký dịch vụ để truy cập vào hệ thống Ticket và gửi yêu cầu
Email: Bạn có thể dùng email đăng ký dịch vụ gửi trực tiếp về: support@powernet.vn