Zum Inhalt

substitutions: String substitutions Modul für nginx

Installation

Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:

  • RedHat Enterprise Linux 7, 8, 9 und 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 und Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-substitutions
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-substitutions

Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:

load_module modules/ngx_http_subs_filter_module.so;

Dieses Dokument beschreibt nginx-module-substitutions v0.6.6 veröffentlicht am 30. Dezember 2021.


nginx_substitutions_filter Hinweis: Dieses Modul wird nicht mit dem Nginx-Quellcode verteilt. Installationsanweisungen finden Sie weiter unten.

Beschreibung nginx_substitutions_filter ist ein Filtermodul, das sowohl reguläre Ausdrücke als auch feste Stringsubstitutionen in Antwortinhalten durchführen kann. Dieses Modul unterscheidet sich erheblich vom nativen Substitutionsmodul von Nginx. Es scannt den Ausgabepuffer und vergleicht die Strings zeilenweise, ähnlich wie Apache's mod_substitute (http://httpd.apache.org/docs/trunk/mod/mod_substitute.html).

Beispiel location / {

    subs_filter_types text/html text/css text/xml;
    subs_filter st(\d*).example.com $1.example.com ir;
    subs_filter a.example.com s.example.com;
    subs_filter http://$host https://$host;
}

Direktiven * subs_filter_types

*   subs_filter

subs_filter_types syntax: *subs_filter_types mime-type [mime-types] *

default: *subs_filter_types text/html*

context: *http, server, location*

*subs_filter_types* wird verwendet, um anzugeben, welche Inhaltstypen für *subs_filter* überprüft werden sollen, zusätzlich zu *text/html*. Der Standardwert ist nur *text/html*.

Dieses Modul funktioniert nur mit einfachem Text. Wenn die Antwort komprimiert ist,
kann es die Antwort nicht dekomprimieren und wird diese Antwort ignorieren. Dieses
Modul kann mit dem gzip-Filtermodul kompatibel sein. Es funktioniert jedoch nicht
mit proxy-komprimierten Antworten. Sie können die komprimierte Antwort wie folgt deaktivieren:

proxy_set_header Accept-Encoding "";

subs_filter syntax: *subs_filter source_str destination_str [gior] *

default: *none*

context: *http, server, location*

*subs_filter* ermöglicht das Ersetzen des Quellstrings (regulärer Ausdruck oder
fest) in der Nginx-Antwort durch den Zielstring. Die Variablen 
im übereinstimmenden Text sind nur im festen Stringmodus verfügbar, was bedeutet, 
dass der übereinstimmende Text keine Variablen enthalten kann, wenn es sich um einen regulären 
Ausdruck handelt. Der Substitutionstext kann Variablen enthalten. Mehr als eine 
Substitutionsregel pro Standort wird unterstützt. 
Die Bedeutung der dritten Flags ist:

*   *g* (Standard): Ersetzt alle übereinstimmenden Strings.

*   *i*: Führt einen nicht groß-/kleinschreibungssensitiven Vergleich durch.

*   *o*: Ersetzt nur das erste.

*   *r*: Das Muster wird als regulärer Ausdruck behandelt, Standard ist
    fester String.

subs_filter_bypass syntax: subs_filter_bypass $variable1 ...

default: *none*

context: *http, server, location*

Sie können mehrere Variablen mit dieser Direktive angeben. Wenn mindestens eine
der Variablen nicht leer und nicht gleich '0' ist, wird dieser Substitutionsfilter
deaktiviert.

Installation Um zu installieren, holen Sie sich den Quellcode mit Subversion:

git clone
git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

und kompilieren Sie dann Nginx mit der folgenden Option:

./configure --add-module=/path/to/module

Bekannte Probleme * Kann die Antwort-Header nicht ersetzen.

ÄNDERUNGEN Änderungen mit nginx_substitutions_filter 0.6.4 2014-02-15

