[Info] Cài đặt Nginx FastCGI Cache để giảm thời gian phản hồi của máy chủ WordPress

Trong bài viết này, HOSTVN sẽ hướng dẫn bạn cách cài đặt Nginx FastCGI Cache để giảm tải cho máy chủ và giúp website tải nhanh hơn.

Cài đặt Nginx FastCGI Cache – Nginx là một trong những máy chủ web phổ biến nhất trên thế giới và có khả năng phục vụ các trang web lớn. Nó tiết kiệm tài nguyên hệ thống hơn Apache và có thể được sử dụng như một máy chủ web hoặc proxy ngược.

Trong bài viết này, HOSTVN Mình sẽ hướng dẫn các bạn cách cài đặt Nginx FastCGI Cache để giảm tải cho máy chủ và giúp website của bạn tải nhanh hơn.

Hướng dẫn cài đặt Nginx FastCGI Cache

1. Nginx FastCGI Cache là gì?

Nginx được định cấu hình để chuyển các yêu cầu PHP đến 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 thức hoạt động của LEMP.

  1. Các trình duyệt web gửi các 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 một trang HTML tĩnh, sau đó trả nó về Nginx.
  5. Cuối cùng, Nginx gửi trang HTML tĩnh đến trình duyệt web.

Nginx hoạt động siêu nhanh khi phục vụ các trang HTML tĩnh. Thay vì chuyển yêu cầu trang động đến PHP-FPM, Nginx có thể lưu vào bộ nhớ cache của trang HTML đã tạo để lần sau có thể gửi các trang đã 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 sự cố (MySQL / MariaDB thường 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 bộ nhớ đệm được gọi là FastCGI Cache.

2. Cách cấu hình Nginx FastCGI Cache

2.1. Bước 1: Cài đặt LEMP Stack

Điều đầu tiên bạn cần làm là cài đặt LEMP Stack trên máy chủ của bạn. Nếu bạn chưa cài đặt LEMP Stack, vui lòng tham khảo hướng dẫn cài đặt LEMP của HOSTVN:

2.2. Bước 2: Chỉnh sửa tệp cấu hình chính của Nginx

Chỉnh sửa tệp cấu hình chính của Nginx /etc/nginx/nginx.conf.

nano /etc/nginx/nginx.conf

Trong khối http, bạn thêm 2 dòng sau:

fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=phpcache:100m max_size=10g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

Screenshot_46 - Cài đặt Nginx FastCGI Cache

Yêu cầu fastcgi_cache_path sẽ tạo bộ đệm FastCGI. Lệnh này chỉ có sẵn trong khối http của tệp cấu hình Nginx.

  • Đối số đầu tiên chỉ định vị trí bộ nhớ cache (/ etc / nginx / cache /).
  • Thông số mức độ thiết lập hệ thống phân cấp thư mục hai cấp bên dưới / etc / nginx / cache /. Nếu có quá nhiều tệp trong một thư mục, nó có thể làm chậm quá trình truy cập tệp, vì vậy HOSTVN khuyên bạn nên sử dụng một thư mục hai cấp. Nếu tham số mức độ Nếu không được định cấu hình, Nginx sẽ đặt tất cả các tệp trong cùng một thư mục.
  • Đối số thứ ba chỉ định tên của tên thiết bị chung (phpcache) và kích thước của nó (100 triệu). Khu vực bộ nhớ này là để lưu trữ các khóa bộ nhớ cache và siêu dữ liệu như thời gian sử dụng. Có một bản sao của các khóa trong bộ nhớ cho phép Nginx nhanh chóng xác định xem yêu cầu là HIT hay MISS mà không cần phải chuyển đến đĩa, giúp tăng tốc đáng kể việc kiểm tra. Vùng 1MB có thể lưu trữ dữ liệu cho khoảng 8.000 khóa, do đó, vùng 100MB có thể lưu trữ dữ liệu cho khoảng 800.000 khóa.
  • max_size đặt giới hạn tối đa của kích thước bộ đệm (trong ví dụ này là 10GB). Nếu không được chỉ định, bộ đệm có thể sử dụng tất cả dung lượng ổ đĩa còn lại. Khi bộ nhớ cache đạt đến kích thước tối đa, trình quản lý bộ nhớ cache Nginx sẽ xóa các tệp được sử dụng gần đây nhất khỏi bộ nhớ cache.
  • không hoạt động : Dữ liệu không được truy cập trong thời gian không hoạt động (60 phút) sẽ bị xóa khỏi bộ nhớ cache bởi trình quản lý bộ nhớ cache, bất kể nó đã hết hạn hay chưa. Giá trị mặc định là 10 phút. Bạn cũng có thể sử dụng các giá trị như 12h (12 giờ) và 7d (7 ngày).
  • use_temp_path: Nginx lần đầu tiên ghi các tệp được lưu trong bộ nhớ cache vào bộ nhớ tạm thời (/ var / lib / nginx / fastcgi /). use_temp_path = tắt buộc Nginx phải ghi chúng trực tiếp vào thư mục bộ đệm để tránh sao chép dữ liệu không cần thiết giữa các hệ thống tệp.

Lệnh thứ hai fastcgi_cache_key xác định khóa để tra cứu bộ nhớ cache. Nginx sẽ áp dụng hàm băm MD5sum trên khóa bộ đệm và sử dụng hàm băm kết quả làm tên của các tệp bộ đệm. Sau khi nhập hai lệnh vào khối http, hãy lưu và đóng tệp.

Sau đó bạn tiến hành tạo thư mục chứa cache và phân quyền cho nó

mkdir -p /etc/nginx/cache
chown -R nginx:nginx /etc/nginx/cache

2.3. Bước 3: Chỉnh sửa khối máy chủ

Tiếp theo, mở tệp cấu hình Khối máy chủ (Vhost) của bạn.

nano /etc/nginx/conf.d/your-domain.conf

Cuộn xuống vị trí ~ .php $. Thêm các dòng sau vào phần này.

fastcgi_cache phpcache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;

Screenshot_48

  • Yêu cầu fastcgi_cache kích hoạt bộ nhớ đệm, sử dụng vùng bộ nhớ được tạo trước đó bởi lệnh fastcgi_cache_path.
  • Fastcgi_cache_valid đặt thời gian bộ nhớ cache tùy thuộc vào mã trạng thái HTTP. Trong ví dụ trên, các phản hồi có mã trạng thái 200, 301, 302 sẽ được lưu trong 60 phút. Bạn cũng có thể sử dụng các khoảng thời gian như 12h (12 giờ) và 7 ngày (7 ngày).
  • Nginx có thể phân phát nội dung cũ từ bộ nhớ cache của nó khi nó nhận được nội dung cập nhật từ máy chủ PHP-FPM. Ví dụ: khi máy chủ cơ sở dữ liệu MySQL / MariaDB không hoạt động. Thay vì chuyển lỗi cho máy khách, Nginx có thể phục vụ phiên bản cũ của tệp từ bộ nhớ cache của nó. Để kích hoạt chức năng này, chúng tôi đã thêm fastcgi_cache_use_stale.
  • fastcgi_cache_min_uses đặt số lần một mục phải được khách hàng yêu cầu trước khi Nginx lưu vào bộ nhớ cache. Giá trị mặc định là 1.
  • Khi bật fastcgi_cache_lock, nếu nhiều máy khách yêu cầu tệp không có trong bộ đệm, thì chỉ yêu cầu đầu tiên trong số các yêu cầu đó mới được phép thông qua máy chủ PHP-FPM. Phần còn lại của các yêu cầu chờ yêu cầu đó được bão hòa và sau đó sử dụng tệp word trong bộ nhớ cache. Nếu không bật fastcgi_cache_locktất cả các yêu cầu sẽ chuyển thẳng đến máy chủ PHP-FPM.
  • Dòng thứ 3 thêm tiêu đề X-FastCGI-Cache trong phản hồi HTTP. Nó có thể được sử dụng để xác nhận xem yêu cầu đã được phục vụ từ bộ nhớ cache FastCGI hay chưa.

Bây giờ hãy lưu và đóng tệp cấu hình Khối máy chủ (Vhost). Sau đó, kiểm tra cấu hình Nginx của bạn.

nginx -t

Nếu không có lỗi nào được báo cáo, hãy tải lại Nginx.

service nginx reload

2.4. Bước 4: Kiểm tra Nginx FastCGI Cache

Tải lại trang chủ của bạn một vài lần. Sau đó, sử dụng curl để lấy tiêu đề phản hồi http.

curl -I http://your-domain.com

Screenshot_51

Hãy nhìn vào tiêu đề X-FastCGI-Cache. ĐÁNH cho biết rằng phản hồi đã được phân phát từ bộ nhớ cache.

2.5. Bước 5: Định cấu hình loại trừ bộ nhớ cache

Phiên đăng nhập, bánh quy, ĐĂNG yêu cầu, chuỗi truy vấn, WordPress back-end, sơ đồ trang web, Cho ăn…. không nên được lưu vào bộ nhớ đệm. Để tắt bộ nhớ đệm cho những điều trên, hãy tạo tệp /etc/nginx/custom/nginx-cache.conf

mkdir -p /etc/nginx/custom
nano /etc/nginx/custom/nginx-cache.conf

Dán nội dung sau vào tệp

set $skip_cache 0;

# POST requests and urls with a query string should always go to PHP
if ($request_method = POST) {
    set $skip_cache 1;
}
if ($query_string != "") {
    set $skip_cache 1;
}

# Don't cache uris containing the following segments
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|^/feed/*|/tag/.*/feed/*|index.php|/.*sitemap.*.(xml|xsl)") {
    set $skip_cache 1;
}

# Don't use the cache for logged in users or recent commenters
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

Screenshot_49

Sau đó mở tệp Khối máy chủ (Vhost) của bạn và thêm phía trên dòng Vị trí ~ .php $

include /etc/nginx/customnginx-cache.conf;

Tiếp theo trong phần ~ .php $ Thêm các cấu hình sau.

fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;

Screenshot_50 - Cài đặt Nginx FastCGI Cache

Lưu tệp và tải lại Nginx để cấu hình có hiệu lực.

service nginx reload

2.5. Bước 5: Định cấu hình Auto Clear Cache với WordPress

Trước tiên, bạn cần cài đặt và kích hoạt plugin Nginx Cache trên trang WordPress của mình. Nếu bạn chưa biết cách cài đặt plugin cho WordPress, hãy xem hướng dẫn cài đặt plugin cho wordpress của chúng tôi. Sau khi cài đặt và kích hoạt quyền truy cập plugin Công cụ -> Nginx Cache và định cấu hình các plugin

Screenshot_54 - Cài đặt Nginx FastCGI Cache

  • Đường dẫn vùng bộ nhớ đệm: Đường dẫn đến thư mục bộ nhớ cache
  • Xóa bộ nhớ cache: Tự động xóa bộ nhớ cache khi nội dung thay đổi

Bây giờ bạn có thể sửa đổi một trong các bài đăng của mình để xem liệu bộ nhớ cache có tự động bị xóa hay không.

3. Kết luận

Qua bài đăng này HOSTVN Mình đã hướng dẫn các bạn cách cài đặt Nginx FastCGI Cache để giảm tải cho máy chủ và giúp trang web của bạn tải nhanh hơn. Nếu có ý kiến ​​đóng góp, bạn có thể để lại bình luận bên dưới.

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

bahis10bets.com betvole1.com casinomaxi-giris.com interbahis-giris1.com klasbahis1.com mobilbahisguncelgiris1.com piabetgiris1.com tipobettgiris.com tumbetgiris1.com betboro 1xbet giriş
bahis10bets.com betvole1.com casinomaxi-giris.com interbahis-giris1.com klasbahis1.com mobilbahisguncelgiris1.com piabetgiris1.com tipobettgiris.com tumbetgiris1.com betboro 1xbet giriş
antalya bayan escort
antalya bayan escort
antalya bayan escort