Nginx là một máy chủ web miễn phí và mã nguồn mở hỗ trợ nhiều trang web trên internet. Nó có thể được sử dụng như một proxy ngược và bộ cân bằng tải. Nó được biết đến với hiệu suất cao và tính ổn định.
ngx_pagespeed là một mô-đun Nginx mã nguồn mở có thể được sử dụng để tối ưu hóa hiệu suất trang web của bạn. Nó được phát triển bởi Google và giảm thời gian tải trang và tăng tốc thời gian phản hồi của trang web.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách biên dịch ngx_pagespeed thành một mô-đun động với Nginx trên máy chủ Ubuntu 20.04.
Sau khi tất cả các gói được cài đặt, bạn sẽ cần cài đặt một số phụ thuộc bắt buộc vào hệ thống của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Sau khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.
Sau khi cài đặt hoàn tất, bạn có thể xác minh phiên bản Nginx đã cài đặt bằng lệnh sau:
Bạn sẽ thấy phiên bản Nginx trong đầu ra sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Lưu ý: Đảm bảo phiên bản Nginx đã tải xuống sẽ khớp với phiên bản Nginx đã cài đặt. Ở đây, phiên bản Nginx được cài đặt là 1.18.0. Vì vậy, bạn sẽ cần tải xuống mã nguồn Nginx của phiên bản 1.18.0 từ trang web Nginx.
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, hãy tải xuống mã nguồn ngx_pagespeed từ kho lưu trữ Git bằng lệnh sau:
Sau khi tải xuống hoàn tất, hãy thay đổi thư mục thành thư mục đã tải xuống và kiểm tra phiên bản ổn định bằng lệnh sau:
Bạn sẽ nhận được thông báo sau output:
Từ đầu ra ở trên, hãy cat tệp "PSOL_BINARY_URL" để xem URL tải xuống PSOL:
Bạn sẽ nhận được đầu ra sau:
Bây giờ, hãy chạy lệnh sau để tải xuống PSOL bằng URL ở trên:
Tiếp theo, giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, thay đổi thư mục thành nguồn Nginx và cài đặt tất cả các phụ thuộc cần thiết bằng lệnh sau:
Tiếp theo, biên dịch mô-đun ngx_pagespeed bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Tiếp theo, chạy lệnh sau để xây dựng mô-đun Pagespeed:
Tiếp theo, sao chép mô-đun đã tạo vào thư mục mô-đun Nginx:
Lúc này, mô-đun ngx_pagespeed đã được biên dịch trong hệ thống của bạn. Bây giờ bạn có thể tiến hành bước tiếp theo.
Thêm dòng sau vào đầu tệp:
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, tạo thư mục cho bộ đệm pagespeed bằng lệnh sau:
Đặt quyền sở hữu phù hợp bằng lệnh sau:
Tiếp theo, hãy chỉnh sửa tệp cấu hình máy chủ ảo mặc định của Nginx và thêm cấu hình pagespeed:
Thay thế tất cả các dòng bằng các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, hãy xác minh Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Cuối cùng, hãy khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Bạn cũng có thể xác minh trạng thái của dịch vụ Nginx bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Để kiểm tra tốc độ trang, hãy chạy lệnh sau bằng cách bảo mật tên miền của bạn:
Nếu mọi thứ đều ổn, bạn sẽ nhận được kết quả sau:
Trong kết quả đầu ra ở trên, X-Page-Speed: 1.13.35.2-0 có nghĩa là PageSpeed đang hoạt động và đang tối ưu hóa trang web của bạn.
ngx_pagespeed là một mô-đun Nginx mã nguồn mở có thể được sử dụng để tối ưu hóa hiệu suất trang web của bạn. Nó được phát triển bởi Google và giảm thời gian tải trang và tăng tốc thời gian phản hồi của trang web.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách biên dịch ngx_pagespeed thành một mô-đun động với Nginx trên máy chủ Ubuntu 20.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn. Trong hướng dẫn này, chúng ta sẽ sử dụng miền example.com.
- Một mật khẩu root được cấu hình cho máy chủ.
Bắt đầu
Trước khi bắt đầu, bạn sẽ cần cập nhật các gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Mã:
apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 git libpcre3-dev unzip -y
Cài đặt Nginx Webserver
Tiếp theo, bạn sẽ cần cài đặt máy chủ web Nginx vào hệ thống của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install nginx -y
Mã:
nginx -v
Mã:
nginx version: nginx/1.18.0 (Ubuntu)
Tải xuống và biên dịch ngx_pagespeed
Trước khi tải xuống và biên dịch ngx_pagespeed. Bạn sẽ cần tải xuống mã nguồn Nginx trong hệ thống của mình. Bạn có thể tải xuống gói mã nguồn Nginx bằng lệnh sau:Lưu ý: Đảm bảo phiên bản Nginx đã tải xuống sẽ khớp với phiên bản Nginx đã cài đặt. Ở đây, phiên bản Nginx được cài đặt là 1.18.0. Vì vậy, bạn sẽ cần tải xuống mã nguồn Nginx của phiên bản 1.18.0 từ trang web Nginx.
Mã:
wget http://nginx.org/download/nginx-1.18.0.tar.gz
Mã:
tar -xvzf nginx-1.18.0.tar.gz
Mã:
git clone https://github.com/apache/incubator-pagespeed-ngx.git
Mã:
cd incubator-pagespeed-ngx
git checkout latest-stable
Mã:
Lưu ý: chuyển sang 'latest-stable'.Bạn đang ở trạng thái 'detached HEAD'. Bạn có thể xem xung quanh, thực hiện cácthay đổi thử nghiệm và cam kết chúng, và bạn có thể hủy bất kỳ cam kết nào bạn thực hiện trongtrạng thái này mà không ảnh hưởng đến bất kỳ nhánh nào bằng cách chuyển lại sang một nhánh.Nếu bạn muốn tạo một nhánh mới để giữ lại các cam kết bạn tạo, bạn có thểthực hiện (bây giờ hoặc sau này) bằng cách sử dụng -c với lệnh chuyển đổi. Ví dụ: git switch -c Hoặc hoàn tác thao tác này bằng: git switch -Tắt lời khuyên này bằng cách đặt biến cấu hình advice.detachedHead thành falseHEAD hiện ở 11ba8ea54 Cập nhật PSOL_BINARY_URL
Mã:
cat PSOL_BINARY_URL
Mã:
https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
Mã:
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz
Mã:
tar -xvzf 1.13.35.2-x64.tar.gz
Mã:
cd /root/nginx-1.18.0
apt-get build-dep nginx
apt-get install uuid-dev
Mã:
./configure --with-compat --add-dynamic-module=/root/incubator-pagespeed-ngx
Mã:
Tóm tắt cấu hình + sử dụng thư viện PCRE hệ thống + Thư viện OpenSSL không được sử dụng + 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" phần thân yêu cầu của máy khách http nginx tệp tạm thời: "client_body_temp" tệp tạm thời proxy http nginx: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp"
Mã:
make modules
Mã:
cp objs/ngx_pagespeed.so /usr/share/nginx/modules/
Cấu hình Nginx để sử dụng mô-đun ngx_pagespeed
Tiếp theo, bạn sẽ cần cấu hình Nginx để sử dụng mô-đun ngx_pagespeed. Trước tiên, hãy chỉnh sửa tệp cấu hình chính của Nginx và xác định đường dẫn mô-đun ngx_pagespeed:
Mã:
nano /etc/nginx/nginx.conf
Mã:
load_module modules/ngx_pagespeed.so;
Tiếp theo, tạo thư mục cho bộ đệm pagespeed bằng lệnh sau:
Mã:
mkdir -p /var/ngx_pagespeed_cache
Mã:
chown -R www-data:www-data /var/ngx_pagespeed_cache
Mã:
nano /etc/nginx/sites-available/default
Mã:
server { listen 80; server_name example.com; root /var/www/html; index index.nginx-debian.html index.html index.htm; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ =404; } pagespeed on; pagespeed FileCachePath "/var/ngx_pagespeed_cache/"; pagespeed RewriteLevel OptimizeForBandwidth; location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" { add_header "" ""; } location ~ "^/pagespeed_static/" { } location ~ "^/ngx_pagespeed_beacon$" { }pagespeed RewriteLevel CoreFilters; }
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - Một máy chủ web hiệu suất cao và một máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thu 2020-11-26 05:32:23 UTC; 20 giây trước Tài liệu: man:nginx(8) Tiến trình: 363 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 385 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 386 (nginx) Nhiệm vụ: 3 (giới hạn: 2353) Bộ nhớ: 14,4M CGroup: /system.slice/nginx.service ??386 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??387 nginx: tiến trình công nhân ??388 nginx: tiến trình công nhân26/11 05:32:23 ubuntu2004 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...26/11 05:32:23 ubuntu2004 systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Xác minh Mô-đun ngx_pagespeed
Tại thời điểm này, Nginx được cấu hình với hỗ trợ ngx_pagespeed. Bây giờ, đã đến lúc kiểm tra xem nó đã được cài đặt hay chưa.Để kiểm tra tốc độ trang, hãy chạy lệnh sau bằng cách bảo mật tên miền của bạn:
Mã:
curl -I -p http://example.com
Mã:
HTTP/1.1 200 OKMáy chủ: nginx/1.18.0 (Ubuntu)Content-Type: text/htmlConnection: keep-aliveVary: Accept-EncodingNgày: Thứ tư, 25 tháng 11 năm 2020 11:58:56 GMTX-Page-Speed: 1.13.35.2-0Cache-Control: max-age=0, no-cache