GNU/Linux >> Belajar Linux >  >> Debian

Menggunakan ngx_pagespeed Dengan nginx Di Debian Jessie/pengujian

PageSpeed ​​Beta tersedia untuk nginx, nginx setara dengan mod_pagespeed untuk Apache. Modul ini menerapkan praktik terbaik kinerja web ke halaman, dan aset terkait (CSS, JavaScript, gambar) dan karenanya mempercepat situs web Anda dan mengurangi waktu muat. Tutorial ini menjelaskan cara menggunakan PageSpeed ​​dengan nginx di Debian Jessie/testing.

Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!

1 Membangun nginx Dengan PageSpeed

nginx tidak mendukung pemuatan modul secara dinamis, oleh karena itu kita harus membangunnya kembali dengan dukungan PageSpeed. Kami akan membangun nginx sebagai paket .deb sehingga kami dapat mengganti instalasi nginx yang ada dengannya (atau menginstalnya dengan mudah di sistem lain).

Buat direktori build terlebih dahulu:

cd /usr/src
mkdir kecepatan halaman &&cd kecepatan halaman

Pastikan Anda memiliki baris deb dan deb-src untuk Jessie/testing di /etc/apt/sources.list:

vi /etc/apt/sources.list
[...]
deb http://ftp.de.debian.org/debian testing main contrib non-free
deb-src http://ftp.de.debian.org/debian testing main contrib non-free
[...]

Perbarui daftar paket Anda dan instal beberapa prasyarat:

apt-get update
apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip curl libcurl4-openssl-dev libossp-uuid-dev

Unduh sumber nginx dan dependensi build:

apt-get source nginx
apt-get build-dep nginx

Mari kita periksa versi nginx kami:

ls -l

[email protected]:/usr/src/pagespeed# ls -l
total 2292
drwxr-xr-x 10 root root    4096 Feb  5 12:54 nginx-1.4.4
-rw -r--r--  1 root root 1568452 Jan  7 19:22 nginx_1.4.4-4.debian.tar.gz
-rw-r--r--  1 root root    2171 Jan  7 19:22 nginx_1 .4.4-4.dsc
-rw-r--r--  1 root root  768217 Nov 21 16:28 nginx_1.4.4.orig.tar.gz
[email protected]:/usr/src /pagespeed#

Versi nginx kami adalah 1.4.4. Mari kita pergi ke direktori debian/modules dari sumber nginx yang diunduh...

cd /usr/src/pagespeed/nginx-1.4.4/debian/modules

... dan unduh sumber PageSpeed ​​(Anda dapat memeriksa rilis terbaru di halaman ini:https://github.com/pagespeed/ngx_pagespeed/releases - dalam contoh ini versinya adalah 1.7.30.3-beta; jika versi Anda berbeda , pastikan untuk menggantinya di sisa tutorial ini):

wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.7.30.3-beta.zip
unzip release-1.7.30.3-beta.zip
cd ngx_pagespeed-release-1.7.30.3 -beta/
wget https://dl.google.com/dl/page-speed/psol/1.7.30.3.tar.gz
tar -xzvf 1.7.30.3.tar.gz

Mari kita edit file debian/rules:

vi /usr/src/pagespeed/nginx-1.4.4/debian/rules

Dalam file tersebut Anda akan menemukan empat bagian config.status (config.status.full, config.status.light, config.status.extras, config.status.naxsi). Tambahkan baris --add-module=$(MODULESDIR)/ngx_pagespeed-release-1.7.30.3-beta \ masing-masing, tepat sebelum baris $(CONFIGURE_OPTS)>[email protected], mis. sebagai berikut:

[...]
config.status.full: config.env.full
        cd $(BUILDDIR_full) && CFLAGS="$(CFLAGS)" CORE_LINK="$(LDFLAGS)" ./configure  \
            --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_addition_module \
            --with-http_dav_module \
            --with-http_geoip_module \
            --with-http_gzip_static_module \
            --with-http_image_filter_module \
            --with-http_realip_module \
            --with-http_spdy_module \
            --with-http_stub_status_module \
            --with-http_ssl_module \
            --with-http_sub_module \
            --with-http_xslt_module \
            --with-ipv6 \
            --with-mail \
            --with-mail_ssl_module \
            --add-module=$(MODULESDIR)/nginx-auth-pam \
            --add-module=$(MODULESDIR)/nginx-dav-ext-module \
            --add-module=$(MODULESDIR)/nginx-echo \
            --add-module=$(MODULESDIR)/nginx-upstream-fair \
            --add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \
            --add-module=$(MODULESDIR)/ngx_pagespeed-release-1.7.30.3-beta \
            $(CONFIGURE_OPTS) >[email protected]
        touch [email protected]
[...]

Sekarang mari kita buat paket nginx baru kita:

cd /usr/src/pagespeed/nginx-1.4.4/ && dpkg-buildpackage -b

Setelah itu, mari kita lihat paket yang dihasilkan:

cd /usr/src/pagespeed
ls -l

[email protected]:/usr/src/pagespeed# ls -l
total 67260
drwxr-xr-x 10 root root     4096 Feb  5 13:18 nginx-1.4.4
-rw -r--r--  1 root root    67132 Feb  5 13:18 nginx_1.4.4-4_all.deb
-rw-r--r--  1 root root     4749 Feb  5 13:19 nginx_1.4.4-4_amd64 .changes
-rw-r--r--  1 root root  1568452 Jan  7 19:22 nginx_1.4.4-4.debian.tar.gz
-rw-r--r--  1 root root     2171 Jan  7 19:22 nginx_1.4.4-4.dsc
-rw-r--r--  1 root root   768217 Nov 21 16:28 nginx_1.4.4.orig.tar.gz
- rw-r--r--  1 root root    79288 Feb  5 13:18 nginx-common_1.4.4-4_all.deb
-rw-r--r--  1 root root    78448 Feb  5 13:18 nginx- doc_1.4.4-4_all.deb
-rw-r--r--  1 root root  2520834 Feb  5 13:19 nginx-extras_1.4.4-4_amd64.deb
-rw-r--r- -  1 root root 25480472 Feb  5 13:19 nginx-extras-dbg_1.4.4-4_amd64.deb
-rw-r--r--  1 root root  2372314 Feb  5 13:18 nginx-full_1.4.4-4_amd64 .deb
-rw-r--r--  1 root root 23850670 Feb  5 13:19 nginx-full-dbg_1.4.4-4_amd64.deb
-rw-r-- r--  1 root root  2349992 Feb  5 13:19 nginx-light_1.4.4-4_amd64.deb
-rw-r--r--  1 root root  3416998 Feb  5 13:19 nginx-light-dbg_1.4.4 -4_amd64.deb
-rw-r--r--  1 root root  2384044 Feb  5 13:19 nginx-naxsi_1.4.4-4_amd64.deb
-rw-r--r--  1 root root  3581602 Feb  5 13:19 nginx-naxsi-dbg_1.4.4-4_amd64.deb
-rw-r--r--  1 root root   309478 Feb  5 13:18 nginx-naxsi-ui_1.4.4-4_all. deb
[email protected]:/usr/src/pagespeed#

Sekarang kita dapat menginstal nginx dengan dukungan PageSpeed ​​sebagai berikut:

dpkg --install nginx-common_1.4.4-4_all.deb nginx_1.4.4-4_all.deb nginx-full_1.4.4-4_amd64.deb
/etc/init.d/nginx restart 

Mari kita periksa apakah modul PageSpeed ​​berhasil dibuat:

nginx -V

Anda akan melihat modul ngx_pagespeed di output:

[dilindungi email]:/usr/src/pagespeed# nginx -V
versi nginx:nginx/1.4.4
Dukungan SNI TLS diaktifkan
konfigurasikan argumen:--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_addition_module --with-http_dav_module --with-http_geoip_module --with -http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_spdy_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-mail --with -mail_ssl_module --add-module=/usr/src/pagespeed/nginx-1.4.4/debian/modules/nginx-auth -pam --add-module=/usr/src/pagespeed/nginx-1.4.4/debian/modules/nginx-dav-ext-module --add-module=/usr/src/pagespeed/nginx-1.4.4 /debian/modules/nginx-echo --add-module=/usr/src/pagespeed/nginx-1.4.4/debian/modules/nginx-upstream-fair --add-module=/usr/src/pagespeed/nginx -1.4.4/debian/modules/ngx_http_substitutions_filter_module --add-module=/usr/src/pagespeed/nginx-1.4.4/debian/modules/ngx_pagespeed-release-1.7.30.3-beta
[dilindungi email] :/usr/src/pagespeed#

2 Mengonfigurasi PageSpeed

Untuk mengaktifkan PageSpeed, buka /etc/nginx/nginx.conf...

vi /etc/nginx/nginx.conf

... dan tambahkan baris pada kecepatan halaman; dan kecepatan halaman FileCachePath /var/ngx_pagespeed_cache; sebelum vhost apa pun:

[...]
        pagespeed on;
        pagespeed FileCachePath /var/ngx_pagespeed_cache;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
[...]

Buat direktori cache dan muat ulang nginx:

mkdir /var/ngx_pagespeed_cache
chown -R www-data:www-data /var/ngx_pagespeed_cache

/etc/init.d/nginx reload

Mari memuat halaman dan memeriksa apakah PageSpeed ​​disebutkan dalam output:

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

[email protected]:/usr/src/pagespeed# curl -I -p http://localhost|grep X-Page-Speed
  % Total    % Diterima % Xferd  Kecepatan Rata-Rata   Waktu    Waktu     Waktu                                                         Muatan Upload   Total   Pengeluaran    Kecepatan  Kiri
  0    0    0     0   0    0     0     0 -:--:-- --:--:-- --:    0    ---usia Kecepatan: 1.7.30.3-3721
[email protected]:/usr/src/pagespeed#

Sekarang kita dapat mengonfigurasi PageSpeed ​​secara individual atau setiap vhost, mis. seperti ini:

vi /etc/nginx/sites-available/example.com.vhost
server {
[...]
  # let's speed up PageSpeed by storing it in the super duper fast memcached
  pagespeed MemcachedThreads 1;
  pagespeed MemcachedServers "localhost:11211";

  # Filter settings
  pagespeed RewriteLevel CoreFilters;
  pagespeed EnableFilters collapse_whitespace,remove_comments;

  #  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 /ngx_pagespeed_statistics {
    allow 127.0.0.1;
    deny all;
  }
  location /ngx_pagespeed_global_statistics {
    allow 127.0.0.1;
    deny all;
  }
  location /ngx_pagespeed_message {
    allow 127.0.0.1;
    deny all;
  }
  location /pagespeed_console {
    allow 127.0.0.1;
    deny all;
  }
[...]
}

Baris penting adalah baris EnableFilters kecepatan halaman yang memberi tahu PageSpeed ​​filter mana yang harus diterapkan. Anda dapat menemukan daftar semua filter di sini:http://ngxpagespeed.com/ngx_pagespeed_example/

Jangan lupa untuk me-restart nginx setelahnya:

/etc/init.d/nginx reload

Saat Anda membuka halaman sekarang dan melihat header (misalnya dengan add-on Live HTTP headers untuk FireFox), Anda akan melihat garis x-page-speed:

Anda dapat memeriksa sumber HTML halaman Anda untuk melihat apakah filter PageSpeed ​​berfungsi seperti yang diharapkan.

  • Blog Pengembang Google:http://googledevelopers.blogspot.nl/2013/04/speed-up-your-sites-with-pagespeed-for.html
  • ngx_pagespeed:https://developers.google.com/speed/pagespeed/ngx
  • Membangun/menggunakan PageSpeed:https://github.com/pagespeed/ngx_pagespeed
  • Contoh Filter ngx_pagespeed:http://ngxpagespeed.com/ngx_pagespeed_example/

Tentang Penulis

Falko Timme adalah pemilik dari Timme Hosting (hosting web nginx ultra-cepat). Dia adalah pengelola utama HowtoForge (sejak 2005) dan salah satu pengembang inti ISPConfig (sejak 2000). Dia juga berkontribusi pada buku O'Reilly "Linux System Administration".


Debian
  1. Cara membuat nginx dengan modul Google PageSpeed ​​di Debian 8 (Jessie)

  2. Menyiapkan Replikasi Master-Master dengan MySQL di Debian 8 (Jessie)

  3. Cara Menginstal Nginx di Debian 8 (Jessie)

  1. Instal Nginx dengan ngx_pagespeed di CentOS 7

  2. Cara menginstal WebDAV dengan Lighttpd di Debian 8 (Jessie)

  3. Cara Menginstal MySQL v5.7 menggunakan apt-get di Debian 8 Jessie

  1. Instal Habari dengan Nginx di Debian 8

  2. Instal Plone dengan Nginx di VPS Debian 8

  3. Cara Menginstal WonderCMS dengan Nginx di Debian 11