NỘI DUNG

Hướng dẫn cách thêm ngx_pagespeed vào Nginx trên CentOS 7 chi tiết

Ngày đăng:20/03/2025
Cập nhật cuối:25/03/2025
Lượt xem

Đánh giá

5/5 - (81 bình chọn)

ngx_pagespeed là một module mã nguồn mở của Nginx, được phát triển bởi Google, giúp tối ưu hóa hiệu suất website một cách tự động. Trong bài viết này, mình sẽ hướng dẫn bạn cách thêm ngx_pagespeed vào Nginx trên CentOS 7 giúp website của bạn tải trang nhanh hơn, tiết kiệm băng thông và cải thiện SEO.

Những điểm chính

  • Giới thiệu về ngx_pagespeed: Biết về ngx_pagespeed và công dụng chính của module này.
  • Yêu cầu cần đáp ứng: Để thực hiện cách thêm ngx_pagespeed vào Nginx trên CentOS 7, bạn cần một máy chủ CentOS 7 và tài khoản người dùng non-root có quyền sudo.
  • Các bước thực hiện: Bắt đầu từ việc download mã nguồn và các phụ thuộc của mã nguồn, cấu hình mã nguồn và biên dịch, tạo Startup Script, kích hoạt module Pagespeed và cuối cùng kiểm tra lại cài đặt.
  • Biết đến Vietnix là nhà cung cấp dịch vụ VPS tốc độ cao, ổn định, chuyên nghiệp.

Ngx_pagespeed là gì?

Ngx_pagespeed còn được gọi là pagespeed, là một module của Nginx được thiết kế để tự động tối ưu hóa trang web của bạn bằng cách giảm kích thước các tài nguyên, do đó giảm thời gian mà trình duyệt của khách hàng cần để tải chúng.

Ngx_pagespeed là một module của Nginx được thiết kế để tự động tối ưu hóa trang web
Ngx_pagespeed là một module của Nginx được thiết kế để tự động tối ưu hóa trang web

Bài viết này mình sẽ hướng dẫn bạn cài đặt và cấu hình module pagespeed cho Nginx. Điều quan trọng bạn nên biết rằng Nginx không hỗ trợ Dynamic Loading của các module có sẵn trong các web server khác như Apache. Vì Nginx không hỗ trợ tính năng này, bạn cần xây dựng Nginx từ mã nguồn để thêm module.

Tuy nhiên việc sở hữu các gói tùy chỉnh riêng của bạn đi kèm với một nhược điểm, vì vậy bạn hoàn toàn chịu trách nhiệm cập nhật chúng khi có phiên bản mới. Hãy cân nhắc điều này khi xem xét ưu và nhược điểm của việc sử dụng ngx_pagespeed.

Việc tối ưu tốc độ website với ngx_pagespeed rất quan trọng, nhưng để đạt hiệu suất tối đa, nền tảng VPS mạnh mẽ là điều không thể thiếu. Nếu bạn đang tìm kiếm một giải pháp VPS hiệu năng cao với chi phí hợp lý, hãy trải nghiệm ngay dịch vụ VPS AMD của Vietnix. Với 100% ổ cứng NVMeCPU AMD thế hệ mới, VPS AMD Vietnix mang đến tốc độ xử lý vượt trội, đảm bảo website của bạn luôn hoạt động mượt mà và ổn định.

Yêu cầu cần đáp ứng

Để làm theo hướng dẫn bài viết này, bạn cần đáp ứng các yêu cầu sau:

  • Một máy chủ CentOS 7.
  • Một người dùng non-root có quyền sudo.

Bước 1 – Download mã nguồn và các phụ thuộc của mã nguồn

Bạn cần có tất cả các phần mềm cần thiết để biên dịch và test Nginx. Hãy gõ lệnh sau để tiến hành cài đặt:

sudo yum install wget curl unzip gcc-c++ pcre-devel zlib-devel

Sau đó, tạo một thư mục mới trong thư mục home để tải source package cho Nginx:

mkdir ~/custom-nginx

Chuyển đến thư mục mới được tạo:

cd ~/custom-nginx

Sau đó, tải xuống source package Nginx trong thư mục này từ trang web chính thức của Nginx. Bài hướng dẫn này sử dụng phiên bản 1.8.0 được tải xuống với lệnh:

sudo wget http://nginx.org/download/nginx-1.8.0.tar.gz

Bạn hãy giải nén package vừa tải xuống bằng lệnh:

sudo tar zxvf nginx-1.8.0.tar.gz

Hãy liệt kê nội dung của thư mục ~/custom-nginx bằng lệnh sau:

ls ~/custom-nginx

Output của bạn nên giống như thế này:

Output of ls ~/custom-nginx
nginx-1.8.0  nginx-1.8.0.tar.gz

Để bắt đầu thêm ngx_pagespeed module, bạn cần truy cập vào thư mục modules trong thư mục được giải nén nginx-1.8.0:

