Nginx-Module unter Linux hinzufügen

Nginx mit zusätzlichen Modulen unter Debian, Ubuntu und CentOS neu kompilieren.

Bei der Installation von nginx über den Paketmanager des Betriebssystems lassen sich Module weder hinzufügen noch entfernen — nginx wird mit einer festen Build-Konfiguration geliefert. Um ein eigenes Modul einzubinden, muss nginx manuell aus dem Quellcode neu kompiliert werden.

Schritt 1. Aktuelle nginx-Konfiguration abrufen

Führen Sie den folgenden Befehl aus und speichern Sie die Ausgabe in einem Texteditor — Sie benötigen sie beim Configure-Schritt:

nginx -V

Beispielausgabe:

nginx version: nginx/1.12.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log ...

In diesem Beispiel ist Version 1.12.1 installiert — laden Sie im nächsten Schritt dieselbe Version herunter.

Schritt 2. nginx-Quellcode herunterladen

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

Entpacken Sie das Archiv und wechseln Sie in das Quellverzeichnis:

tar -xvf nginx-1.12.1.tar.gz
cd nginx-1.12.1

Schritt 3. Das PageSpeed-Modul installieren

bash <(curl -f -L -sS https://ngxpagespeed.com/install) \
     --nginx-version $nginxversion

Alle Module speichern:

bash <(curl -f -L -sS https://ngxpagespeed.com/install) -m

Schritt 4. nginx mit dem neuen Modul konfigurieren

Kopieren Sie aus der gespeicherten nginx -V-Ausgabe die Configure-Argumente ab --prefix= bis (ausschließlich) zum ersten --add-module= — bereits vorhandene --add-module=-Einträge werden nicht benötigt.

Führen Sie ./configure mit diesen Argumenten aus und hängen Sie am Ende --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable an:

./configure --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-log-path=/var/log/nginx/access.log \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--lock-path=/var/lock/nginx.lock \
--pid-path=/var/run/nginx.pid \
--with-pcre-jit --with-http_gzip_static_module \
--with-http_ssl_module --with-ipv6 \
--without-http_browser_module --with-http_geoip_module \
--without-http_memcached_module --without-http_referer_module \
--without-http_scgi_module --without-http_split_clients_module \
--with-http_stub_status_module --without-http_ssi_module \
--without-http_userid_module --without-http_uwsgi_module \
--add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable

Unsere Produkte und Dienste

WebhostingLäuft auf ultraschnellen NVMe-Laufwerken. Geeignet für Websites jeder Komplexität.
Bestellen
VPSFlexible Cloud-Infrastruktur mit vollem Root-Zugriff.
Bestellen
Dedizierte ServerBare-Metal-Server für maximale Leistung.
Bestellen

Schritt 5. nginx kompilieren

make
make install

Nach dem Build überprüfen Sie, ob das neue Modul vorhanden ist:

/etc/nginx/sbin/nginx -V

Die Ausgabe sollte --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable enthalten.

Schritt 6. Die nginx-Binärdatei ersetzen

nginx stoppen:

service nginx stop

Aktuelle Binärdatei als Fallback umbenennen:

mv /usr/sbin/nginx /usr/sbin/nginx_back

Die neu kompilierte Binärdatei an die richtige Stelle verschieben:

mv /etc/nginx/sbin/nginx /usr/sbin/nginx

Das nun überflüssige Verzeichnis entfernen:

rm -rf /etc/nginx/sbin

Überprüfen, ob die neue Binärdatei verwendet wird:

nginx -V

Die Ausgabe sollte --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable enthalten.

nginx starten:

service nginx start

Quellverzeichnis bereinigen:

cd ../
rm -rf nginx-1.12.1

Hilfe

Bei Fragen oder wenn Sie Unterstützung brauchen, erreichen Sie uns jederzeit über das Ticketsystem — wir helfen Ihnen gern weiter!

Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns