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.