cd nginx-1.8.0/src/http/modules/

Trong thư mục này, bạn tải source archive ngx_pagespeed mới nhất từ Github repository với lệnh:

sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip

Khi quá trình tải xuống hoàn tất, bạn giải nén file đó bằng tiện ích unzip như sau:

sudo unzip master.zip

Thư mục mới có tên ngx_pagespeed-master sẽ được tạo trong thư mục ~/custom-nginx/nginx-1.8.0/src/http/modules/ của bạn. Để thuận tiện, hãy đổi tên thư mục này thành ngx_pagespeed:

sudo mv ngx_pagespeed-master ngx_pagespeed

Tiếp theo, truy cập vào thư mục mới ngx_pagespeed:

cd ngx_pagespeed

Từ đó, bạn hãy tải xuống các PageSpeed Optimization Libraries (psol) cần thiết cho việc biên dịch bằng lệnh:

sudo wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz

Nếu liên kết đến psol archive không hoạt động vào thời điểm bạn đọc bài viết này thì hãy bỏ qua bước này. Nếu bạn bị thiếu thư viện trong quá trình biên dịch ở các bước tiếp theo, bạn sẽ thấy một lỗi với hướng dẫn cập nhật.

Cuối cùng, giải nén psol package trong thư mục ~/custom-nginx/nginx-1.4.6/debian/modules/ngx_pagespeed:

sudo tar -xzvf 1.9.32.6.tar.gz

Bước 2 – Cấu hình mã nguồn và biên dịch

Ở bước này, bạn đã sẵn sàng cấu hình mã nguồn Nginx bao gồm pagespeed module. Hãy đến thư mục chính của mã nguồn Nginx với lệnh sau:

cd ~/custom-nginx/nginx-1.8.0/

Sau đó, chạy lệnh cấu hình mã nguồn với lệnh:

sudo ./configure --add-module=/home/your_user/custom-nginx/nginx-1.8.0/src/http/modules/ngx_pagespeed/ --user=nobody --group=nobody --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid

Tùy chọn cấu hình quan trọng nhất ở trên là --add-module=/home/your_user/custom-nginx/nginx-1.8.0/src/http/modules/ngx_pagespeed/. Tùy chọn này đảm bảo pagespeed module sẽ là một phần của quá trình biên dịch Nginx. Hãy nhớ thay thế your_user bằng tên người dùng của bạn trong đường dẫn bên trên.

Để tiện lợi, bạn nên tùy chỉnh một vài thiết lập khác như vị trí của log file và user/group mà server nên chạy dưới đó. Cấu hình hoàn tất, bạn bắt đầu quá trình biên dịch bằng lệnh:

sudo make

Quá trình này sẽ mất tối đa mười phút tùy thuộc vào tài nguyên của máy chủ. Sau đó quá trình hoàn tất, bạn có thể cài đặt phần mềm với lệnh sau:

sudo make install

Bạn có thể thấy Nginx đã tùy chỉnh được cài đặt trong thư mục /usr/local/nginx. Để tiện lợi hơn, bạn hãy tạo hai symbolic link. Đầu tiên là cho các file cấu hình:

sudo ln -s /usr/local/nginx/conf/ /etc/nginx

Lệnh này sẽ cho phép bạn tìm các file cấu hình trong thư mục /etc/nginx/ – nơi file cấu hình được lưu trữ.

Bạn cũng nên tạo symbolic link đến main binary trong thư mục /usr/sbin/. Việc tạo liên kết này giúp bạn dễ dàng tìm thấy main binary và có thể include file này trong startup script. symbolic link cũng được sử dụng cho startup script sau này. Để tạo liên kết, bạn hãy chạy lệnh sau đây:

sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Bước 3 – Tạo Startup Script

Trong quá trình cài đặt, một số tác vụ sẽ tự động thực hiện tạo người dùng và nhóm không cần thiết để Nginx có thể chạy. Tuy nhiên, sau khi cài đặt xong, người dùng vẫn phải tự tạo một startup script. Rất may mắn là trên trang chủ của Nginx đã có sẵn một startup script trên trang chủ của hãng dành cho CentOS 7 giúp người dùng dễ dàng hơn trong việc tạo startup script.

Trước tiên, bạn hãy tạo một file mới trong thư mục /etc/init.d/:

sudo nano /etc/init.d/nginx

Sau đó, truy cập vào trang web sau https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/, sao chép script và dán vào file mới này. Cuối cùng, hãy đặt quyền thực thi cho script này bằng cách chạy lệnh:

sudo chmod +x /etc/init.d/nginx

Sau đó, bạn có thể start Nginx lần đầu tiên bằng lệnh:

sudo service nginx start

Để đảm bảo rằng Nginx khởi động và dừng cùng với máy chủ, bạn hãy thêm Nginx vào các runlevel mặc định với lệnh:

sudo chkconfig nginx on

