Thứ tư, 15/01/2014 | 00:00 GMT+7

Cách thêm module ngx_pagespeed vào Nginx trong Debian Wheezy

ngx_pagespeed chỉ đơn giản là một module được thêm vào web server nginx để tăng tốc độ trang web bằng cách giảm thời gian trình duyệt internet tải trang web - <a href = “https://developers.google.com/speed/pagespeed/module" target = ”_ blank"> nhấp vào đây </a> để biết thêm thông tin kỹ thuật.


Xây dựng gói nginx tùy chỉnh


Nginx không hỗ trợ cái được gọi là “Tải động các module ”, về cơ bản cung cấp cho bạn quyền tự do thêm các trình cắm hoặc module vào một phần mềm sau khi nó được cài đặt. Nhân tiện, đây không phải là một lỗi trong nginx hoặc thiếu sót từ các nhà phát triển của nó; tuy nhiên, những ưu điểm của nó nằm ngoài phạm vi của hướng dẫn này. Vì vậy, cách duy nhất để thêm module vào nginx là thêm chúng trong thời gian biên dịch. Trong hướng dẫn này, bạn sẽ thêm module ngx_pagespeed vào nginx bằng cách xây dựng nó từ nguồn backport wheezy của Debian, vì repository backports Debian có version nginx mới hơn repository ổn định, tại thời điểm viết hướng dẫn này version 1.4.4 . Để biết thêm thông tin về Debian Backports, chỉ cần truy cập trang chính thức của nó tại backports.debian.org.

Đầu tiên: Thêm repository backports của Debian wheezy


Theo mặc định, Debian wheezy không bao gồm repository backports trong hệ thống, vì vậy ta phải tự thêm nó theo các bước sau:

  • Mở file “sources.list” trong editor yêu thích trong hệ thống của bạn:

<pre> sudo vim /etc/apt/sources.list </pre>

  • Nối hai dòng sau, trỏ tới repository backports Debian, vào cuối file ở cuối (đảm bảo mỗi dòng được chèn vào một dòng riêng biệt):

<pre> [....]
deb http://ftp.uk.debian.org/debian wheezy-backports main
deb-src http://ftp.uk.debian.org/debian wheezy-backports main </pre>

  • Cập nhật danh sách gói repository Debian:

<pre> sudo apt-get update </pre>

tiền boa

Bạn có thể thay thế gương uk bằng gương gần bạn nhất; để biết danh sách tất cả các máy nhân bản Debian, hãy <a href=p>http://www.debian.org/mirror/list"target=[_blank"> nhấp vào đây </a>.

Thứ hai: Download gói nguồn backport nginx và xây dựng các phụ thuộc


Đến đây bạn đã thêm repository backports vào hệ thống của bạn , đã đến lúc download gói nguồn backport nginx. Tuy nhiên, trước khi làm điều đó, bạn phải download và cài đặt một số gói tiên quyết để giúp bạn xây dựng gói nginx tùy chỉnh:

  • Cài đặt gói xây dựng thiết yếu Debian, như tên đã chỉ ra, cần thiết để xây dựng bất kỳ gói Debian nào trên hệ thống:

<pre> sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev extract </pre>

  • Cài đặt các phụ thuộc xây dựng nginx từ repository backports; và vì repository backports bị vô hiệu hóa theo mặc định, bạn phải chỉ định điều đó một cách rõ ràng thành apt:

<pre> sudo apt-get -t wheezy-backports build-dep nginx </pre>

Đến đây bạn đã hoàn thành các yêu cầu , bạn có thể bắt đầu download gói nguồn nginx từ repository backports:

  • Trước hết, hãy tạo một folder trong folder chính để tải gói nguồn nginx vào:

<pre> cd ~
mkdir custom-nginx-1.4.4 # hoặc chọn bất kỳ tên folder nào bạn thích
cd custom-nginx-1.4.4 </pre>

  • Download nguồn gói nginx:

<pre> sudo apt-get -t wheezy-backports nguồn nginx </pre>

Thứ ba: Chuẩn bị và sửa đổi gói nguồn nginx


Hãy liệt kê nội dung của folder mà bạn đã download gói nguồn:

<pre> ls -la </pre>

Bạn sẽ thấy ba file và một folder là folder mà các file đã được extract :

Như bạn thấy trong hình, version của gói nguồn backport nginx là 1.4.4 tại thời điểm viết hướng dẫn này.Để bắt đầu thêm module ngx_pagespeed, trước tiên bạn cần đi đến folder module trong folder extract “nginx-1.4.4”:

<pre> cd nginx-1.4.4 / debian / modules </pre>

Khi bạn đã ở trong folder module , hãy thực thi các dòng lệnh sau (được trích dẫn từ ngx <a href=p>https://github.com/pagespeed/ngx_pagespeed"target=[_blank"> trang chính thức </a>; như vậy đảm bảo kiểm tra xem version mới có được phát hành hay không trước khi tiếp tục):

<pre> wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.7.30.1-beta.zip
extract v1.7.30.1-beta.zip
cd ngx_pagespeed-1.7.30.1-beta /
wget https://dl.google.com/dl/page-speed/psol/1.7.30.1.tar.gz
tar -xzvf 1.7.30.1.tar.gz </pre>

Bây giờ, bạn đã thêm thành công module ngx_pagespeed vào folder module của gói nguồn nginx đã sẵn sàng để xây dựng với các module nginx khác. Nhưng trước khi bạn có thể làm điều đó, có hai bước quan trọng nữa bạn phải hoàn thành:

  • Chỉnh sửa file luật , nằm trong folder debian:

<pre> sudo vim ~ / custom-nginx-1.4.4 / nginx-1.4.4 / debian / rules </pre>

Trong file này, bạn sẽ tìm thấy bốn khối config.status (config.status.full, config.status.light, config.status.extras, config.status.naxsi); với mỗi khối của chúng kết thúc bằng (CONFIGURE_OPTS)> @ . Tất cả những gì bạn phải làm là thêm --add-module=$(MODULESDIR)/ngx_pagespeed-1.7.30.1-beta \ vào từng khối trong số bốn khối, ngay trước dòng (CONFIGURE_OPTS)> @ , sau đó lưu các thay đổi:

  • Tăng version gói nguồn, vì điều này sẽ giúp bạn ghim gói sau này. Để làm điều này, hãy mở file thay đổi bằng editor văn bản:

<pre> sudo vim ~ / custom-nginx-1.4.4 / nginx-1.4.4 / debian / changelog </pre>

Dòng đầu tiên của file thay đổi thể hiện version gói hiện tại (1.4.4-1 ~ bpro70 + 1) và phân phối (wheezy-backports), chỉ cần thêm biệt hiệu của bạn hoặc bất kỳ thứ gì bạn thích vào cuối số version trước dấu gạch ngang :

Thứ tư: Xây dựng gói nginx tùy chỉnh


Bây giờ, đã đến lúc xây dựng gói tùy chỉnh của bạn bao gồm mô-đun tốc độ trang ngx. Nhưng vì việc xây dựng gói này sẽ mất ít nhất 10 phút (tùy thuộc vào tốc độ máy của bạn), ta sẽ sử dụng một ứng dụng có tên là Screen , chỉ đơn giản là một terminal bên trong cửa sổ terminal thông thường của bạn. Nhưng không giống như terminal thông thường, màn hình giữ cho các tiến trình đang chạy trong phiên shell hiện tại của bạn vẫn sống sau khi mất kết nối với nó. Điều này nghĩa là nếu bạn mất kết nối với phiên shell của bạn trong quá trình xây dựng một gói (đặc biệt là những gói mất thời gian), bạn sẽ không phải bắt đầu lại từ đầu. Để biết thêm thông tin về cách sử dụng màn hình, hãy đọc hướng dẫn hay này <a href = “ https://www.digitalocean.com/community/articles/how-to-install-and-use-screen-on-an-ubuntu- cloud-server "target = blank "> tại đây </a>.

Sau khi tạo “phiên màn hình”, hãy bắt đầu xây dựng gói:

<pre> cd ~ / custom-nginx-1.4.4 / nginx-1.4.4
sudo dpkg-buildpackage -b </pre>

Đến đây bạn có thể để các công cụ xây dựng gói thực hiện công việc của chúng trong khi bạn kéo dài.

Khi dấu nhắc lệnh xuất hiện , bạn biết rằng quá trình xây dựng đã kết thúc. Bây giờ các gói được tạo nằm ngay bên ngoài folder gói nguồn:

<pre> cd ~ / custom-nginx-1.4.4
ls -la </pre>

Bạn sẽ thấy một cái gì đó tương tự như sau:

<pre> root @ debian-lab2 :: ~ / custom-nginx-1.4.4 # ls -la
tổng số 72052
root root drwxr-xr-x 3 4096 28 tháng 12 13:35.
root root drwxr-xr-x 4 4096 27 tháng 12 03:51 ..
root root drwxr-xr-x 10 4096 28 Dec 28 13:34 nginx-1.4.4
-rw-r – r– 1 root root 78168 28 Dec 28 13:34 nginx-common 1.4.4-1 ~ bpo70 + 1-custom all.deb
-rw-r – r– 1 root root 79988 28 tháng 12 13:34 nginx-doc 1.4.4-1 ~ bpo70 + 1-custom all.deb
-rw-r – r– 1 root root 26144390 28 tháng 12 13:35 nginx-extras-dbg 1.4.4-1 ~ bpo70 + 1 amd64.deb
-rw-r – r– 1 root root 3481982 28 tháng 12 13:35 nginx-extras 1.4.4-1 ~ bpo70 + 1-custom amd64.deb
-rw-r – r– 1 root root 24335692 28 tháng 12 13:35 nginx-full-dbg 1.4.4-1 ~ bpo70 + 1-custom amd64.deb
-rw-r – r– 1 root root 3286600 28 tháng 12 13:35 nginx-full 1.4.4-1 ~ bpo70 + 1-custom amd64.deb
-rw-r – r– 1 root root 3618406 28 tháng 12 13:35 nginx-light-dbg 1.4.4-1 ~ bpo70 + 1-custom amd64.deb
-rw-r – r– 1 root root 3049594 28 Dec 28 13:35 nginx-light 1.4.4-1 ~ bpo70 + 1-custom amd64.deb
-rw-r – r– 1 root root 3796392 28 tháng 12 13:35 nginx-naxsi-dbg 1.4.4-1 ~ bpo70 + 1-custom amd64.deb
-rw-r – r– 1 root root 356138 28 Dec 28 13:34 nginx-naxsi-ui 1.4.4-1 ~ bpo70 + 1-custom all.deb
-rw-r – r– 1 root root 3092638 28 tháng 12 13:35 nginx-naxsi 1.4.4-1 ~ bpo70 + 1-custom amd64.deb
-rw-r – r– 1 root root 1570640 28 tháng 11 12:07 nginx 1.4.4-1 ~ bpo70 + 1.debian.tar.gz
-rw-r – r– 1 root root 2843 28 tháng 11 12:07 nginx
1.4.4-1 ~ bpo70 + 1.dsc
-rw-r – r– 1 root root 66716 28 tháng 12 13:34 nginx 1.4.4-1 ~ bpo70 + 1-custom all.deb
-rw-r – r– 1 root root 4922 28 tháng 12 13:35 nginx 1.4.4-1 ~ bpo70 + 1-custom amd64.changes
-rw-r – r– 1 root root 768217 21 tháng 11 10:28 nginx_1.4.4.orig.tar.gz </pre>
<br>

Thứ năm: Cài đặt gói nginx tùy chỉnh


Bây giờ tất cả những gì bạn phải làm là chọn gói nginx mà bạn muốn cài đặt.Có bốn trong số chúng chỉ khác nhau về số lượng module được đóng gói trong mỗi một; bạn có thể tìm thấy <a href=osystemhttps://wiki.debian.org/Nginx"target=[_blank"> tại đây </a> thông tin khác về sự khác biệt. Tôi sẽ chọn version đầy đủ và cài đặt nó như sau:

<pre> sudo dpkg -i nginx-full 1.4.4-1 ~ bpo70 + 1-custom amd64.deb nginx-common 1.4.4-1 ~ bpo70 + 1-custom all.deb nginx 1.4.4-1 ~ bpo70 + 1-tùy chỉnh all.deb </pre>

Như bạn có thể nhận thấy, bạn sẽ cài đặt thêm hai gói .deb bên cạnh 'nginx-full_1.4.4-1 ~ bpo70 + 1-custom_amd64.deb'. Hai gói đó là các gói phụ thuộc mà bạn phải cài đặt cùng với bất kỳ gói nào trong bốn gói nginx (full, light, extras, naxsi).

Trong trường hợp bạn gặp phải thông báo lỗi sau:

<pre> dpkg: sự cố phụ thuộc ngăn cản cấu hình của nginx-common:
nginx-common phụ thuộc vào init-system-helpers (> = 1.11 ~); Tuy nhiên:
Gói init-system-helpers chưa được cài đặt.
[…] </pre>

hoặc bất kỳ thông báo lỗi nào liên quan đến sự cố phụ thuộc sau khi thực hiện lệnh trước đó, sau đó chỉ cần thực hiện lệnh sau:

<pre> sudo apt-get -f install </pre>

điều này sẽ khắc phục mọi sự cố phụ thuộc mà bạn có thể gặp phải cùng với việc tiếp tục cài đặt bị gián đoạn trước đó.

Cuối cùng, đã đến lúc kiểm tra xem module ngx_pagespeed đã được cài đặt thành công với gói nginx chưa:

<pre> sudo nginx -V </pre>

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

<pre> root @ debian-lab2: ~ / shared # nginx -V
version nginx: nginx / 1.4.4
Hỗ trợ TLS SNI được bật
cấu hình các đối số: –prefix = / usr / share / nginx –conf-path = / etc / nginx / nginx.conf
–Error-log-path = / var / log / nginx / error.log –http-client-body-temp-path = / var / lib / nginx / body
–Http-fastcgi-temp-path = / var / lib / nginx / fastcgi –http-log-path = / var / log / nginx / access.log
–Http-proxy-temp-path = / var / lib / nginx / proxy –http-scgi-temp-path = / var / lib / nginx / scgi
–Http-uwsgi-temp-path = / var / lib / nginx / uwsgi –lock-path = / var / lock / nginx.lock –pid-path = / run / nginx.pid
–With-pcre-jit
–With-debug –with-http module bổ sung –with-http dav module –with -http geoip module
–With-http gzip static module –with-http image filter module
–With -http module realip
–With-http mô-đun trạng thái sơ khai –with-http ssl mô-đun
–With-http
mô-đun phụ –with-http xslt mô-đun
–With-ipv6 –with-mail –with-mail
ssl module
–Add-module = / root / custom-nginx-1.4.4 / nginx-1.4.4 / debian / modules / nginx-upload-process
–Add-module = / root / custom-nginx-1.4.4 / nginx-1.4.4 / debian / modules / nginx-auth-pam
–Add-module = / root / custom-nginx-1.4.4 / nginx-1.4.4 / debian / modules / nginx-dav-ext-module
–Add-module = / root / custom-nginx-1.4.4 / nginx-1.4.4 / debian / modules / nginx-echo
–Add-module = / root / custom-nginx-1.4.4 / nginx-1.4.4 / debian / modules / nginx-up-fair-fair
–Add-module = / root / custom-nginx-1.4.4 / nginx-1.4.4 / debian / modules / ngx
mô-đun lọc thay thế http
–Add-module = / root / custom-nginx-1.4.4 / nginx-1.4.4 / debian / modules / ngx
pagespeed-1.7.30.1-beta </pre>

Thứ sáu: Bật module ngx_pagespeed


Trước khi bật module , ta phải tạo một folder , nơi nó sẽ lưu vào cache các file trang web vào:

<pre> sudo mkdir -p / var / ngx pagespeed cache

sudo chown -R www-data: www-data / var / ngx pagespeed cache </pre>

Sau đó, mở file “nginx.conf” trong editor yêu thích của bạn

<pre> sudo vim /etc/nginx/nginx.conf </pre>

Và thêm các dòng sau vào khối http và lưu các thay đổi:

<pre> ##

cài đặt module ngx_pagespeed

tốc độ trang trên;
tốc độ trang FileCachePath / var / ngx cache tốc độ trang; </pre>

Đó là cách file “nginx.conf” sẽ giống như sau:

Bây giờ, hãy khởi động lại server nginx để các thay đổi có hiệu lực:

<pre> khởi động lại dịch vụ sudo nginx </pre>

Để xác nhận module ngx_pagespeed đã được bật thành công, hãy thực hiện các lệnh sau:

<pre> sudo apt-get install curl
curl -I -p http: // localhost | grep X-Tốc độ trang </pre>

sau đó bạn sẽ thấy tiêu đề X-Page-Speed trong kết quả :

Cuối cùng, thêm các dòng sau vào mọi khối server trong file server ảo của trang web nằm trong /etc/nginx/sites-available :

<pre> # Đảm bảo các yêu cầu cho các tài nguyên được tối ưu hóa tốc độ trang chuyển đến tốc độ trang

trình xử lý và không có tiêu đề không liên quan nào được cài đặt .

vị trí ~ “.pagespeed. ([az].)? [az] {2}. [^.] {10}. [^.] +” {thêm tiêu đề “” “”; }
vị trí ~ “^ / ngx
pagespeed static /” {}
location ~ “^ / ngx
pagespeed beacon” {}
thống kê tốc độ trang vị trí / ngx {allow 127.0.0.1; Phủ nhận tất cả; }
thống kê global về tốc độ trang / ngx {allow 127.0.0.1; Phủ nhận tất cả; }
location / ngx pagespeed message {allow 127.0.0.1; Phủ nhận tất cả; }
location / pagespeed_console {allow 127.0.0.1; Phủ nhận tất cả; } </pre>

Cuối cùng: Ghim gói nginx tùy chỉnh của bạn


Để ngăn gói nginx tùy chỉnh của bạn bị thay thế trong tương lai bằng 'apt' với bản phát hành gần đây hơn của nginx, bạn nên ghim (giữ) gói của bạn để nâng cấp theo các bước sau:

  • Tạo một file mới trong /etc/apt/preferences.d :

<pre> sudo vim /etc/apt/preferences.d/nginx </pre>

  • Sau đó, dán các dòng sau vào đó và lưu [đảm bảo thay thế version Ghim bằng version tùy chỉnh, bạn đã đặt trước đó]:

Gói <pre>: nginx
Pin: version 1.4.4-1 ~ bpo70 + 1-tùy chỉnh
Ưu tiên Pin: 1001 </pre>

TỪ CHỐI

Việc có gói tùy chỉnh của bạn đi kèm với một nhược điểm là bạn phải tự chịu trách nhiệm cập nhật nó khi nào lỗ hổng bảo mật được vá.Điều này nghĩa là chỉ cần chạy “apt-get upgrade” sẽ không ảnh hưởng gì đến gói của bạn vì bạn đã ghim nó rồi. Vì vậy, hãy nhớ kiểm tra thường xuyên nếu bản cập nhật bảo mật mới được phát hành.

<div class = “author”> Người gửi: Saleh Salem </div>


Tags:

Các tin liên quan

Cách cấu hình cài đặt trang web WordPress đơn và nhiều trang với Nginx
2013-11-26
Cách triển khai ứng dụng Node.js bằng Systemd và Nginx
2013-11-26
Cách thiết lập server block Nginx trên Debian 7
2013-10-30
Cách thiết lập FastCGI Caching với Nginx trên VPS của bạn
2013-10-29
Cách phân phát nhiều blog ma trên một VPS bằng cách sử dụng server block Nginx
2013-10-21
Cách cài đặt Drupal với Nginx trên VPS Ubuntu 13.04
2013-10-16
Cách cài đặt TTRSS với Nginx cho Debian 7 trên VPS
2013-10-07
Cách biên dịch Nginx từ Nguồn trên VPS CentOS 6.4 x64
2013-09-23
Cách biên dịch Nginx từ Nguồn trên VPS CentOS 6.4 x64
2013-09-23
Cách lưu trữ nhiều ứng dụng Node.js trên một VPS duy nhất với nginx, forever và crontab
2013-09-04