Thứ sáu, 27/06/2014 | 00:00 GMT+7

Cách sử dụng WP Super Cache và Jetpack Photon để tối ưu hóa hiệu suất WordPress trên Ubuntu 14.04

Trong hướng dẫn này, ta sẽ dạy bạn cách tối ưu hóa hiệu suất WordPress bằng cách sử dụng các plugin WP Super Cache và Jetpack Photon, và Nginx làm web server . Với cài đặt này, trang web WordPress của bạn có thể tăng đáng kể dung lượng user đồng thời bằng cách tận dụng các kỹ thuật lưu vào bộ nhớ đệm mà các plugin nói trên cung cấp.

WP Super Cache hoạt động bằng cách lưu vào bộ nhớ đệm các trang WordPress của bạn dưới dạng các trang HTML tĩnh để các yêu cầu trang, đối với một trang đã được lưu trong bộ nhớ cache, không cần phải được xử lý bởi các tập lệnh WordPress PHP. Thông thường, hầu hết khách truy cập trang web sẽ xem các version được lưu trong bộ nhớ cache của các trang WordPress, do đó server của bạn sẽ có nhiều sức mạnh xử lý hơn để phục vụ số lượng user ngày càng tăng. Plugin WP Super Cache được phát triển bởi Donncha O Caoimh.

Jetpack Photon là một dịch vụ tăng tốc hình ảnh hoạt động bằng cách lưu vào bộ nhớ đệm và cung cấp hình ảnh WordPress của bạn thông qua Mạng phân phối nội dung (CDN) của riêng nó. Photon là một trong những module có trong plugin Jetpack, được phát triển bởi Jetpack Team of Automattic.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần một server WordPress sử dụng Nginx làm web server của nó. Nếu bạn không có, bạn có thể sử dụng các hướng dẫn này để tạo một:

Yêu cầu hoặc giới hạn của plugin

WP Super Cache không hoạt động với các plugin sử dụng đối số truy vấn vì nó không hoạt động nếu bạn chuyển đối số truy vấn cho Nginx. Ngoài ra, vì lý do này, bạn không được sử dụng cài đặt WordPress Default Permalink (sử dụng số trang WordPress làm đối số).

Hạn chế của Jetpack Photon:

  • Bạn phải kết nối trang web của bạn với WordPress.com để kích hoạt Jetpack, yêu cầu account WordPress.com miễn phí
  • Trang web WordPress của bạn phải lắng nghe trên cổng 80 (Photon sẽ không hoạt động với các trang web chỉ HTTPS)
  • Sau khi ảnh gif, jpg hoặc png được lưu vào bộ nhớ đệm, nó sẽ không thể được cập nhật. Cách giải quyết duy nhất là reload hình ảnh đã đổi tên lên trang web .
  • Hình ảnh mất quá nhiều thời gian để sao chép vào CDN Photon (hơn 10 giây) phải được đổi tên và tải lên lại

Nếu bạn không muốn sử dụng Photon, vui lòng bỏ qua phần đó của hướng dẫn.

Bây giờ ta đã có các yêu cầu , hãy bắt đầu cài đặt WP Super Cache!

Cài đặt và cấu hình Plugin WP Super Cache

Bước đầu tiên để cài đặt Plugin WP Super Cache là download từ wordpress.org vào folder chính của bạn:

cd ~; wget http://downloads.wordpress.org/plugin/wp-super-cache.1.4.zip 

Nếu bạn chưa cài đặt gói extract , hãy thực hiện ngay bây giờ:

sudo apt-get install unzip 

Sau đó extract plugin WP Super Cache vào folder plugin WordPress của bạn (thay thế đường dẫn được đánh dấu bằng đường dẫn của bạn , nếu bạn đã cài đặt WordPress ở một nơi khác):

cd /var/www/html/wp-content/plugins unzip ~/wp-super-cache.1.4.zip 

Tiếp theo, ta sẽ thay đổi quyền sở hữu group của plugin:

sudo chgrp -R www-data wp-super-cache 

Và ta sẽ cho phép plugin ghi vào folder wp-content và file wp-config.php :

chmod g+w /var/www/html/wp-content chmod g+w /var/www/html/wp-config.php 

Bây giờ các file WordPress đã được cài đặt đúng cách, hãy kích hoạt plugin.

Kích hoạt Plugin WP Super Cache