Bước 4 – Kích hoạt module Pagespeed

Khi đã cài đặt Nginx xong, bạn sẽ chuyển đến bước tiếp theo là kích hoạt module ngx_pagespeed. Trước khi kích hoạt module, bạn phải tạo một thư mục để lưu trữ bộ nhớ cache cho trang web của bạn:

sudo mkdir -p /var/ngx_pagespeed_cache

Thay đổi quyền sở hữu của thư mục này cho Nginx user để web server có thể lưu trữ các file trong đó:

sudo chown -R nobody:nobody /var/ngx_pagespeed_cache

Sau đó, bạn mở file cấu hình chính của Nginx nginx.conf bằng trình chỉnh sửa văn bản bằng lệnh:

sudo nano /etc/nginx/nginx.conf

Trong file cấu hình, thêm các dòng dưới đây vào block server và lưu các thay đổi:

##
# Pagespeed main settings

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

# Ensure requests for pagespeed optimized resources go to the pagespeed
# handler and no extraneous headers get set.

location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Bạn có thể thêm các dòng này bất cứ đâu trong block, trong ví dụ này được thêm vào cuối block. File /etc/nginx/nginx.conf sẽ trông như sau:

...
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        ##
        # Pagespeed main settings

        pagespeed on;
        pagespeed FileCachePath /var/ngx_pagespeed_cache;

        # Ensure requests for pagespeed optimized resources go to the pagespeed
        # handler and no extraneous headers get set.

        location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
        location ~ "^/ngx_pagespeed_static/" { }
        location ~ "^/ngx_pagespeed_beacon" { }

        location / {
            root   html;
            index  index.html index.htm;
        }
...

Ngoài ra, bạn hãy thêm các dòng cấu hình pagespeed vào server block bổ sung nếu có. Cuối cùng, khởi động lại máy chủ Nginx để các thay đổi có hiệu lực:

sudo service nginx restart

Bước 5 – Kiểm tra cài đặt

Để kiểm tra xem module ngx_pagespeed đã được cài đặt thành công hay chưa, bạn chạy binary Nginx như sau:

sudo /usr/sbin/nginx -V

Nếu cài đặt thành công, bạn sẽ thấy module ngx_pagespeed được liệt kê giữa các đối số tùy chỉnh khác:

Output
nginx version: nginx/1.8.0
...
configure arguments: --add-module=/home/your_user/custom-nginx/nginx-1.8.0/src/http/modules/ngx_pagespeed/
...

Output trên chưa xác định pagespeed được kích hoạt và hoạt động cho trang web của bạn. Để kiểm tra, bạn có thể sử dụng curl – một công cụ và thư viện chuyển giao URL phía client. Sử dụng curl để kiểm tra tiêu đề X-Page-Speed như sau:

curl -I -p http://localhost| grep X-Page-Speed

Nếu module ngx_pagespeed hoạt động tốt, bạn sẽ thấy X-Page-Speed xuất hiện cùng với phiên bản:

Output
X-Page-Speed: 1.9.32.6-7321

Nếu không thấy tiêu đề này, hãy đảm bảo rằng bạn đã kích hoạt pagespeed theo các bước của bài viết.

Tăng tốc website với VPS Vietnix – Tốc độ cao, ổn định, chuyên nghiệp

Với 12 năm kinh nghiệm trong lĩnh vực cung cấp dịch vụ VPS, Vietnix là đối tác tin cậy của hàng chục nghìn cá nhân và doanh nghiệp trong nước như GTV, Vietnamworks, SEOSONA, SAGO Media,… Hệ thống hạ tầng hiện đại, sử dụng 100% ổ cứng SSD NVMe và công nghệ ảo hóa tiên tiến đảm bảo tốc độ xử lý nhanh chóng và ổn định. Bên cạnh đó, đội ngũ hỗ trợ kỹ thuật 24/7 chuyên nghiệp, tận tâm của Vietnix luôn sẵn sàng giải đáp mọi thắc mắc và hỗ trợ khách hàng một cách nhanh chóng.

Thông tin liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Hotline: 1800 1093.
  • Email: sales@vietnix.com.vn.
  • Website: https://vietnix.vn/.

Như vậy, bạn đã hoàn tất quá trình cài đặt và cấu hình ngx_pagespeed cho Nginx trên CentOS 7. Việc này sẽ giúp website của bạn tăng tốc độ tải trang đáng kể, cải thiện trải nghiệm người dùng và nâng cao thứ hạng SEO. Sau khi cài đặt ngx_pagespeed, bạn có thể xem thêm các tính năng khác trên CentOS 7 trong những bài viết dưới đây của mình:

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

Thất vọng

Chưa hữu ích

Bình thường

Hữu ích

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi 30 tháng 4
Khi mua Hosting/VPS
16/04/2025 - 16/05/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

Thất vọng

Chưa hữu ích

Bình thường

Hữu ích

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG