Cách thiết lập Nginx với Google Pagespeed Module trên Debian 11

theanh

Administrator
Nhân viên
Google Pagespeed Module là một module nguồn mở để tối ưu hóa các trang web của bạn dưới Nginx và máy chủ web Apache. Module Pagespeed là một module cấp máy chủ được cài đặt cùng với Nginx và máy chủ web Apache.

Mô-đun Pagespeed cải thiện hiệu suất và tốc độ của trang web của bạn bằng cách tối ưu hóa các tệp tĩnh trên các trang web của bạn. Module Pagespeed tối ưu hóa hình ảnh trên các trang web của bạn, thu nhỏ các tệp tĩnh như HTML, CSS và JavaScript và tối ưu hóa bộ nhớ đệm tệp.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách xây dựng module Nginx Pagespeed trên Debian 11 Bullseye mới nhất. Hướng dẫn này có thể áp dụng cho bản cài đặt Nginx hiện tại của bạn vì bạn chỉ cần xây dựng mô-đun Nginx.

Điều kiện tiên quyết​

Trước khi bắt đầu, hãy đảm bảo bạn có các yêu cầu sau.
  • Hệ điều hành: Debian 11 Bullseye
  • Quyền root
Bây giờ chúng ta hãy bắt đầu.

Cài đặt các gói phụ thuộc​

Đầu tiên, bạn sẽ cài đặt các gói phụ thuộc để biên dịch mô-đun Nginx.

1. Thực hiện lệnh apt bên dưới để cập nhật kho lưu trữ hiện tại trên hệ thống của bạn.
Mã:
sudo apt update
2. Tiếp theo, cài đặt các gói phụ thuộc cơ bản để biên dịch chương trình bằng lệnh apt bên dưới.
Mã:
sudo apt install curl dpkg-dev build-essential zlib1g-dev git libpcre3 git libpcre3-dev unzip uuid-dev -y
3. Sau đó, cài đặt các gói phụ thuộc để biên dịch mô-đun Nginx.
Mã:
sudo apt build-dep nginx -y

Kiểm tra phiên bản Nginx hiện tại​

Để xây dựng mô-đun Nginx Pagespeed tùy chỉnh, hãy đảm bảo rằng máy chủ web Nginx hiện tại của bạn giữ nguyên phiên bản mã nguồn Nginx mà bạn sẽ sử dụng để xây dựng mô-đun Nginx.

1. Thực hiện lệnh sau để kiểm tra phiên bản Nginx.
Mã:
nginx -v
Đối với ví dụ này, phiên bản Nginx hiện tại được cài đặt trên máy của chúng tôi là '1.18.0'. Dưới đây là kết quả tương tự mà bạn sẽ thấy.
Mã:
phiên bản nginx: nginx/1.18.0
Tùy chọn, nếu bạn không có gói Nginx trên hệ thống của mình, hãy cài đặt nó từ kho lưu trữ Debian chính thức bằng lệnh apt bên dưới.
Mã:
sudo apt install nginx -y
2. Tiếp theo, tạo một biến môi trường tạm thời mới cho phiên bản Nginx của bạn bằng lệnh bên dưới.
Mã:
export NG_VER=1.18.0

Tải xuống Mã nguồn Nginx và Pagespeed​

Trong bước này, bạn sẽ tải xuống mã nguồn Nginx và mô-đun Pagespeed vào máy chủ của mình. Mã nguồn Nginx này sẽ có cùng phiên bản với gói Nginx hiện tại của bạn.

1. Tạo một thư mục dự án mới '/usr/src/nginx' và vào đó.
Mã:
mkdir -p /usr/src/nginx; cd /usr/src/nginx
2. Bây giờ hãy thực hiện lệnh sau để tải xuống mã nguồn Nginx bằng cách sử dụng và giải nén nó.
Mã:
wget http://nginx.org/download/nginx-$NG_VER.tar.gz
tar -xzvf nginx-$NG_VER.tar.gz
3. Tiếp theo, sao chép mô-đun Nginx Pagespeed vào thư mục hiện tại và sau khi quá trình hoàn tất, bạn sẽ thấy một thư mục mới 'incubator-pagespeed-ngx'.
Mã:
git clone https://github.com/apache/incubator-pagespeed-ngx.git
4. Di chuyển đến thư mục 'incubator-pagespeed-ngx' và chuyển sang nhánh ổn định của mô-đun Nginx Pagespeed.
Mã:
cd incubator-pagespeed-ngx/
git checkout latest-stable
5. Kiểm tra tệp 'PSOL_BINARY_URL' để lấy liên kết tải xuống Thư viện tối ưu hóa trang (PSOL). Thư viện này là bắt buộc đối với mô-đun Nginx Pagespeed.
Mã:
cat PSOL_BINARY_URL
Bạn sẽ thấy đầu ra tương tự như bên dưới. Biến '$BIT_SIZE_NAME' là kiến trúc máy chủ của bạn.
Mã:
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
6. Bây giờ hãy tạo một biến môi trường tạm thời mới 'BIT_SIZE_NAME' với giá trị là kiến trúc máy chủ của bạn. Ví dụ bên dưới đang sử dụng 'x64' hoặc kiến trúc máy chủ 64 bit.
Mã:
export BIT_SIZE_NAME=x64
7. Bây giờ hãy tải xuống mã nguồn PSOL và giải nén nó.
Mã:
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
tar -xzvf 1.13.35.2-$BIT_SIZE_NAME.tar.gz
Bây giờ bạn đã sẵn sàng để xây dựng mô-đun Nginx Pagespeed.

