Nginx mit ngx_pagespeed auf CentOS 7 installieren
Ngx-pagespeed ist ein kostenloses und quelloffenes Nginx-Modul, das verwendet werden kann, um Ihre Website zu beschleunigen und die Seitenladezeit zu verkürzen. Es funktioniert durch die automatische Anwendung von Best Practices zur Web-Performance auf Seiten und zugehörige Assets, ohne dass Sie Ihre bestehenden Inhalte oder Ihren Workflow ändern müssen. Mit dem Ngx-pagespeed-Modul können Sie verschiedene Dateien wie CSS, HTML, png und jpg einfach optimieren.
Ngx-pagespeed verfügt über viele Funktionen, von denen einige unten aufgeführt sind:
- Unterstützt die dynamische Größenänderung, Rekompression und Optimierung von Bildern.
- Geringe Ressourceneinsparung.
- HTML-Rewriting.
- Verlängerung der Lebensdauer des Cache.
- Verschieben des Ladevorgangs von JavaScript und Bildern.
In diesem Tutorial wird erläutert, wie man Nginx mit dem Modul ngx_pagespeed auf dem CentOS 7-Server kompiliert.
Anforderungen
- Neuer CentOS 7-Server auf Ihrem System installiert.
- Sudo-Benutzer mit Root-Rechten.
1 Aktualisieren des Systems
Lassen Sie uns damit beginnen, 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 Installation der erforderlichen Abhängigkeiten
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 Kompilieren Sie Nginx mit Ngx-pagespeed.
Um Nginx mit dem ngx-pagespeed-Modul zu installieren, müssen Sie Nginx aus dem Quellcode kompilieren. Zuerst müssen Sie den Nginx-Quellcode 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. Du kannst 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. Du kannst 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 mit der Kompilierung von Nginx mit dem pagespeed-Modul.
Wechseln Sie zunächst mit dem folgenden Befehl das Verzeichnis 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 die 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üge 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ührungserlaubnis:
sudo chmod +x /etc/init.d/nginx
Starten Sie nun den nginx-Dienst und aktivieren Sie ihn, damit er beim Booten mit dem folgenden Befehl starten kann:
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 auch Nginx das Eigentum 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/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-Richtlinien 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 die Nginx mit dem folgenden Befehl auf eventuelle 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 schließlich 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 Test der Ngx-Seitengeschwindigkeit
Nginx ist nun betriebsbereit. Es ist an der Zeit zu überprüfen, ob das Modul funktioniert oder nicht. Sie können es ü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
Du solltest X-Page-Speed und seine Versionsnummer in der obigen Ausgabe sehen. Das bedeutet, dass Sie Ngx_pagespeed erfolgreich auf Ihrem Server installiert haben.
Fazit
Herzlichen Glückwunsch! Sie haben Nginx mit Ngx-pagespeed Modulunterstützung erfolgreich installiert. Ich hoffe, dass Sie es jetzt einfach in einer Produktionsumgebung einsetzen können. Zögern Sie nicht, mich zu kommentieren, wenn Sie Fragen haben.