Ngx-pagespeed adalah modul Nginx gratis dan open source yang dapat digunakan untuk mempercepat situs Anda dan mengurangi waktu buka halaman. Ini bekerja dengan secara otomatis menerapkan praktik terbaik kinerja web ke halaman dan aset terkait tanpa mengharuskan Anda untuk mengubah konten atau alur kerja yang ada. Anda dapat dengan mudah mengoptimalkan berbagai file seperti CSS, HTML, png, dan jpg menggunakan modul Ngx-pagespeed.
Ngx-pagespeed hadir dengan banyak fitur, beberapa di antaranya tercantum di bawah ini:
- Mendukung pengubahan ukuran dinamis gambar, kompresi ulang, dan pengoptimalan.
- Inlining resource kecil.
- Penulisan ulang HTML.
- Ekstensi masa pakai cache.
- Menunda JavaScript dan pemuatan Gambar.
Pada tutorial kali ini, kita akan membahas bagaimana cara compile Nginx dengan modul ngx_pagespeed di server CentOS 7.
Persyaratan
- Server CentOS 7 baru diinstal pada sistem Anda.
- Pengguna Sudo dengan hak akses root.
1 Perbarui Sistem
Mari kita mulai dengan memperbarui sistem Anda ke versi stabil terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:
sudo yum update -y
Setelah sistem Anda diperbarui, mulai ulang sistem dan masuk dengan pengguna sudo.
2 Instal Dependensi yang Diperlukan
Anda perlu menginstal beberapa paket untuk mengkompilasi Nginx. Anda dapat menginstal semua dependensi ini dengan menjalankan perintah berikut:
sudo yum install gcc cmake unzip wget gcc-c++ pcre-devel zlib-devel -y
Setelah semua dependensi yang diperlukan diinstal, Anda dapat melanjutkan ke langkah berikutnya.
3 Kompilasi Nginx dengan Ngx-pagespeed
Untuk menginstal Nginx dengan modul ngx-pagespeed Anda perlu mengkompilasi Nginx dari sumber. Pertama, Anda perlu mengunduh sumber Nginx. Anda dapat mengunduhnya dengan menjalankan perintah berikut:
wget http://nginx.org/download/nginx-1.12.0.tar.gz
Untuk mengkompilasi Nginx dengan modul ngx_pagespeed, Anda juga perlu mengunduh paket sumber ngx_pagespeed. Anda dapat mengunduhnya dengan perintah berikut:
wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
Setelah kedua paket diunduh, Ekstrak dengan perintah berikut:
tar -xvzf nginx-1.12.0.tar.gz
tar -xvzf v1.12.34.2-stable.zip
Selanjutnya, Anda juga perlu mengunduh pustaka pengoptimalan PageSpeed untuk mengompilasi Nginx. Anda dapat mengunduhnya dengan perintah berikut:
cd ngx_pagespeed-1.12.34.2-stable
wget https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
tar -xvzf 1.12.34.2-x64.tar.gz
cd ..
Sekarang, mari kita mulai mengompilasi Nginx dengan modul kecepatan halaman.
Pertama, ubah direktori ke direktori sumber Nginx dengan perintah berikut:
cd nginx-1.12.0
Selanjutnya, konfigurasikan sumber Nginx dengan perintah berikut:
sudo ./configure --add-module=$HOME/ngx_pagespeed-1.12.34.2-stable --user=nobody --group=nobody --pid-path=/var/run/nginx.pid ${PS_NGX_EXTRA_FLAGS}
Setelah konfigurasi selesai, kompilasi Nginx dengan menjalankan perintah berikut:
sudo make
Perintah di atas akan memakan waktu beberapa menit. Setelah itu Anda dapat menginstal nginx dengan menjalankan perintah berikut:
sudo make install
Setelah Nginx terinstal, Anda perlu membuat symlink untuk Nginx:
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
4 Buat Skrip Startup Nginx
Anda juga perlu membuat skrip startup agar Nginx berhenti dan memulai Nginx. Anda dapat melakukannya dengan membuat file nginx di dalam direktori /etc/init.d:
sudo nano /etc/init.d/nginx
Tambahkan baris berikut:
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -n "$user" ]; then if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done fi } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac
Simpan dan tutup file setelah Anda selesai, lalu berikan izin eksekusi untuk itu:
sudo chmod +x /etc/init.d/nginx
Sekarang mulai layanan nginx dan aktifkan untuk memulai saat boot dengan perintah berikut:
sudo systemctl start nginx
sudo systemctl enable nginx
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
5 Konfigurasi Nginx
Sekarang, Nginx diinstal dengan dukungan ngx-pagespeed. Secara default, PageSpeed dinonaktifkan. Sebelum mengaktifkannya, disarankan untuk menguji kecepatan situs web Anda. Selanjutnya, Anda perlu membuat direktori cache untuk ngx-pagespeed dan juga menetapkan kepemilikannya ke Nginx:
sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nobody /var/ngx_pagespeed_cache
Selanjutnya, Anda perlu membuat beberapa perubahan pada file /etc/nginx/nginx.conf. Anda dapat melakukannya dengan menjalankan perintah berikut:
sudo nano /etc/nginx/nginx.conf
Tambahkan kode berikut di antara blok server:
# 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" { }
Catatan:Jika Anda menggunakan hosting virtual, tambahkan arahan kecepatan halaman di atas ke setiap file konfigurasi blok server untuk mengaktifkan kecepatan halaman di setiap situs web.
Simpan dan tutup file setelah Anda selesai, lalu periksa Nginx apakah ada kesalahan konfigurasi dengan perintah berikut:
sudo nginx -t
Jika semuanya baik-baik saja, Anda akan melihat output berikut:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Terakhir, mulai ulang Nginx agar perubahan diterapkan:
sudo systemctl restart nginx
Setelah Nginx dikonfigurasi, Anda dapat melanjutkan untuk menguji kecepatan halaman Ngx.
6 Uji kecepatan halaman Ngx
Nginx sekarang aktif dan berjalan. Saatnya untuk memeriksa apakah modul berfungsi atau tidak. Anda dapat memeriksanya dengan menjalankan perintah berikut:
curl -I -p http://localhost
Anda akan melihat output berikut:
HTTP/1.1 200 OK Server: nginx/1.12.0 Content-Type: text/html Connection: keep-alive Vary: Accept-Encoding Date: Wed, 21 Jun 2017 17:21:08 GMT X-Page-Speed: 1.12.34.2-0 Cache-Control: max-age=0, no-cache
Anda akan melihat X-Page-Speed dan nomor versinya pada output di atas. Ini berarti Anda telah berhasil menginstal Ngx_pagespeed di server Anda.
Kesimpulan
Selamat! Anda telah berhasil menginstal Nginx dengan dukungan modul Ngx-pagespeed. Saya harap Anda sekarang dapat dengan mudah menerapkannya di lingkungan produksi. Jangan ragu untuk mengomentari saya jika Anda memiliki pertanyaan.