Biên dịch mô-đun Nginx Pagespeed​

Trong bước này, bạn sẽ biên dịch mô-đun Nginx Pagespeed. Cuối cùng, bạn sẽ nhận được mô-đun Nginx với định dạng '.so' mà bạn có thể áp dụng cho máy chủ web Nginx hiện tại của mình.

1. Thay đổi thư mục làm việc thành thư mục dự án Nginx.
Mã:
cd /usr/src/nginx/nginx-$NG_VER
2. Thực hiện lệnh sau để cấu hình biên dịch mô-đun Nginx của bạn. Lệnh này cũng kiểm tra các yêu cầu hệ thống của bạn, hãy đảm bảo rằng bạn không gặp bất kỳ lỗi nào.
Mã:
./configure --with-compat --add-dynamic-module=../incubator-pagespeed-ngx
Dưới đây là kết quả bạn sẽ nhận được.
Mã:
Tóm tắt cấu hình
 + sử dụng thư viện PCRE hệ thống
 + Không sử dụng thư viện OpenSSL
 + sử dụng thư viện zlib hệ thống

 Tiền tố đường dẫn nginx: "/usr/local/nginx"
 Tệp nhị phân nginx: "/usr/local/nginx/sbin/nginx"
 Đường dẫn mô-đun nginx: "/usr/local/nginx/modules"
 Tiền tố cấu hình nginx: "/usr/local/nginx/conf"
 Tệp cấu hình nginx: "/usr/local/nginx/conf/nginx.conf"
 Tệp pid nginx: "/usr/local/nginx/logs/nginx.pid"
 tệp nhật ký lỗi nginx: "/usr/local/nginx/logs/error.log"
 tệp nhật ký truy cập http nginx: "/usr/local/nginx/logs/access.log"
 tệp yêu cầu máy khách http nginx tệp tạm thời: "client_body_temp"
 tệp proxy http nginx tệp tạm thời: "proxy_temp"
 tệp tạm thời nginx http fastcgi: "fastcgi_temp"
 tệp tạm thời nginx http uwsgi: "uwsgi_temp"
 tệp tạm thời nginx http scgi: "scgi_temp"
3. Tiếp theo, biên dịch mô-đun Nginx Pagespeed bằng lệnh sau.
Mã:
make modules
Lệnh này sẽ mất một thời gian, tùy thuộc vào CPU và bộ nhớ của hệ thống.

4. Sau khi quá trình biên dịch hoàn tất, mô-đun Pagespeed của bạn sẽ có sẵn dưới dạng 'objs/ngx_pagespeed.so'. Kiểm tra mô-đun bằng lệnh sau.
Mã:
ls objs/ngx_pagespeed.so
Bạn sẽ nhận được mô-đun Nginx Pagespeed 'ngx_pagespeed.so' như bên dưới.
Mã:
-rwxr-xr-x 1 root root 19M 8 tháng 12 21:44 objs/ngx_pagespeed.so

Thêm mô-đun Pagespeed vào cài đặt Nginx hiện tại​

Trong bước này, bạn sẽ triển khai mô-đun Nginx Pagespeed vào cài đặt Nginx hiện tại của mình. Để thực hiện việc đó, hãy sao chép mô-đun Pagespeed 'ngx_pagespeed.so' vào thư mục mô-đun Nginx và thêm cấu hình mới để bật mô-đun đó.

1. Sao chép mô-đun 'ngx_pagespeed.so' vào thư mục mô-đun Nginx mặc định '/usr/share/nginx/modules'.
Mã:
cp /usr/src/nginx/nginx-$NG_VER/objs/ngx_pagespeed.so /usr/share/nginx/modules
2. Tạo tệp cấu hình mới để bật mô-đun Pagespeedd.
Mã:
nano /usr/share/nginx/modules-available/ngx-pagespeed.conf
Sao chép và dán cấu hình sau.
Mã:
load_module modules/ngx_pagespeed.so;
Lưu cấu hình và thoát.

