Hướng dẫn dùng fastcgi trong PHP
Trong bài viết này, HOSTVN sẽ 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 load 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 với dung lượng lớn. Nó tiết kiệm tài nguyên hệ thống hơn Apache và có thể được sử dụng làm máy chủ web hoặc proxy ngược. Trong bài viết này, HOSTVN sẽ 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 load nhanh hơn. Mục lục
1. Nginx FastCGI Cache là gì?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.
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.
FastCGI là giao thức giữa Nginx và PHP-FPM nên cache được gọi là FastCGI Cache. 2. Cách cấu hình Nginx FastCGI Cache2.1. Bước 1: Cài đặt LEMP StackViệc đầu tiên các bạn cần làm là cài đặt LEMP Stack trên máy chủ của mình. Nếu bạn chưa cài đặt LEMP Stack hãy 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 tin cấu hình chính của NginxChỉnh sửa tập tin cấu hình chính Nginx /etc/nginx/nginx.conf.
nano /etc/nginx/nginx.conf Trong http block, các 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"; Lệnh fastcgi_cache_path sẽ tạo bộ đệm FastCGI. Lệnh này chỉ khả dụng trong block http của tệp cấu hình Nginx.
Lệnh thứ hai fastcgi_cache_key xác định khóa để tra cứu bộ đệm. Nginx sẽ áp dụng hàm băm MD5sum trên khóa bộ đệm và sử dụng kết quả băm làm tên của các tệp bộ đệm. Sau khi nhập hai chỉ thị trong block http, lưu và đóng tệp. Sau đó các 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 Server BlockTiếp theo mở tập tin cấu hình Server Block (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 trong 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;
Bây giờ lưu và đóng tệp cấu hình Server Block (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 thông báo hãy tải lại Nginx. service nginx reload 2.4. Bước 4: Kiểm tra Nginx FastCGI CacheTả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 Hãy xem tiêu đề X-FastCGI-Cache. HIT cho biết phản hồi đã được phục vụ từ bộ đệm. 2.5. Bước 5: Cấu hình loại trừ cachePhiên đăng nhập, cookie, POST request, chuỗi truy vấn, back-end WordPress, sitemap, Feed…. không nên được lưu trữ trong bộ đệm. Để tắt bộ đệm ẩn cho các mục trên, hãy tạo file /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 file 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; } Sau đó mở file Server Block (Vhost) của bạn và thêm phía trên dòng Location ~.php$ include /etc/nginx/customnginx-cache.conf; Tiếp theo trong section ~.php$ thêm vào các cấu hình sau. fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_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: Cấu hình tự động xóa bộ nhớ cache với WordPressĐầu tiên, bạn cần cài đặt và kích hoạt plugin Nginx Cache trên trang web WordPress của bạn. Nếu chưa biết cách cài đặt plugins cho WordPress hãy xem Hướng dẫn cài đặt plugins cho wordpress. Sau khi cài đặt và kích hoạt plugins truy cập Tools -> Nginx Cache và cấu hình plugins
Bây giờ bạn có thể sửa đổi một trong những bài viết của mình để xem liệu bộ đệm có được tự động xóa hay không. 3. Kết luậnQua bài viết này HOSTVN đã 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 load nhanh hơn. Nếu có bất kỳ ý kiến đóng góp nào các bạn có thể dể lại bình luận ở bên dưới. |