GNU/Linux >> Belajar Linux >  >> Cent OS

Instal Nginx dengan ngx_pagespeed di CentOS 7

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.


Cent OS
  1. Cara Instal phpMyAdmin dengan Nginx di CentOS 7 / RHEL 7

  2. Instal phpMyAdmin dengan Nginx di CentOS 7 - Proses Langkah demi Langkah?

  3. Cara Memasang Sitemagic CMS di CentOS 7 – Dengan Nginx

  1. Cara Menginstal WordPress dengan Nginx di CentOS 7

  2. Cara Instal phpMyAdmin dengan Nginx di CentOS 7

  3. Cara Menginstal Nginx dengan Modul RTMP di CentOS 7

  1. Cara Menginstal Nextcloud dengan Nginx dan PHP 7.3 di CentOS 8

  2. Cara Menginstal ownCloud 9.1 dengan Nginx dan MariaDB di CentOS 7

  3. Cara Menginstal SuiteCRM dengan Nginx di CentOS 7