GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Installieren Sie Nginx mit ngx_pagespeed unter CentOS 7

Ngx-pagespeed ist ein kostenloses und quelloffenes Nginx-Modul, mit dem Sie Ihre Website beschleunigen und die Ladezeit der Seite verkürzen können. Es funktioniert, indem es automatisch Best Practices für die Webleistung auf Seiten und zugehörige Assets anwendet, ohne dass Sie Ihre bestehenden Inhalte oder Arbeitsabläufe ändern müssen. Sie können verschiedene Dateien wie CSS, HTML, PNG und JPG einfach mit dem Ngx-Pagespeed-Modul optimieren.

Ngx-pagespeed kommt mit vielen Funktionen, einige davon sind unten aufgeführt:

  • Unterstützt die dynamische Größenanpassung, Neukomprimierung und Optimierung von Bildern.
  • Inlining kleiner Ressourcen.
  • HTML-Umschreibung.
  • Cache-Lebensdauerverlängerung.
  • Verzögerung des Ladens von JavaScript und Bildern.

In diesem Tutorial besprechen wir, wie Nginx mit dem ngx_pagespeed-Modul auf dem CentOS 7-Server kompiliert wird.

Anforderungen

  • Frischer CentOS 7-Server auf Ihrem System installiert.
  • Sudo-Benutzer mit Root-Rechten.

1 Aktualisieren Sie das System

Beginnen wir damit, Ihr System auf die neueste stabile Version zu aktualisieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

sudo yum update -y

Sobald Ihr System aktualisiert ist, starten Sie das System neu und melden Sie sich mit sudo user.

an

2 Erforderliche Abhängigkeiten installieren

Sie müssen einige Pakete installieren, um Nginx zu kompilieren. Sie können alle diese Abhängigkeiten installieren, indem Sie den folgenden Befehl ausführen:

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

Sobald alle erforderlichen Abhängigkeiten installiert sind, können Sie mit dem nächsten Schritt fortfahren.

3 Nginx mit Ngx-pagespeed kompilieren

Um Nginx mit dem ngx-pagespeed-Modul zu installieren, müssen Sie Nginx aus dem Quellcode kompilieren. Zuerst müssen Sie die Nginx-Quelle herunterladen. Sie können es herunterladen, indem Sie den folgenden Befehl ausführen:

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

Um Nginx mit dem Modul ngx_pagespeed zu kompilieren, müssen Sie auch das Quellpaket ngx_pagespeed herunterladen. Sie können es mit dem folgenden Befehl herunterladen:

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

Sobald beide Pakete heruntergeladen sind, extrahieren Sie sie mit dem folgenden Befehl:

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

Als nächstes müssen Sie auch die PageSpeed-Optimierungsbibliotheken herunterladen, um Nginx zu kompilieren. Sie können es mit dem folgenden Befehl herunterladen:

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

Beginnen wir nun damit, Nginx mit dem Pagespeed-Modul zu kompilieren.

Ändern Sie zunächst das Verzeichnis mit dem folgenden Befehl in das Nginx-Quellverzeichnis:

cd nginx-1.12.0

Als nächstes konfigurieren Sie die Nginx-Quelle mit dem folgenden Befehl:

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}

Sobald die Konfiguration abgeschlossen ist, kompilieren Sie Nginx, indem Sie den folgenden Befehl ausführen:

sudo make

Der obige Befehl dauert einige Minuten. Danach können Sie nginx installieren, indem Sie den folgenden Befehl ausführen:

sudo make install

Sobald Nginx installiert ist, müssen Sie einen Symlink für Nginx erstellen:

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

4 Nginx-Startskript erstellen

Sie müssen auch ein Startskript für Nginx erstellen, um Nginx zu stoppen und zu starten. Sie können dies tun, indem Sie eine nginx-Datei im Verzeichnis /etc/init.d erstellen:

sudo nano /etc/init.d/nginx

Fügen Sie die folgenden Zeilen hinzu:

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

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und geben Sie ihr dann die Ausführungsberechtigung:

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

Starten Sie nun den nginx-Dienst und aktivieren Sie ihn mit dem folgenden Befehl, um beim Booten zu starten:

sudo systemctl start nginx
sudo systemctl enable nginx

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

5 Nginx konfigurieren

Jetzt wird Nginx mit ngx-pagespeed-Unterstützung installiert. Standardmäßig ist PageSpeed ​​deaktiviert. Bevor Sie es aktivieren, wird empfohlen, die Geschwindigkeit Ihrer Website zu testen. Als Nächstes müssen Sie ein Cache-Verzeichnis für ngx-pagespeed erstellen und Nginx den Besitz dafür zuweisen:

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

Als nächstes müssen Sie einige Änderungen in der Datei /etc/nginx/nginx.conf vornehmen. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

sudo nano /etc/nginx/nginx.conf

Fügen Sie den folgenden Code zwischen dem Serverblock hinzu:

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

Hinweis:Wenn Sie virtuelles Hosting verwenden, fügen Sie die obigen Pagespeed-Anweisungen zu jeder Serverblock-Konfigurationsdatei hinzu, um Pagespeed auf jeder Website zu aktivieren.

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und überprüfen Sie dann Nginx mit dem folgenden Befehl auf Konfigurationsfehler:

sudo nginx -t

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

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

Starten Sie abschließend Nginx neu, damit die Änderungen wirksam werden:

sudo systemctl restart nginx

Sobald Nginx konfiguriert ist, können Sie mit dem Testen von Ngx-pagespeed fortfahren.

6 Ngx-Seitengeschwindigkeit testen

Nginx ist jetzt einsatzbereit. Es ist Zeit zu überprüfen, ob das Modul funktioniert oder nicht. Sie können dies überprüfen, indem Sie den folgenden Befehl ausführen:

curl -I -p http://localhost

Sie sollten die folgende Ausgabe sehen:

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

Sie sollten X-Page-Speed ​​und seine Versionsnummer in der obigen Ausgabe sehen. Das bedeutet, dass Sie Ngx_pagespeed erfolgreich auf Ihrem Server installiert haben.

Schlussfolgerung

Herzliche Glückwünsche! Sie haben Nginx erfolgreich mit Unterstützung für das Ngx-Pagespeed-Modul installiert. Ich hoffe, Sie können es jetzt problemlos in einer Produktionsumgebung bereitstellen. Fühlen Sie sich frei, mich zu kommentieren, wenn Sie Fragen haben.


Cent OS
  1. So installieren Sie WordPress mit Nginx unter CentOS 7

  2. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7

  3. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7 / RHEL 7

  4. Installieren Sie phpMyAdmin mit Nginx unter CentOS 7 – Schritt-für-Schritt-Prozess?

  5. So installieren Sie Sitemagic CMS auf CentOS 7 – mit Nginx

Installieren Sie WordPress mit Nginx auf CentOS 7 / RHEL 7

So installieren Sie phpMyAdmin mit Nginx unter CentOS 8 / RHEL 8

So installieren Sie Nginx mit ngx_pagespeed unter CentOS

So installieren Sie Nginx mit PHP-FastCGI unter CentOS 6

So installieren Sie Magento mit Nginx unter CentOS 7

So installieren Sie Laravel mit Nginx unter CentOS 8