*   Jetzt funktionieren nicht-200 Antworten

*   hinzugefügt die subs_filter_bypass-Direktive

Änderungen mit nginx_substitutions_filter 0.6.2 2012-08-26

*   einen Fehler bei der Pufferüberlappung behoben

*   einen Fehler mit dem letzten Nullpuffer behoben

Änderungen mit nginx_substitutions_filter 0.6.0 2012-06-30

*   dieses Modul umgestaltet

Änderungen mit nginx_substitutions_filter 0.5.2 2010-08-11

*   viele Optimierungen für dieses Modul durchgeführt

*   einen Fehler bei der Pufferüberlappung behoben

*   einen Segmentfehler behoben, wenn die Ausgabekette NGX_AGAIN zurückgibt.

*   einen Fehler mit dem letzten Puffer ohne Zeilenumbruch behoben. Dies könnte einen Segmentfehler verursachen. Danke an Josef Fröhle

Änderungen mit nginx_substitutions_filter 0.5 2010-04-15

*   die Quellstruktur umgestaltet, Entwicklungszweige erstellt

*   einen Fehler behoben, bei dem kleine Pufferinhalte verloren gingen

*   den Fehler mit last_buf und der Nginx-Kompatibilität über 0.8.25 behoben

*   einen Fehler mit unerwünschtem Erfassungs-Konfigurationsfehler bei der festen Stringsubstitution behoben

*   Funktion für Regex-Erfassungen hinzugefügt

Änderungen mit nginx_substitutions_filter 0.4 2009-12-23

*   viele Fehler behoben

Änderungen mit nginx_substitutions_filter 0.3 2009-02-04

*   Erste öffentliche Veröffentlichung

Fehler melden Fragen/Patches können an Weibin Yao, yaoweibin@gmail.com, gerichtet werden.

Copyright & Lizenz Dieses Modul ist unter der BSD-Lizenz lizenziert.

Copyright (C) 2014 von Weibin Yao <[email protected]>.

Alle Rechte vorbehalten.

Die Weiterverbreitung und Nutzung in Quell- und Binärformen, mit oder ohne
Modifikation, sind erlaubt, sofern die folgenden Bedingungen erfüllt sind:

*
      Die Weiterverbreitung des Quellcodes muss den oben genannten Copyright

    Hinweis, diese Liste der Bedingungen und den folgenden Haftungsausschluss enthalten.

*
      Die Weiterverbreitung in binärer Form muss den oben genannten Copyright

    Hinweis, diese Liste der Bedingungen und den folgenden Haftungsausschluss in der
    Dokumentation und/oder anderen Materialien, die mit der Verbreitung bereitgestellt werden, reproduzieren.

DIESE SOFTWARE WIRD VON DEN COPYRIGHT-INHABERN UND MITARBEITERN "WIE BESEHEN" BEREITGESTELLT UND JEGLICHE AUSDRÜCKLICHEN ODER IMPLIZITEN GARANTIEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF, DIE IMPLIZITEN GARANTIEN DER MARKTFÄHIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK WERDEN ABGELEHNT. IN KEINEM FALL SIND DIE COPYRIGHT-INHABER ODER MITARBEITER FÜR DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF, DEN ERWERB VON ERSATZGÜTERN ODER DIENSTLEISTUNGEN; VERLUST DER NUTZUNG, DATEN ODER GEWINNE; ODER BETRIEBSUNTERBRECHUNG) HAFTBAR, UNABHÄNGIG DAVON, WIE DIESE VERURSACHT WURDEN UND AUF JEDER HAFTUNGSTHEORIE, OB IM VERTRAG, STRIKTER HAFTUNG ODER DELIKT (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERES), DIE IN IRGENDEINER WEISE AUS DER NUTZUNG DIESER SOFTWARE RESULTIERT, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.

GitHub

Sie finden zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub Repository für nginx-module-substitutions.