Heim > Artikel > Backend-Entwicklung > Nginx verwendet das „replace-filter-nginx-module“ zum Implementieren der Inhaltsersetzung
Was dieser Artikel mit Ihnen teilt, ist, dass Nginx das Ersetzungsfilter-Nginx-Modul verwendet, um das Ersetzen von Inhalten zu implementieren. Es ist sehr detailliert. Freunde in Not können darauf verweisen.
Manchmal möchten wir antworten (z als PHP-Schnittstelle) Der zurückgegebene Inhalt wird in eine Zeichenfolge umgewandelt. Sie können zwar Methoden verwenden, die sich auf den Code jeder Sprache beziehen (z. B. str_replace
von PHP), um ihn zu ersetzen, ist es jedoch bequemer, ihn auf Nginx-Ebene zu ersetzen, ohne den Code zu ändern .
Konvention: Das Quellcodeverzeichnis dieses Artikels befindet sich in: /root/soft/src
.
Um dieses Modul zu installieren, müssen Sie zuerst die sregex
-Laufzeitbibliothek installieren:
$ git clone https://github.com/agentzh/sregex $ cd sregex $ make $ make install
und dann das replace-filter-nginx-module
-Modul installieren:
$ cd /root/soft/src $ git clone https://github.com/agentzh/replace-filter-nginx-module $ wget http://nginx.org/download/nginx-1.12.2.tar.gz $ tar zxvf nginx-1.12.2.tar.gz
Das Modul wird hier mithilfe einer statischen Kompilierung installiert, die eine Neukompilierung erfordertnginx
. nginx
letzte Kompilierungsparameter abrufen:
$ nginx -V nginx version: nginx/1.12.2 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-ld-opt=-ljemalloc --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module
Modul replace-filter-nginx-module
hier hinzufügen:
--add-module=/root/soft/src/replace-filter-nginx-module
Letzter Kompilierungsbefehl:
cd nginx-1.12.2 $ ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-ld-opt=-ljemalloc --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --add-module=/root/soft/src/replace-filter-nginx-module $ make
Seit Dies ist ein Upgrade von Nginx. Achten Sie darauf, dass es nicht make install
ist, da es sonst wirklich überschrieben wird. Als nächstes ersetzen Sie die Binärdatei manuell:
$ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak $ cp -rfp ./objs/nginx /usr/local/nginx/sbin/
Testen Sie, ob es funktioniert:
$ nginx -v nginx version: nginx/1.12.2
Ob die Konfiguration normal ist:
$ /usr/local/nginx/sbin/nginx -t 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
Der Test hier ist: Ersetzen Sie das von der Schnittstelle zurückgegebene img.test.com
durch media.test.com
.
Ändern: /usr/local/nginx/conf/vhost/test.com.conf
location ~ [^/]\.php(/|$) { # comment try_files $uri =404; to enable pathinfo try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; }
zu:
location ~ [^/]\.php(/|$) { replace_filter 'img.test.com' 'media.test.com' g; replace_filter_types application/json; # comment try_files $uri =404; to enable pathinfo try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf;
Beachten Sie, dass replace_filter_types
hinzugefügt werden muss.
Überprüfen Sie nach dem Speichern, ob die Konfiguration in Ordnung ist:
$ /usr/local/nginx/sbin/nginx -t 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
Dann Hot-Neustart:
# 升级完成第一次需要重启 $ service nginx restart # 热重启 $ /usr/local/nginx/sbin/nginx -s reload
1 Das Zusatzmodul ist installiert
http://coolnull.com/4245.html
2. LNMP nginx reibungslos aktualisieren und ngx_lua-Modul-Tutorial installieren
http://www. mamicode.com/ info-...
3. openresty/replace-filter-nginx-module: Streaming regulärer Ausdrücke in Antwortkörpern
https://github.com/openresty/ ...
Ein leistungsfähigeres Ersatzmodul als ngx_http_substitutions_filter_module, das replace-filter-nginx-module von sregex
https://www.cnblogs.com/archo...
Ursprünglich veröffentlicht in: http://www.cnblogs.com/52fhy/...
Verwandte Empfehlungen:
Wie um hochgeladene Dateien in der Nginx-Größe zu ändern
Nginx-Konfiguration PHP-Instanz
Curl-Zugriff lokales Timeout in PHP + Nginx-Umgebung
Das obige ist der detaillierte Inhalt vonNginx verwendet das „replace-filter-nginx-module“ zum Implementieren der Inhaltsersetzung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!