Ở trong bài này, mình sẽ hướng dẫn bạn cách thiết lập NGINX cho W3 Total Cache để sử dụng vào việc lưu cache ngoài front-end, lưu cache trong back-end với APC Opcode Cache.
W3 Total Cache là plugin cache khá mạnh mẽ nếu bạn sử dụng WordPress ở môi trường VPS hay Dedicated Server vì nó chứa rất nhiều tùy chọn nâng cao mà nếu bạn biết cách thiết lập thì sẽ có thể tăng tốc website lên mức tối đa.
Lưu ý: Bài này chỉ dành cho bạn nào dùng Centminmod, nếu bạn không dùng Centminmod, hãy xem hướng dẫn W3 Total Cache này.
MỤC LỤC
Cài đặt APC
Do trong hướng dẫn này mình sẽ sử dụng APC để lưu Object Cache trong W3 Total Cache nên hãy cài đặt APC vào Centminmod bằng cách chạy file centmin.sh:
1 |
cd /usr/local/src/centmin-v1.2.3mod && ./centmin.sh |
Sau đó chọn tùy chọn số 9 (APC Cache Install). Đợi một xíu là xong.
Cài plugin W3 Total Cache và thiết lập plugin
Trước tiên là hãy chắc chắn thư mục domain của bạn tại /home/nginx/domains/example.com đã được cấp quyền cho user nginx và group nginx. Bạn có thể chạy lại lệnh sau cho chắc chắn, nhớ thay tên example.com lại đấy.
1 |
chown -R nginx:nginx /home/nginx/domains |
Bây giờ bạn hãy cài plugin W3 Total Cache vào rồi kích hoạt, và CHMOD lại các file và folder theo chuẩn của WordPress chứ nếu không W3 Total Cache sẽ báo lỗi:
1 |
find /home/nginx/domains/example.com/public -type d -exec chmod 755 {} + |
1 |
find /home/nginx/domains/example.com/public-type f -exec chmod 644 {} + |
Sau đó thiết lập W3 Total Cache tại Performence -> General như sau:
General Settings
- Page Cache – Enable – Disk: Enhanced
- Minify – Không chọn
- Database Cache – Không chọn
- Object Cache – Enable – APC
- Browse Cache – Enable
Còn lại để nguyên nhé, và ấn Save lại.
Page Cache
Hãy đánh dấu vào các mục sau, nếu mình không liệt kê nghĩa là không đánh dấu.
- Cache front page
- Cache feeds: site, categories, tags, comments
- Don’t cache pages for logged in users
- Automatically prime the page cache – 1800 seconds
- Purge Policy: Page Cache (Đánh dấu toàn bộ cũng được)
- Enable compatibility mode
- Specify the feed types to purge: rss2
Sau đó lưu lại.
Browser Cache
Đánh dấu vào toàn bộ tùy chọn “Enable HTTP (gzip) compression”.
Rồi, toàn bộ các mục còn lại bạn nên giữ nguyên nếu không hiểu.
Bây giờ bạn hãy ra ngoài thư mục public của domain kiểm tra xem đã có file nginx.conf chưa. Đây là file mà các plugin sẽ tự ghi nội dung vào giống như file .htaccess trên Apache. Cụ thể là W3 Total Cache sẽ ghi các rule của nó vào đây, nếu bạn thấy đã xuất hiện file này và có nội dung trên đó thì thành công.
Nhưng nếu ai đó biết bạn đang có file nginx.conf thì họ có thể dễ dàng đọc được file này, hãy thêm đoạn sau vào cuối file /usr/local/nginx/conf/drop.conf
1 |
location ~ /nginx.conf { access_log off; log_not_found off; deny all; } |
Việc cuối cùng cần làm nữa đó là khởi động lại PHP và NGINX với lệnh nprestart
.
Để chắc chắn là phương thức Disk Cache hoạt động tốt, hãy chạy đường dẫn http://example.com/w3tc_rewrite_test, nếu nó trả về kết quả là OK thì thành công.
Cấu hình NGINX cho W3 Total Cache
Bây giờ bạn hãy mở lại file cấu hình domain của bạn trong /usr/local/nginx/conf/conf.d/, tìm mục:
1 2 3 |
location / { try_files $uri $uri/ /index.php?$args; } |
Thay đoạn đó thành:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
set $cache_uri $request_uri; # POST requests and urls with a query string should always go to PHP if ($request_method = POST) { set $cache_uri 'null cache'; } if ($query_string != "") { set $cache_uri 'null cache'; } # Don't cache uris containing the following segments if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") { set $cache_uri 'null cache'; } # Don't use the cache for logged in users or recent commenters if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") { set $cache_uri 'null cache'; } # Use cached or actual file if they exists, otherwise pass request to WordPress location / { try_files /wp-content/cache/page_enhanced/${host}${cache_uri}_index.html $uri $uri/ /index.php?$args ; } location ~ ^/wp-content/cache/minify/[^/]+/(.*)$ { try_files $uri /wp-content/plugins/w3-total-cache/pub/minify.php?file=$1; } |
Và khởi động lại NGINX:
1 |
service nginx restart |
Xong rồi đó. ?
Centminod & WordPress [Phần 8] – Thiết lập W3 Total Cache
( Serie Centminmod & WordPress )
WordPress FAQ » Học WordPress » Hosting » Máy Chủ
WordPress FAQ | Hoc WordPress | Su dung WordPress | Lap trinh WordPress | Plugin WordPress | Thuat ngu WordPress | Theme WordPress | Lap trinh Themes | Lap trinh plugin | WordPress API | Hosting | May chu