NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
06/06/2023
Lượt xem

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

06/06/2023
13 phút đọc
Lượt xem

Đánh giá

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

Ngx_pagespeed là một module của Nginx được phát triển để tối ưu hóa website một cách tự động. Bài viết này sẽ hướng dẫn bạn cách thêm ngx_pagespeed vào Nginx trên CentOS 7 giúp giảm kích thước của các tài nguyên trên trang web để giảm thời gian tải trang cho client.

Giới thiệu về ngx_pagespeed

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.

Giới thiệu về ngx_pagespeed
Giới thiệu về ngx_pagespeed

Bài viết này Vietnix 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.

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.

Bên cạnh việc cài đặt ngx_pagespeed vào Nginx để tối ưu hóa tốc độ tải trang thì dịch vụ Hosting, VPS bạn đang sử dụng cũng là một trong những yếu tố quan trọng ảnh hưởng trực tiếp lên tốc độ tải của website.

Hiện tại Vietnix đang cung cấp nhiều gói Hosting, VPS tốc độ cao được thiết kế với cấu hình và mức giá tối ưu nhất giúp vận hành website nhanh chóng, ổn định. Từ đó khách hàng có thể an tâm phát triển chiến lược kinh doanh, bứt phá doanh thu.

Đặc biệt, bạn có thể tham khảo dịch vụ VPS NVMe được trang bị 100% ổ cứng NVMe với CPU Platinum thế hệ mới là lựa chọn hoàn hảo cho các cá nhân, doanh nghiệp đang tìm kiếm giải pháp lưu trữ tốc độ cao và ổn định.

Với hơn 10 năm kinh nghiệm trong lĩnh vực cung cấp giải pháp VPS, Vietnix đã tạo dựng được uy tín và sự tin cậy với cộng đồng người dùng tại thị trường Việt Nam. Vietnix đã phục vụ cho hơn 50.000 khách hàng cá nhân, doanh nghiệp, nổi bật trong đó là GTV, Vietnamworks, SEOSONA, SAGO Media,…

Đặc biệt tỷ lệ khách hàng giới thiệu dịch vụ Vietnix sau khi sử dụng lên đến 97%. Với sự cam kết chất lượng và uy tín, Vietnix đã được trao giải thưởng Thương hiệu Việt Nam xuất sắc 2022, khẳng định vị thế doanh nghiệp trên thị trường. Hãy để Vietnix trở thành người đồng hành tin cậy cùng sự thành công của bạn.

Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng 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

Lời kết

Qua bài viết này, bạn đã có thể xây dựng Nginx với một module tùy chỉnh pagespeed. Các bước trong bài viết có giá trị cho cả những module không có sẵn trong Nginx. Đừng quên rằng bạn sẽ phải bảo trì và cài đặt lại các package khi có phiên bản mới. Nếu bạn gặp phải bất cứ khó khăn gì khi thực hiện thì hãy để lại bình luận bên dưới 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

Chọn 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

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY
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

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