Đăng nhập vào trang web WordPress của bạn với quyền là admin-user viên của bạn và đi tới Trang tổng quan ( http://example.com/wp-admin/ ). Kích hoạt plugin WP Super Cache, sau đó vào cửa sổ cài đặt của nó, theo các bước sau:

  1. Nhấp vào Plugin (thanh bên trái)
  2. Nhấp vào Kích hoạt ngay bên dưới WP Super Cache
  3. Nhấp vào Cài đặt WP Super Cache

Bật bộ nhớ đệm

Bây giờ ta sẽ kích hoạt bộ nhớ đệm và cấu hình WP Super Cache với một số cài đặt hợp lý:

  1. Nhấp vào tab Nâng cao
  2. Kiểm tra số lần truy cập Cache vào trang web này để truy cập nhanh.
  3. Chọn Sử dụng mod_rewrite để cung cấp file cache .

Thao tác này cấu hình WP Super Cache thành các file cache được truy cập và cài đặt mod_rewrite để Nginx phân phối các file được lưu trong bộ nhớ cache. Ta thực sự sẽ không sử dụng mod_rewrite vì nó là một plugin Apache và ta đang sử dụng Nginx làm web server của bạn , nhưng ta cần cập nhật cấu hình khối server Nginx của bạn để Nginx phân phát các file được lưu trong bộ nhớ cache một cách thích hợp. Ta sẽ đạt được điều đó sau khi ta chỉnh sửa thêm một vài cài đặt WP Super Cache (lưu ý: các cài đặt sau là tùy chọn):

  1. Kiểm tra các trang Nén để chúng được phục vụ nhanh hơn cho khách truy cập.
  2. Chọn Không lưu các trang vào bộ nhớ cache cho những user đã biết.
  3. Kiểm tra xây dựng lại bộ nhớ cache.
  4. Kiểm tra Kiểm tra trang chủ bổ sung.

Tiếp theo, bạn cần lưu cài đặt của bạn bằng cách nhấp vào nút Cập nhật Trạng thái , nút này sẽ nằm bên dưới cài đặt bạn vừa thay đổi:

Nút cập nhật trạng thái

WP Super Cache hiện đã được cấu hình để lưu vào cache các trang WordPress của bạn. Ta vẫn cần cấu hình Nginx để phục vụ các file được lưu trong bộ nhớ cache, nhưng hãy xem xét một số thứ khác trong cửa sổ cài đặt WP Super Cache.

Cảnh báo về Mod Rewrite và Garbage Collection

Đến đây, bạn sẽ thấy một số biểu ngữ cảnh báo ở đầu cửa sổ cấu hình WP Super Cache. Sẽ có hai cảnh báo về các luật Mod Rewrite (đây là cảnh báo đầu tiên):

Cảnh báo viết lại bản mod

Bạn có thể bỏ qua điều này vì ta sẽ sử dụng Nginx thay vì Apache.

Tiếp theo, bạn sẽ thấy cảnh báo về cài đặt Thu gom rác:

Cảnh báo thu gom rác

Cảnh báo này có thể được loại bỏ bằng cách loại bỏ nó (tức là nhấp vào nút "Loại bỏ") hoặc bằng cách cấu hình bộ sưu tập rác. Để cấu hình thu gom rác, hãy chuyển đến phần Thời gian hết hạn & Thu gom rác trong tab Nâng cao, sau đó cấu hình theo ý muốn của bạn, sau đó nhấp vào nút Thay đổi Thời hạn .

Xem nội dung bộ nhớ đệm

Bạn có thể xem danh sách tất cả các trang đã lưu trong bộ nhớ cache bằng cách chuyển đến tab Nội dung của cài đặt WP Super Cache. Tại đây, bạn sẽ thấy “Thống kê bộ nhớ cache”, hiển thị số lượng file được lưu trong cache (và file nào được lưu trong bộ nhớ cache). Bạn cũng có thể xóa bộ nhớ cache hiện tại từ đây.

WP Super Cache chỉ lưu trữ các trang được truy cập bởi những user chưa đăng nhập, chưa để lại comment hoặc chưa xem bài đăng được bảo vệ bằng password . Vì vậy, nếu bạn đang thắc mắc tại sao các trang bạn đang truy cập không được lưu vào bộ nhớ đệm, hãy thử xem trang web WordPress của bạn ở chế độ duyệt web riêng tư. Ngoài ra, Nginx vẫn chưa được cấu hình để phục vụ các file được lưu trong bộ nhớ cache, vì vậy bạn sẽ không thấy bất kỳ cải tiến nào về thời gian truy cập.

Cấu hình WP Super Cache bổ sung

Ngoài các cài đặt được thảo luận ở trên, có nhiều cài đặt khác mà bạn có thể thấy hữu ích hoặc thú vị. Ta sẽ đi qua các tab CDN và Tải trước.

Sử dụng CDN - Bỏ qua nếu bạn định sử dụng Jetpack Photon

Nếu bạn sử dụng CDN, hãy đảm bảo bật hỗ trợ CDN trong tab CDN . Tất cả các cài đặt bạn cần để giảm tải nội dung tĩnh của bạn đều nằm ở đây.

Tải trước bộ nhớ đệm

Trong tab Tải trước , bạn có thể cấu hình WP Super Cache để tự động lưu các trang vào cache . Điều này có thể được cấu hình để tải trước toàn bộ trang web hoặc một số lượng cố định các bài đăng gần đây của bạn vào một khoảng thời gian mà bạn chỉ định. Tải trước các trang cần tài nguyên hệ thống (CPU để truy xuất các trang và không gian đĩa để lưu trữ các trang tĩnh), vì vậy hãy cân nhắc điều đó khi quyết định xem bạn có muốn bật nó hay không.

Cấu hình Nginx để cung cấp file được lưu trong bộ nhớ cache

Bây giờ trang web WordPress của bạn đang lưu vào cache các trang bằng WP Super Cache, bạn phải cấu hình Nginx để phân phát các file được lưu trong bộ nhớ cache. Chỉnh sửa cấu hình khối server Nginx:

sudo vi /etc/nginx/sites-enabled/wordpress 

Nếu bạn đã làm theo các hướng dẫn yêu cầu , hãy đặt các dòng cấu hình sau ngay bên dưới dòng server_name :

    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/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php ;     }     

