Xenforo Sử dung Cache Xenforo để giảm tải sever và tăng tốc cho diễn đàn

Thảo luận trong 'Forum PhpBB, vBullentin, Xenforo ...' bắt đầu bởi Thanh Hằng, 20/8/13.

  1. Thanh Hằng

    Thanh Hằng Thành viên chính thức

    [h2]Sử dung Cache Xenforo để giảm tải sever và tăng tốc cho diễn đàn[/h2]​
    Chào các bạn, lướt qua một số tut hướng dẫn về cache trên cộng đồng Xenforo, mình nhận thấy có nhiều bài hướng dẫn về cách sử dụng cache trên Xenforo nhưng có một số điểm chưa rõ ràng. Nay mình sẽ hướng dẫn chi tiết cho các bạn cách kích hoạt Cache trên diễn đàn Xenforo như sau:
    1. Chuẩn bị:
    • Bạn tạo thư mục để lưu trữ cache nằm trong thư mục gốc, chung đường dẫn vớiindex.php set mod cho nó là 777
    2. Các bước thực hiện:
    • Bước 1: Xác định đường dẫn lưu trữ thư mục cache trên host bằng cách sau: Tạo 1 filephpinfo.php với nội dung sau:
    PHP:
    // Show all information, defaults to INFO_ALL
    phpinfo();
    // Show just the module information.
    // phpinfo(8) yields identical results.
    phpinfo(INFO_MODULES);
    Sau đó bạn up file phpinfo.php lên host cùng đường dẫn với file index, bạn chạyhttp://tenmien.com/phpinfo.php. Lúc này PHP sẽ hiện ra cho bạn một số thông số của phiên bản PHP mà host bạn hỗ trợ, bạn bấm Ctrl + F và tìm đếnSCRIPT_FILENAME Đây chính là nơi lưu trữ file của bạn và cũng là thư mục gốc của bạn. Thường thì đường dẫn như sau:​
    Mã:
    /home/user đăng nhập FTP/domains/domain của bạn/public_html/phpinfo.php
    Thay phpinfo.php bằng cache ta se được đưỡng dẫn cache_dir
    • Bước 2: Vào thư mục libary mở file config.php thêm vào đoạn code sau:
    PHP:
    $config['cache']['enabled'] = true;
    $config['cache']['backend'] = 'File';
    $config['cache']['backendOptions'] = array('cache_dir'  => '/home/User FPT/domains/tên miền của bạn/public_html/cache');
    $config['cache']['frontend'] = 'Core';
    $config['cache']['frontendOptions'] = array('caching'  =>  true,
                                                
    'automatic_serialization' => true,
                                                
    'lifetime'    => 3600
    );
    Chú ý: lifetime: 3600: thời gian lưu trữ cache, sau khoảng thời gian này cache cũ sẽ tự động xóa và tạo lại cache mới
    Kết quả : Các query đã tạo thành file giảm tải cho sever load rất nhiều.

    Nếu config thành công thì trong folder cache sẽ tự tạo danh sách. nếu không có thì các bạn kiểm tra lại cái bước làm như trên nha
    Để xem các thông sô timing với Query của forum bạn mở file config.php thêm vào đoạn code sau
    PHP:
    $config['debug'] = 1;

    Sau đó kéo xuống cuối cùng , nó có hiện ra timing với query của forum
  2. Thanh Hằng

    Thanh Hằng Thành viên chính thức

    Bổ sung cache xenforo

    1. Cache là gì ?
    Thông thường, khi web browser gửi yêu cầu xem một trang web đến máy chủ thì máy chủ phải trải qua nhiều công đoạn để dựng lên trang web đó như: truy vấn cơ sở dữ liệu, đọc file nội dung... Những tác vụ này rất phức tạp & mất nhiều thời gian làm người dùng web mất thời gian chờ đợi cũng như có thể làm quá tải máy chủ nếu website có lượng truy xuất cao, liên tục.

    Web-Caching là một tập hợp những kỹ thuật lập trình được thiết kế trên những quy chuẩn về tổ chức dữ liệu để máy chủ tạo sẵn hoặc chỉ tạo một lần nội dung những trang web. Những tác vụ phức tạp & mất thời gian không cần phải luôn làm đi làm lại, nội dung được tạo sẵn sẽ được gửi đến trình duyệt của người dùng khi có yêu cầu.

    Với những diễn đàn XenForo lớn, có lượng truy cập cao, liên tục. Cache sẽ giúp giảm tải cho server, giảm thời gian xử lý và giảm những query đến cơ sở dữ liệu. Xenforo có khả năng lưu trữ và khôi phục lại nhiều dữ liệu khác nhau từ cache. Chúng ta có thể thiết lập cache cho Xenforo tại file library/config.php

    2. Tác dụng của cache
    Hiệu năng thu được khi áp dụng Web-Caching trên các website được ghi nhận:
    • Tăng tốc độ hiển thị trang web lên đến 80%.
    • Tăng 80% hiệu suất máy chủ web (Giảm gánh nặng cho server)
    • Gia tăng độ an toàn cho website.
    • Đồng thời, web caching làm giảm chi phí cho website và làm cho website tối ưu hơn.
    • Giảm tải băng thông (bởi vì một số yêu cầu và đáp ứng cần phải thông qua mạng máy tính. Mỗi đối tượng chỉ nhận được từ server khi có yêu cầu, web caching làm giảm một lương băng thông chiếm dụng bởi client. Việc này giúp tiết kiệm tiền nếu client phải trả tiền cho băng thông, và giữ cho các như cầu về băng thông hạ xuống và dễ dàng quản lý)
    3. Phân loại Cache
    Có khá nhiều các loại cache khác nhau như APC (Alternative PHP Cache), Xcache, Memcache, Filecache.

    Ở Xenforo Cache được chia ra làm 2 loại bao gồm Cache front-end & Cache back-end
    - Front-end cache các loại đối tượng như:
    • Output: cache tất cả mọi thứ giữa phương thức start() và phương thức end()
    • Function: cache kết quả của việc gọi phương thức sử dụng phương thức call() để lấy tên phương thức và các tham số của phương thức.
    • File: cache kết quả ra file
    • Page: cache toàn bộ một trang web
    • ....
    - Back-end cache các kiểu như:
    • File: lưu ra file
    • Memcached: lưu trên RAM
    • ....
    4. Cache Front-End
    Để thiết lập front-end cache các bạn chỉ cần thêm đoạn code sau vào file library/config.php
    Mã:
    $config['cache']['enabled'] = true;
    $config['cache']['frontend'] = 'Core';
    $config['cache']['frontendOptions']['cache_id_prefix'] = 'xf_';
    Bạn có thể thay đổi giá trị 'cache_id_prefix' cho phù hợp (nếu cần).

    Nếu bạn muốn đọc và ghi lại sessions vào cache thì add đoạn sau vào file library/config.php
    Mã:
    $config['cache']['cacheSessions'] = true;​

Chia sẻ trang này