3. Kích hoạt mô-đun Pagespeed bằng cách tạo cấu hình liên kết tượng trưng 'ngx-pagespeed.conf' tới thư mục '/etc/nginx/modules-enabled/'.
Mã:
ln -s /usr/share/nginx/modules-available/ngx-pagespeed.conf /etc/nginx/modules-enabled/70-ngx-pagespeed.conf
4. Tiếp theo, tạo cấu hình mới 'pagespeed.conf' trên thư mục '/etc/nginx'.
Mã:
nano /etc/nginx/pagespeed.conf
Sao chép và dán cấu hình sau.
Mã:
pagespeed on;

# Cần tồn tại và có thể ghi được bởi nginx. Sử dụng tmpfs để có hiệu suất tốt nhất.
pagespeed FileCachePath /var/ngx_pagespeed_cache;

# Đảm bảo các yêu cầu về tài nguyên được tối ưu hóa cho tốc độ trang sẽ chuyển đến trình xử lý tốc độ trang
# và không có tiêu đề không cần thiết nào được đặt.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
 add_header "" "";
}
location ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
Lưu cấu hình và thoát.

5. Tiếp theo, tạo một thư mục mới để lưu trữ bộ đệm Nginx Pagespeed và đảm bảo rằng thư mục này có thể ghi được bởi người dùng Nginx 'www-data'.
Mã:
mkdir -p /var/ngx_pagespeed_cache
chown www-data:www-data /var/ngx_pagespeed_cache
Bây giờ mô-đun Nginx Pagespeed đã được thêm vào cài đặt Nginx hiện tại của bạn. Hãy chuyển sang bước tiếp theo để bật mô-đun này trên các máy chủ ảo (khối máy chủ) của bạn.

Thêm mô-đun Nginx Pagespeed trên máy chủ ảo của bạn​

Để bật mô-đun Pagespeed cho máy chủ ảo của bạn, hãy thêm cấu hình 'pagespeed.conf' vào tệp cấu hình máy chủ ảo của bạn bằng tùy chọn 'include'.

1. Đối với ví dụ này, hãy thêm enable module Pagespeed vào máy chủ ảo 'default'. Chỉnh sửa cấu hình '/etc/nginx/sites-available/default' bằng trình soạn thảo nano.
Mã:
nano /etc/nginx/sites-available/default
Thêm cấu hình 'include /etc/nginx/pagespeed.conf;' bên trong phần 'server {...}' như bên dưới.
Mã:
server {

 .....
 ....

 include /etc/nginx/pagespeed.conf;
}
lưu cấu hình và thoát.

2. Xác minh cấu hình Nginx của bạn và đảm bảo bạn không gặp bất kỳ lỗi nào. Sau đó, khởi động lại dịch vụ Nginx để áp dụng cấu hình mới.
Mã:
nginx -t
sudo systemctl restart nginx

Xác minh Mô-đun Pagespeed Nginx​

Để xác minh việc cài đặt và triển khai mô-đun Pagespeed Nginx, bạn có thể sử dụng lệnh curl để lấy tiêu đề HTTP của máy chủ web Nginx hoặc sử dụng phần tử Inspect trên trình duyệt web của bạn.

1. Thực hiện lệnh curl bên dưới để lấy tiêu đề HTTP của máy chủ web Nginx.
Mã:
curl -I https://domain.com/
Bây giờ bạn sẽ nhận được đầu ra như bên dưới. Phần tiêu đề bổ sung 'X-Page-Speed' có nghĩa là mô-đun Nginx Pagespeed đã được bật.
Mã:
HTTP/1.1 200 OK
Máy chủ: nginx/1.18.0
Content-Type: text/html
Kết nối: keep-alive
Ngày: Thứ tư, ngày 01 tháng 12 năm 2021 22:02:52 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache


2. Để kiểm tra từ trình duyệt web của bạn, hãy truy cập tên miền của bạn và nhấp chuột phải vào trang, sau đó chọn menu 'Kiểm tra'.

Tải lại trang web của bạn một lần nữa và bạn sẽ thấy các tiêu đề HTTP chi tiết như bên dưới.


Kết luận​

Xin chúc mừng! Bạn đã học cách biên dịch mô-đun Nginx Pagespeed và triển khai nó vào cài đặt Nginx hiện tại. Bạn chỉ cần bao gồm cấu hình 'pagespeed.conf' vào cấu hình máy chủ ảo của mình.
 
Back
Bên trên