Sau đó, xóa các dòng tiếp theo cho đến location ~ \.php$ { .

Khởi động lại Nginx để thay đổi cấu hình có hiệu lực:

sudo service nginx restart 

Bây giờ các trang trên trang web WordPress của bạn sẽ được lưu vào bộ nhớ đệm thông qua WP Super Cache! Nếu bạn cũng muốn lưu hình ảnh của bạn vào bộ nhớ cache bằng cách sử dụng Jetpack Photon, hãy tiếp tục sang phần tiếp theo.

Cài đặt và kích hoạt Jetpack Photon

Download plugin Jetpack vào folder chính của bạn:

cd ~; wget http://downloads.wordpress.org/plugin/jetpack.latest-stable.zip 

Sau đó extract repository Jetpack trong folder plugin WordPress của bạn:

cd /var/www/html/wp-content/plugins unzip ~/jetpack.latest-stable.zip sudo chgrp -R www-data jetpack 

Jetpack đi kèm với một số module khác ngoài Photon, nhiều module được bật theo mặc định. Nếu bạn muốn sử dụng các module Jetpack khác, ngoài Jetpack, hãy bỏ qua chỉnh sửa sau và kích hoạt module Photon thông qua cài đặt plugin Jetpack trên console administrator WordPress của bạn. Nếu không, ta có thể vô hiệu hóa các module khác bằng cách thêm một vài dòng mã vào file PHP của plugin.

Mở wp-config.php để chỉnh sửa:

vi /var/www/html/wp-config.php 

Đi tới cuối file và thêm các dòng mã sau:

function change_default_modules() {     return array( 'photon' );  // activate these modules by default } add_filter( 'jetpack_get_default_modules', 'change_default_modules' );  function activate_specific_jetpack_modules( $modules ) {         $active_modules = array( 'photon' );  // enable these modules         $modules = array_intersect_key( $modules, array_flip( $active_modules ) );  // deactivate other modules         return $modules; } add_filter( 'jetpack_get_available_modules', 'activate_specific_jetpack_modules' ); 

Lưu và thoát. Bây giờ khi bạn kích hoạt plugin Jetpack, nó sẽ chỉ tải module Photon và vô hiệu hóa việc sử dụng tất cả các module Jetpack khác.

Kích hoạt Plugin Jetpack

Bây giờ, hãy đăng nhập vào trang web WordPress của bạn với quyền là admin-user viên và truy cập Trang tổng quan ( http://example.com/wp-admin/ ). Kích hoạt plugin Jetpack, sau đó vào cài đặt của nó, theo các bước sau:

  1. Nhấp vào Plugin (thanh bên trái)
  2. Nhấp vào Kích hoạt ngay bên dưới Jetpack
  3. Nhấp vào Kết nối với WordPress.com , trong biểu ngữ màu xanh lá cây gần đầu cửa sổ Plugin
  4. Nhập thông tin đăng nhập WordPress.com của bạn và nhấp vào Authorize Jetpack

Ủy quyền Jetpack

Như vậy, tất cả các hình ảnh trên trang web WordPress của bạn (.png, .jpg, .gif) sẽ được cung cấp từ Photon CDN của Jetpack. Dưới đây là một số cách server của bạn sẽ bị ảnh hưởng:

  • Tiêu thụ ít băng thông hơn : Server của bạn sẽ sử dụng ít băng thông đi hơn vì Photon CDN, được cung cấp bởi WordPress.com, sẽ phân phát hình ảnh trên trang web
  • Tiêu thụ ít tài nguyên hơn : Nó sẽ tiêu thụ ít CPU và bộ nhớ hơn vì nó không còn cung cấp hình ảnh cho user và chủ yếu chỉ là các trang tĩnh
  • Nhiều user hơn : Nó sẽ có thể xử lý nhiều user đồng thời hơn vì nó sử dụng ít tài nguyên hơn cho mỗi yêu cầu

Đó là nó! Photon CDN sẽ lưu vào bộ nhớ cache và phục vụ hình ảnh của bạn khi chúng được yêu cầu. Lưu ý bạn có thể tắt Photon trong cài đặt plugin Jetpack bất kỳ lúc nào, nếu bạn quyết định rằng bạn không muốn sử dụng nó.

So sánh hiệu suất

Để cho bạn biết về lợi ích hiệu suất tiềm năng của cài đặt này, ta đã cài đặt hai VPS 1 CPU / 1GB RAM (một không có WP Super Cache, một có bộ nhớ đệm WP) và ta đã sử dụng Apache JMeter để thực hiện kiểm tra tải đối với chúng (nhiều user truy cập 5 trang WordPress hơn 10 giây trong một vòng lặp).

Server không được lưu trong bộ nhớ cache có thể xử lý khoảng 3 user mô phỏng mỗi giây trước khi hiển thị các vấn đề về hiệu suất do sử dụng CPU.

Server được lưu trong bộ nhớ cache, với WP Super Cache được cài đặt, có thể phục vụ hơn 50 user mô phỏng mỗi giây ( hàng triệu người mỗi ngày ) mà không cho thấy bất kỳ sự suy giảm hiệu suất nào - trên thực tế, nó trả lại các yêu cầu nhanh hơn vì các trang được yêu cầu đã được lưu vào bộ nhớ cache!

Hướng dẫn về cách sử dụng Apache JMeter để thực hiện kiểm tra tải của riêng bạn có tại đây: Cách sử dụng Apache JMeter để thực hiện kiểm tra tải trên web server

Kết luận

Đến đây bạn đã cài đặt WP Super Cache và Jetpack Photon, bạn có thể phục vụ nhiều user hơn trước. Bạn có thể cần chơi với cài đặt WP Super Cache cho đến khi bạn cảm thấy mình có cấu hình phù hợp nhất với nhu cầu của bạn .

Hãy đăng câu hỏi hoặc so sánh hiệu suất của bạn !


Tags:

Các tin liên quan

Cách cài đặt Tinc và thiết lập VPN cơ bản trên Ubuntu 14.04
2014-06-18
Cách cài đặt và sử dụng OTPW cho mật khẩu SSH dùng một lần trên Ubuntu 14.04
2014-06-17
Cách cài đặt và cấu hình Syncthing để đồng bộ hóa các thư mục trên Ubuntu 14.04
2014-06-16
Cách sử dụng Icinga để giám sát server và dịch vụ của bạn trên Ubuntu 14.04
2014-06-13
Cách sử dụng Logstash và Kibana để tập trung log trên Ubuntu 14.04
2014-06-11
Cách cài đặt Graylog2 và tập trung log trên Ubuntu 14.04
2014-06-06
Cách cài đặt và cấu hình OpenLDAP và phpLDAPadmin trên server Ubuntu 14.04
2014-06-05
Cách cấu hình Collectd để thu thập số liệu hệ thống cho Graphite trên Ubuntu 14.04
2014-06-03
Cách cấu hình StatsD để thu thập số liệu thống kê tùy ý cho Graphite trên Ubuntu 14.04
2014-06-03
Cách cài đặt OctoberCMS trên VPS chạy Ubuntu 14.04
2014-05-28