Instaloni Nginx me ngx_pagespeed në CentOS 7


Ngx-pagespeed është një modul Nginx pa pagesë dhe me burim të hapur që mund të përdoret për të shpejtuar faqen tuaj dhe për të reduktuar kohën e ngarkimit të faqes. Ai funksionon duke aplikuar automatikisht praktikat më të mira të performancës së ueb-it në faqet dhe asetet e lidhura pa kërkuar që të modifikoni përmbajtjen tuaj ekzistuese ose rrjedhën e punës. Mund të optimizoni lehtësisht skedarë të ndryshëm si CSS, HTML, png dhe jpg duke përdorur modulin Ngx-pagespeed.

Ngx-pagespeed vjen me shumë veçori, disa prej tyre janë renditur më poshtë:

  • Mbështet ndryshimin, rikompresimin dhe optimizimin dinamik të imazhit.
  • Rrirje e burimeve të vogla.
  • Rishkrimi HTML.
  • Zgjatja e jetëgjatësisë së memories së memories.
  • Shtyrja e ngarkimit të JavaScript dhe imazhit.

Në këtë tutorial, ne do të diskutojmë se si të përpilojmë Nginx me modulin ngx_pagespeed në serverin CentOS 7.

Kërkesat

  • Serveri i freskët CentOS 7 i instaluar në sistemin tuaj.
  • Përdorues Sudo me privilegje rrënjësore.

1 Përditësoni sistemin

Le të fillojmë duke përditësuar sistemin tuaj në versionin më të fundit të qëndrueshëm. Ju mund ta bëni këtë duke ekzekutuar komandën e mëposhtme:

sudo yum update -y

Pasi sistemi juaj të përditësohet, rinisni sistemin dhe identifikohuni me përdoruesin sudo.

2 Instaloni varësitë e nevojshme

Ju do të duhet të instaloni disa paketa në mënyrë që të përpiloni Nginx. Ju mund të instaloni të gjitha këto varësi duke ekzekutuar komandën e mëposhtme:

sudo yum install gcc cmake unzip wget gcc-c++ pcre-devel zlib-devel -y

Pasi të instalohen të gjitha varësitë e kërkuara, mund të vazhdoni në hapin tjetër.

3 Përpiloni Nginx me shpejtësinë e faqes Ngx

Për të instaluar Nginx me modulin ngx-pagespeed, do t'ju duhet të përpiloni Nginx nga burimi. Së pari, do t'ju duhet të shkarkoni burimin Nginx. Mund ta shkarkoni duke ekzekutuar komandën e mëposhtme:

wget http://nginx.org/download/nginx-1.12.0.tar.gz

Për të përpiluar Nginx me modulin ngx_pagespeed, do t'ju duhet gjithashtu të shkarkoni paketën burimore ngx_pagespeed. Mund ta shkarkoni me komandën e mëposhtme:

wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip

Pasi të shkarkohen të dyja paketat, Ekstraktoni ato me komandën e mëposhtme:

tar -xvzf nginx-1.12.0.tar.gz
tar -xvzf v1.12.34.2-stable.zip

Më pas, do t'ju duhet gjithashtu të shkarkoni bibliotekat e optimizimit të PageSpeed për të përpiluar Nginx. Mund ta shkarkoni me komandën e mëposhtme:

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 ..

Tani, le të fillojmë të përpilojmë Nginx me modulin e shpejtësisë së faqes.

Së pari, ndryshoni drejtorinë në drejtorinë burimore Nginx me komandën e mëposhtme:

cd nginx-1.12.0

Tjetra, konfiguroni burimin Nginx me komandën e mëposhtme:

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}

Pasi të përfundojë konfigurimi, përpiloni Nginx duke ekzekutuar komandën e mëposhtme:

sudo make

Komanda e mësipërme do të zgjasë disa minuta. Pas kësaj, mund të instaloni nginx duke ekzekutuar komandën e mëposhtme:

sudo make install

Pasi të instalohet Nginx, do t'ju duhet të krijoni një lidhje simbolike për Nginx:

sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

4 Krijo skriptin e nisjes Nginx

Do t'ju duhet gjithashtu të krijoni një skript fillestar për Nginx që të ndalojë dhe të fillojë Nginx. Ju mund ta bëni këtë duke krijuar skedar nginx brenda drejtorisë /etc/init.d:

sudo nano /etc/init.d/nginx

Shtoni rreshtat e mëposhtëm:

#!/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

Ruani dhe mbyllni skedarin kur të keni mbaruar, pastaj jepni lejen e ekzekutimit për të:

sudo chmod +x /etc/init.d/nginx

Tani filloni shërbimin nginx dhe aktivizoni atë të fillojë në kohën e nisjes me komandën e mëposhtme:

sudo systemctl start nginx
sudo systemctl enable nginx

Pasi të keni mbaruar, mund të vazhdoni në hapin tjetër.

5 Konfiguro Nginx

Tani, Nginx është instaluar me mbështetjen ngx-pagespeed. Si parazgjedhje, PageSpeed është i çaktivizuar. Përpara se ta aktivizoni, rekomandohet të testoni shpejtësinë e faqes suaj të internetit. Më pas, do t'ju duhet të krijoni një direktori cache për ngx-pagespeed dhe gjithashtu t'i caktoni pronësinë për të Nginx:

sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nobody /var/ngx_pagespeed_cache

Më pas, do t'ju duhet të bëni disa ndryshime në skedarin /etc/nginx/nginx.conf. Ju mund ta bëni këtë duke ekzekutuar komandën e mëposhtme:

sudo nano /etc/nginx/nginx.conf

Shto kodin e mëposhtëm midis bllokut të serverit:

# 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" { }

Shënim: Nëse jeni duke përdorur host virtual, atëherë shtoni direktivat e mësipërme të shpejtësisë së faqes në çdo skedar të konfigurimit të bllokut të serverit për të aktivizuar shpejtësinë e faqeve në çdo faqe interneti.

Ruani dhe mbyllni skedarin kur të keni mbaruar, më pas kontrolloni Nginx për çdo gabim konfigurimi me komandën e mëposhtme:

sudo nginx -t

Nëse gjithçka është në rregull, duhet të shihni daljen e mëposhtme:

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

Më në fund, rinisni Nginx që ndryshimet të hyjnë në fuqi:

sudo systemctl restart nginx

Pasi të konfigurohet Nginx, mund të vazhdoni të testoni shpejtësinë e faqeve Ngx.

6 Testoni shpejtësinë e faqeve Ngx

Nginx tani është në funksionim. Është koha për të kontrolluar nëse moduli po funksionon apo jo. Mund ta kontrolloni duke ekzekutuar komandën e mëposhtme:

curl -I -p http://localhost

Ju duhet të shihni daljen e mëposhtme:

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

Ju duhet të shihni X-Page-Speed dhe numrin e versionit të tij në daljen e mësipërme. Kjo do të thotë që ju keni instaluar me sukses Ngx_pagespeed në serverin tuaj.

konkluzioni

urime! ju keni instaluar me sukses Nginx me mbështetjen e modulit Ngx-pagespeed. Shpresoj se tani mund ta vendosni lehtësisht në një mjedis prodhimi. Mos ngurroni të më komentoni nëse keni ndonjë pyetje.