Ý nghĩa các modules trong Google Pagespeed và cách bật/tắt

Phạm Văn Siêng 24/09/2019, Cập nhật: 5 năm trước
Bài này thuộc phần 5 của 5 phần trong serie Tăng tốc với Google Pagespeed

Contents

  • 1.Thay đổi cấu hình PageSpeed thế nào?
    • 1.1.CentOS:
    • 1.2.Ubuntu:
  • 2.Bật/Tắt Google Pagespeed
  • 3.Thêm một tham số vào HTTP Header của website
  • 4.Rewrite Level
  • 5.Thêm module vào Google Pagespeed
  • 6.Danh sách các tên module của Google Pagespeed và ý nghĩa
  • 7.Lời kết
    • 7.1.Xem tiếp bài trong serie
  • 8.Bài liên quan

Trong các bài hướng dẫn cài đặt Google Pagespeed của mình, nếu bạn đã làm theo thì hiện tại nó đã hoạt động tốt với một số chức năng chính. Thế nhưng thực tế, Google Pagespeed có rất nhiều chức năng khác nhau (gọi là Module) nên trong bài này mình sẽ giải thích chi tiết ý nghĩa của từng module và cách bật/tắt các module trong thiết lập Google Pagespeed.

Thay đổi cấu hình PageSpeed thế nào?

Tất cả những đoạn cấu hình mình đề cập tới bài này đều sẽ được lưu trong file pagespeed.conf, cụ thể:

CentOS:

Đối với Apache, các thiết lập trong bài bạn phải thêm vào file pagespeed.conf, nhưng sẽ nằm bên trong cặp thẻ ...

Còn NGINX thì cứ nhét vào file pagespeed.conf, chỗ nào cũng được miễn sao bạn dễ dàng quản lý.

Ubuntu:

Nếu bạn dùng Ubuntu mà làm theo hướng dẫn của mình thì sửa file /etc/nginx/common/pagespeed.conf. Riêng phần thiết lập bật/tắt Google Pagespeed ở Ubuntu sẽ nằm ở /etc/nginx/conf.d/pagespeed.conf.

Và sau khi thay đổi nội dung các file cấu hình, bạn phải khởi động lại Apache hoặc NGINX.

Bật/Tắt Google Pagespeed

Nếu bạn muốn tắt chức năng Google Pagespeed thì chỉ cần đưa giá trị của tham số sau về off thay vì on.

Apache:

# Bật ModPagespeed on # Tắt ModPagespeed off

NGINX:

# Bật pagespeed on; # Tắt pagespeed off;

Thêm một tham số vào HTTP Header của website

Nếu bạn muốn thêm một tham số nào đó vào website khi sử dụng Google Pagespeed để tiện lợi trong việc kiểm tra thì có thể thêm dễ dàng bằng đoạn sau:

Apache:

ModPagespeedXHeaderValue "Powered By mod_pagespeed"

NGINX:

pagespeed XHeaderValue "Powered By ngx_pagespeed";

Kết quả:

Cache-Control:max-age=0, no-cache Connection:close Content-Length:7215 Content-Type:text/html; charset=UTF-8 Date:Sat, 14 Mar 2015 13:00:50 GMT Server:Apache/2.2.15 (CentOS) Vary:Accept-Encoding X-Mod-Pagespeed:Powered By mod_pagespeed X-Pingback:https://thachpham.com/xmlrpc.php X-Powered-By:PHP/5.4.38

Rewrite Level

Thiết lập Rewrite Level của Google Pagespeed nghĩa là cấu hình kiểu ghi lại cache của các dữ liệu mà nó được nén. Sở dĩ bạn cần lưu ý điểm này là bởi vì có một số modules (hay còn gọi là Filters), chỉ hoạt động với một số Rewrite Level nhất định.

Hiện tại Google Pagespeed hỗ trợ 3 kiểu Rewrite Level như sau:

  • PassThrough: Tắt Rewrite Level.
  • CoreFilters (mặc định): Bạn nên sử dụng cái này để hạn chế xảy ra lỗi.
  • OptimizeForBandwidth: Kiểu rewrite nhằm tiết kiệm băng thông cho website

Để đổi kiểu Rewrite Level, bạn có thể sửa/chèn đoạn này:

Apache:

ModPagespeedRewriteLevel PassThrough

NGINX:

pagespeed RewriteLevel PassThrough;

Thêm module vào Google Pagespeed

Thêm module vào Google Pagespeed rất dễ dàng, bạn chỉ cần viết thêm một dòng bật module và tên của module cần bật là xong. Bạn có thể khai báo các module cần sử dụng trên một dòng hoặc nhiều dòng tùy thích. Kiểu thế này:

Apache:

# Khai báo một dòng ModPagespeedEnableFilters module_1,module_2,...module_n # Khai báo nhiều dòng ModPagespeedEnableFilters module_1,module_2,...module_n ModPagespeedEnableFilters module_3,module_4,...module_n

NGINX:

# Khai báo một dòng pagespeed EnableFilters module_1,module_2,...,module_n; # Khai báo nhiều dòng pagespeed EnableFilters module_1,module_2,...,module_n; pagespeed EnableFilters module_3,module_4,...,module_n;

Tại sao lại sử dụng khai báo nhiều dòng? Đơn giản là bạn có thể phân ra, ví dụ dòng thì thêm các module tối ưu ảnh, dòng thì thêm module tối ưu CSS/Javascript, dòng thì tối ưu protocol,…

Danh sách các tên module của Google Pagespeed và ý nghĩa

Danh sách các modules của Google Pagespeed rất nhiều nên ở đây mình sẽ liệt kê ra các modules thường dùng, dễ hiểu nhất để các bạn tham khảo. Ngoài ra các bạn nên tham khảo qua danh sách toàn bộ modules có trong Google Pagespeed tại đây.

  • add_head
    • CoreFilters: Yes
    • OptimizeForBandwidth: No
    • Tự thêm thẻ  vào website nếu chưa có.
  • combine_heads
    • CoreFilters: No
    • OptimizeForBandwidth: No
    • Tự gộp nếu website có nhiều thẻ  được tìm thấy trong tài liệu.
  • inline_import_to_link
    • CoreFilters: Yes
    • OptimizeForBandwidth: No
    • Tự tạo một tập tin CSS và chèn vào thẻ nếu website chứa thẻ